Hur skickar man en webbsida via e-post? Den enklaste formen för att skicka data via e-post med HTML och PHP Hur man skickar ett bokmärke via e-post
En av de mest populära funktionerna på webbplatsen är ansöknings- eller beställningsformuläret, varifrån data skickas via e-post till webbplatsägaren. I regel är sådana formulär enkla och består av två eller tre fält för datainmatning. Hur skapar man en sådan beställningsblankett? Detta kräver användning av språk HTML-uppmärkning och programmeringsspråket PHP.
HTML-markeringsspråket i sig är enkelt; du behöver bara ta reda på hur och var du ska placera vissa taggar. Med PHP-programmeringsspråket är saker och ting lite mer komplicerade.
För en programmerare är det inte svårt att skapa ett sådant formulär, men för en HTML-layoutdesigner kan vissa åtgärder verka svåra.
Skapa ett datainlämningsformulär i html
Den första raden blir som följer
Låt oss nu sätta ihop allt.
Låt oss nu göra fälten i formuläret obligatoriska. Vi har följande kod:
Skapa en fil som accepterar data från HTML-formuläret
Detta kommer att vara en fil som heter send.php
I filen, i det första steget, måste du acceptera data från postarrayen. För att göra detta skapar vi två variabler:
$fio = $_POST["fio"];
$email = $_POST["e-post"];
Variabelnamn i PHP föregås av ett $-tecken och ett semikolon placeras i slutet av varje rad. $_POST är en array till vilken data från formuläret skickas. I html-formuläret anges sändningsmetoden som method="post". Således är två variabler hämtade från html-formulär. För att skydda din webbplats måste du skicka dessa variabler genom flera filter - php-funktioner.
Den första funktionen konverterar alla tecken som användaren försöker lägga till i formuläret:
I det här fallet skapas inte nya variabler i php, utan befintliga används. Vad filtret kommer att göra är att omvandla tecknet "<" в "<". Также он поступить с другими символами, встречающимися в html коде.
Den andra funktionen avkodar URL:en om användaren försöker lägga till den i formuläret.
$fio = urldecode($fio);
$email = urldecode($email);
Med den tredje funktionen tar vi bort mellanslag från början och slutet av raden, om några:
$fio = trim($fio);
$email = trim($email);
Det finns andra funktioner som låter dig filtrera php-variabler. Deras användning beror på hur orolig du är för att en angripare ska försöka lägga till programkod till detta html-formulär för e-postinlämning.
Validering av data överförd från HTML-formulär till PHP-fil
För att kontrollera om denna kod fungerar och om data överförs kan du helt enkelt visa den på skärmen med hjälp av ekofunktionen:
echo $fio;
eka"
";
echo $email;
Den andra raden här behövs för att separera utdata från php-variabler i olika rader.
Skicka mottagen data från ett HTML-formulär till e-post med PHP
För att skicka data via e-post måste du använda e-postfunktionen i PHP.
mail("till vilken adress som ska skickas", "brevets ämne", "Meddelande (brevets brödtext)","Från: från vilken e-post brevet skickas \r\n");
Till exempel måste du skicka data till e-posten till webbplatsägaren eller chefen [e-postskyddad].
Ämnet för brevet ska vara tydligt och brevets budskap ska innehålla det som användaren angav i HTML-formuläret.
post(" [e-postskyddad]", "Ansökan från webbplatsen", "Fullständigt namn:".$fio.". E-post: ".$email ,"Från: [e-postskyddad]\r\n");
Det är nödvändigt att lägga till ett villkor som kontrollerar om formuläret skickades med PHP till den angivna e-postadressen.
if (mail(" [e-postskyddad]", "Beställ från sajten", "Fullständigt namn:".$fio.". E-post: ".$email ,"Från: [e-postskyddad]\r\n"))
{
echo "meddelande skickat framgångsrikt";
) annat (
}
Således kommer programkoden för send.php-filen, som skickar HTML-formulärdata till e-post, att se ut så här:
$fio = $_POST["fio"];
$email = $_POST["e-post"];
$fio = htmlspecialchars($fio);
$email = htmlspecialchars($email);
$fio = urldecode($fio);
$email = urldecode($email);
$fio = trim($fio);
$email = trim($email);
//echo $fio;
//eko"
";
//echo $email;
if (mail(" [e-postskyddad]", "Ansökan från webbplatsen", "Fullständigt namn:".$fio.". E-post: ".$email ,"Från: [e-postskyddad]\r\n"))
( echo "meddelande skickat framgångsrikt";
) annat (
echo "fel uppstod när meddelandet skickades";
}?>
Tre rader för att kontrollera om data överförs till filen kommenteras bort. Om det behövs kan de tas bort, eftersom de bara behövdes för felsökning.
Vi placerar HTML- och PHP-koden för att skicka in formuläret i en fil
I kommentarerna till den här artikeln ställer många människor frågan om hur man ser till att både HTML-formuläret och PHP-koden för att skicka data till e-post finns i en fil, och inte två.
För att implementera detta arbete måste du placera HTML-koden för formuläret i send.php-filen och lägga till ett villkor som kontrollerar förekomsten av variabler i POST-matrisen (denna matris skickas från formuläret). Det vill säga, om variablerna i arrayen inte finns, måste du visa användaren formuläret. Annars måste du ta emot data från arrayen och skicka den till mottagaren.
Låt oss se hur du ändrar PHP-koden i filen send.php:
//kontrollera om variabler finns i POST-matrisen
if(!isset($_POST["fio"]) och !isset($_POST["e-post"]))(
?> ) annat (
//visa formuläret
$fio = $_POST["fio"];
$email = $_POST["e-post"];
$fio = htmlspecialchars($fio);
$email = htmlspecialchars($email);
$fio = urldecode($fio);
$email = urldecode($email);
$fio = trim($fio);
$email = trim($email);
if (mail(" [e-postskyddad]", "Ansökan från webbplatsen", "Fullständigt namn:".$fio.". E-post: ".$email ,"Från: [e-postskyddad]\r\n"))(
echo "Meddelande skickat framgångsrikt";
) annat (
echo "Fel uppstod när meddelandet skickades";
}
}
?>
Vi kontrollerar förekomsten av en variabel i POST-matrisen med isset() PHP-funktionen. Ett utropstecken före denna funktion i ett villkor betyder negation. Det vill säga om variabeln inte finns, då måste vi visa vår form. Om jag inte hade satt utropstecknet skulle villkoret bokstavligen betyda "om det finns, visa då formen." Och detta är fel i vårt fall. Naturligtvis kan du byta namn på den till index.php. Om du byter namn på filen, glöm inte att byta namn på filnamnet på raden