Acceptera data från php-formulär. PHP-skript för bearbetning av HTML-formulär


eller hur man skickar ett meddelande via e-post med HTML-formulär

Du har en egen hemsida och vill ta emot brev eller meddelanden, frågor, råd eller bara önskemål via e-post från dina användare, då är den här lektionen för dig!

Hur man skickar ett meddelande via e-post

Vi behöver följande filer:

  1. form.html - sida med formuläret.
  2. form_processing.php - fil med skriptet, bearbeta HTML-formulär.

Låt oss titta på form.html-koden:

Bearbeta HTML-formulär med PHP



Ditt namn:


E-post:


Ämne:


Meddelande:





HTML-formulär innehåller fält för att ange ett namn, postadress användare, meddelandeämne, meddelandetext och knappen "Skicka", när den klickas skickas informationen för bearbetning till PHP skript till filen form_processing.php.

Hyhar två värden: get (standard) och post. Postmetoden används oftare eftersom den tillåter att stora mängder data kan överföras. Alla värden som skickas till bearbetningsskriptet via postmetoden lagras i associativ array$_POST (denna array är inbyggd inbyggd i php-tolk), som består av $_POST-variabler, där namn är det faktiska namnet på inmatningsfältet - värdet på attributet name="":

Låt oss skapa en processorfil form_processing.php:

/* Vi kontrollerar den inmatade informationen och skyddar den från fientliga sådana
skript */
$ditt_namn = htmlspecialchars($_POST["ditt_namn"]);
$email = htmlspecialchars($_POST["email"]);
$tema = htmlspecialchars($_POST["tema"]);
$meddelande = htmlspecialchars($_POST["meddelanden"]);
/* Ställ in mottagarens e-post */
$myemail = " [e-postskyddad]" ;
/* Kontrollera om obligatoriska inmatningsfält är ifyllda med check_input
funktion */
$ditt_namn = check_input($_POST["ditt_namn"], "Ange ditt namn!");
$tema = check_input($_POST["tema"], "Ange ämnet för meddelandet!");
$email = check_input($_POST["email"], "Ange din e-postadress!");
$meddelande = check_input($_POST["meddelande"], "Du har glömt att skriva ett meddelande!");
/* Kontrollera om e-postmeddelandet är korrekt skrivet */
if (! preg_match ( "/([\w\-]+\@[\w\-]+\.[\w\-]+)/", $email ))
{
show_error( "
E-postadressen finns inte"
);
}
/* Skapa en ny variabel genom att tilldela den ett värde */
$message_to_myemail = "Hallå!
Ditt kontaktformulär har skickat ett meddelande!
Avsändarens namn: $ditt_namn
E-post: $email
Meddelandetext: $meddelande
Slutet"
;
/* Skicka ett meddelande med funktionen mail() */
$från = "Från: $dittnamn<$email>\r\n Svara till: $email \r\n";
mail ($myemail, $tema, $message_to_myemail, $from);
?>

Ditt meddelande har skickats!


Till Hem >>>


/* Om det gjordes fel när du fyllde i formuläret kommer det att fungera
följande kod: */
funktion check_input ($data, $problem = "")
{
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
if ($problem && strlen ($data) == 0)
{
show_error($problem);
}
returnera $data ;
}
funktion show_error ($myError)
{
?>


Vänligen åtgärda följande fel:





utgång();
}
?>

Kodavsnitt:

— visar den angivna texten om fälten HTML-formulär var korrekt ifyllda. index.php - startsida din sida.

Kodavsnitt:

- anger vilken typ av misstag som gjorts.

Variabelt värde:

$från = "Från: $dittnamn<$email>\r\n Svara till: $email \r\n";
?>

— kommer automatiskt att visa användarens e-post i önskad linje när du skriver ditt svar.

HTML-formulär är komplexa gränssnittselement. De inkluderar olika funktionella element: inmatningsfält Och

Du kan behandla formulär utan att oroa dig för de faktiska fältnamnen.

För att göra detta kan du använda (beroende på överföringsmetoden) den associativa arrayen $HTTP_GET_VARS eller $HTTP_POST_VARS . Dessa arrayer innehåller namn/värdepar för varje element i det inskickade formuläret. Om du inte bryr dig kan du använda den associativa arrayen $_REQUEST .

Exempel 6

Hantera godtycklig inmatning oavsett överföringsmetod $value) echo "$key == $value
"; ?>

Exempel 7: Hantera ett knappklick med operatorn "@".

">

Genom att använda header()-funktionen, skicka webbläsaren ett "Location"-huvud, kan du omdirigera användaren till en ny sida.

Till exempel:

Överför en fil till servern. Ladda upp filen. Ladda upp

PHP låter dig överföra filer till servern. Ett HTML-formulär som är avsett att skicka in en fil måste innehålla argumentet enctype="multipart/form-data".

Dessutom, i formuläret, före fältet för att kopiera en fil, bör det finnas ett dolt fält med namnet max_file_size. Den maximala storleken på den överförda filen bör skrivas till detta dolda fält (vanligtvis inte mer än 2 MB).

Själva filöverföringsfältet är ett vanligt INPUT-element med ett type="file"-argument.

Till exempel:

" method="post">

Efter att filen har överförts till servern får den ett unikt namn och lagras i katalogen för temporära filer. Den fullständiga sökvägen till filen skrivs till en global variabel vars namn matchar namnet på fältet för överföring av denna fil. Dessutom lagrar PHP ytterligare information om den överförda filen i andra globala variabler:

