- rugbyspelare
- Medlem ●
- 2018-12-02 20:41
Jag är helt ny på php programering. Jag har försökt hitta information vad som är fel, men jag lyckas inte.
Jag får fel som säger att formuläret saknar all information. Om jag tar bort kontrollen så får jag ett mail bara med subjekt & vilken mail det kommer ifrån.
Varför läser php skriptet inte formulär datan? Vad har jag missat som gör att inte informationen förljer med?
tacksam för hjälp & svar.
//##Formuilär datan i html filen##//
<form name="kontaktform" id="kontaktform" method="post" action="formmail.php" enctype="text/plain"> <fieldset> <h2>Meddelande</h2> <label for="namn">namnn:</label> <br /> <input name="namn" id="fnamn" class="input_text" type="text" /> <br /> <label for="email">E-postadress:</label> <br /> <input name="email" id="email" class="input_text" type="text" /> <br /> <label for="phone">Telefonnummer:</label> <br /> <input name="phone" id="phone" class="input_text" type="number" /> <br /> <label for="message">Meddelande:</label> <br /> <textarea name="message" id="message" cols="30" rows="5"></textarea> <br /> <input name="skicka" id="skicka" class="skicka_knapp" value="Skicka meddelandet" type="submit" /> </fieldset> </form>
//## PHP programeringen##//
<?php // Ger info om missad information/data $errors = array(); // kontrollera om ett Förnamn angivits if (!$_POST["namn"]) $errors[] = "- NAMN"; // kontrollera om ett TELEFONNUMMER angivits if (!$_POST["phone"]) $errors[] = "- TELEFONNUMMER"; // kontrollera om ett TELEFONNUMMER angivits $emailcheck = $_POST["email"]; if(!preg_match("/^[a-z0-9\å\ä\ö._-]+@[a-z0-9\å\ä\ö.-]+\.[a-z]{2,6}$/i", $emailcheck)) $errors[] = "- din E-POSTADRESS saknas eller är felaktig"; // kontrollera om ett Meddelande angivits if (!$_POST["message"]) $errors[] = "- inget MEDDELANDE har skrivits!"; // om felaktig information finns visas detta meddelande if (count($errors)>0){ echo "<h1>Felmeddelande:</h1> <strong>Följande information måste anges innan du kan skicka formuläret:</strong><br /><br> "; foreach($errors as $fel) echo "$fel <br />"; echo "<br />Ange den information som saknas och skicka formuläret igen. Tack! <br />"; echo "<a href='javascript:history.go(-1)'>klicka här för att komma tillbaka till formuläret</a>"; } else { // formuläret är korrekt ifyllt och informationen bearbetas $to = "[email protected]"; $from = $_POST["email"]; $subject = 'Kontakt från webbplatsen!'; $fnamn = $_POST["namn"]; $enamn = $_POST["phone"]; $message = $_POST["message"]; ######################################################################## // HEADERS för innehållstyp och textkodning $headers = "Content-Type: text/plain; charset=utf-8 \r\n"; $headers .= "From:".$fnamn." ".$enamn." <".$from.">"."\r\n"; $headers .= "MIME-Version: 1.0 \r\n"; ######################################################################## // Mailfunktionen som skickar bekräftelsen if (mail($to, $subject, $message, $headers)) header("Location: /tack.html"); else header ("Location: /fel.html"); } ?>
Hoppas någon kan hjälpa mig med detta förhoppningsvis lilla problem
Fixade till kod-taggar. /mod
Senast redigerat 2018-12-03 16:36