Exempel 8

Bearbetar den överförda filen "; echo "namn: ".$_FILES["användarfil"]["namn"]."
"; echo "storlek: ".$_FILES["användarfil"]["storlek"]."
"; echo "typ: ".$_FILES["användarfil"]["typ"]."
"; } ?>
" method="post">

Exempel på uppladdning av filer till servern

Om problem uppstår med att servern kodar om den nedladdade filen, symbolen med koden 0x00 ersatt med ett mellanslag (tecken med kod 0x20), lägg till filen httpd.conf från Apache-katalogen (/usr/local/apache) följande rader.

CharsetRecodeMultipartForms Off

Interaktiva webbplatser accepterar input från användare. Ett vanligt sätt att ta emot input är genom formulär.

I den här lektionen kommer vi att titta på hur man skapar ett formulär och bearbetar indata på servern.

När du skapar ett formulär är två viktiga attribut inblandade: handling Och metod.

handling Används för att ange webbadressen där formuläret skickas. Detta kan vara en PHP-fil som bearbetar inmatningen. metod Kan vara "post" eller "get", vilket är olika metoder för att överföra data. Du behöver inte gå in på skillnaderna mellan dessa metoder ännu; "get"-metoden skickar data via en URL, och "post"-metoden skickar den som ett datablock via standardinmatningstjänsten (STDIN). I den senaste lektionen vi tog såg vi hur data hämtas via en URL med $_GET. I den här handledningen kommer vi att titta på hur data som skickas via ett formulär med "post"-metoden erhålls.

HTML-sida med formulär

Sidan med formuläret behöver inte vara en PHP-fil (men det kan den vara). Det behöver inte ens vara på samma plats som filen som tar emot data.

I vårt första exempel kommer vi att titta på ett mycket enkelt formulär med ett enda textfält:

Form

Ange ditt namn

Webbläsaren visar formuläret:

Nu kommer den roliga delen: att hämta och bearbeta data med PHP.

Begär formulärdata med PHP

Om du behöver begära uppgifter som skickas via ett formulär (med hjälp av posta), använder du $_POST :

$_POST["fältnamn"];

vilket kommer att returnera värdet för formulärfältet. Låt oss prova detta med ett exempel.

Låt oss först skapa en sida med ett formulär som tidigare. Låt oss sedan skapa en PHP-sida (hanterare) "handler.php" (observera att detta är sidnamnet som vi skrev i attributet handling i vår

).

Filen "handler.php" kommer att innehålla:

Form eka"

"; ?>

Användarinput och villkor

I följande exempel kommer vi att försöka använda användarinmatning för att skapa villkor. Först behöver vi ett formulär:

Form

Vad heter du:

Din favorit färg: Röd Grön Blå

I webbläsaren blir det så här:

Nu använder vi dessa ingångar för att skapa en sida som automatiskt ändrar bakgrundsfärgen baserat på användarinmatning. Detta görs genom att skapa ett villkor (se Lektion) som använder data som användaren matat in i formuläret.

$strHeading = "

Hej, " . $_POST["användarnamn"] . "

"; switch ($_POST["favoritfärg"]) ( fall "r": break; fall "g"; ha sönder; Form

fall "b": bryta; default: break; ) ?> Bakgrunden kommer att vara vit om inte användaren anger en föredragen färg på formuläret. Detta uppnås genom att ställa in värdet standard

(standard), som tillämpas om inget av villkoren är uppfyllt.

Men vad händer om användaren inte anger sitt namn? Då kommer titeln bara att säga "Hej". Låt oss skapa ett ytterligare villkor för att ändra det här alternativet.$strAnvändarnamn = $_POST["användarnamn"]; if ($strAnvändarnamn != "") (

Hej, " . $_POST["användarnamn"] . "

"; $strHeading = " if ($strAnvändarnamn != "") (

) annat (

";
} Hej främling! fall "r": $strBackgroundColor = "rgb(255,0,0)"; ha sönder; fall "g";$strBackgroundColor = "rgb(0,255,0)"; ha sönder; fall "b": $strBackgroundColor = "rgb(0,0,255)"; ha sönder; Form

standard: $strBackgroundColor = "rgb(255,255,255)"; ha sönder;

) ?>

I exemplet ovan använder vi villkor för

kontroller information från användaren. I det här fallet är det inte så viktigt om användaren inte anger ett namn. Men eftersom din kod blir mer sofistikerad är det viktigt att du tar hänsyn till möjligheten att användaren inte fyller i formulären alls.

Exempel: Kontaktinformationsformulär

Baserat på dina befintliga kunskaper om PHP och formulär kan du skapa ett kontaktinformationsformulär med hjälp av e-postfunktionen, som har följande syntax:

Baserat på dina befintliga kunskaper om PHP och formulär kan du skapa ett kontaktinformationsformulär med hjälp av e-postfunktionen, som har följande syntax:

Post

Meddelande:

(var, ämne, meddelande);

Först skapar vi ett enkelt HTML-formulär: Kontaktinformationsformulär Ämne: [e-postskyddad]"; Du behöver då ett PHP-skript för att skicka användarinmatningen: Funktioner // Mottagare (ändra till din e-postadress) $strEmail = "// Få användarinput

$strSubject = $_POST["ämne"];

kontroller $strMessage = $_POST["meddelande"];







2024 gtavrl.ru.