PHP form - stött på ett litet problem

Permalänk
Medlem

PHP form - stött på ett litet problem

Notice: Undefined variable: _post in C:\xampp\htdocs\contact.php on line 36

if($_post['submit']) {

Notice: Undefined variable: error in C:\xampp\htdocs\contact.php on line 61

<?php } if($sent == true) { ?>

Notice: Undefined variable: sent in C:\xampp\htdocs\contact.php on line 63

<p class="sent">thank you, your email has been sent successfully. we will be in contact with you shortly!</p>

hela formen

<!-- form start --> <?php if($_post['submit']) { if(empty($_POST['name']) || empty($_post['email']) || empty($_post['message'])) { $error = true; } else { $to = "alexandersjoberg89@gmail.com"; $name = trim($_post['name']); $email = trim($_post['email']); $message = trim($_post['message']); $subject = "contact form"; $messages = "name: $name \r\n email: $email \r\n message: $message"; $headers = "from:" . $name; $mailsent = mail($to, $subject, $messages, $headers); if($mailsent) { $sent = true; } } } ?> <?php if($error == true) { ?> <p class="error">there was a missing field on the form. please make sure you enter your details and message in all the boxes provided.</p> <?php } if($sent == true) { ?> <p class="sent">thank you, your email has been sent successfully. we will be in contact with you shortly!</p> <?php } ?> <div id="contactform"> <form name="contact" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> <label for="name">name:<br></label> <input type="text" name="name" /> <br><label for="email">email:<br></label> <input type="email" name="email" /><br><br> <label for ="message">message:</label><br> <textarea name="message" cols="25" rows="6"></textarea><br><br> <input type="submit" name="submit" class="submit" value="send" /> </form> <div style="clear:both;"></div> </div> <!-- form end -->

även en bild på errorn

tacksam för all hjälp!

Visa signatur

GPU: ASUS nVidia GTX 660 DirectCU II | CPU: i7 3770K @3,5 Ghz | CPU Kylare: Corsair H100i Hydro | Moderkort: ASRock Z77 EXTREME4 | RAM: 16GB Corsair CL10 1600 Mhz VENGEANCE | SSD: Samsung 840 EVO 120 GB | HDD: WD Red 4TB 5200 RPM | Chassi: Corsair Obsidian 900D Godzilla | PSU: Corsair CX750M | Mus: SteelSeries Sensei RAW Frost Blue | Tangentbord: SteelSeries 6G v2 Cherry MX Red | Musmatta: Steelseries QcK | Headset: SteelSeries Siberia v2 White

Permalänk
Medlem

Du har inte definierat/initierat/deklarerat variablarna före nyttjande. Bara lägg in ett blankt värde i dom innan dom används eller säg till PHP att inte informera om detta problem.

Visa signatur

Grundregel för felsökning: Bryt och begränsa.

Permalänk
Medlem
Skrivet av Amez:

Notice: Undefined variable: _post in C:\xampp\htdocs\contact.php on line 36

if($_post['submit']) {

Notice: Undefined variable: error in C:\xampp\htdocs\contact.php on line 61

<?php } if($sent == true) { ?>

Notice: Undefined variable: sent in C:\xampp\htdocs\contact.php on line 63

<p class="sent">thank you, your email has been sent successfully. we will be in contact with you shortly!</p>

hela formen

<!-- form start --> <?php if($_post['submit']) { if(empty($_POST['name']) || empty($_post['email']) || empty($_post['message'])) { $error = true; } else { $to = "alexandersjoberg89@gmail.com"; $name = trim($_post['name']); $email = trim($_post['email']); $message = trim($_post['message']); $subject = "contact form"; $messages = "name: $name \r\n email: $email \r\n message: $message"; $headers = "from:" . $name; $mailsent = mail($to, $subject, $messages, $headers); if($mailsent) { $sent = true; } } } ?> <?php if($error == true) { ?> <p class="error">there was a missing field on the form. please make sure you enter your details and message in all the boxes provided.</p> <?php } if($sent == true) { ?> <p class="sent">thank you, your email has been sent successfully. we will be in contact with you shortly!</p> <?php } ?> <div id="contactform"> <form name="contact" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> <label for="name">name:<br></label> <input type="text" name="name" /> <br><label for="email">email:<br></label> <input type="email" name="email" /><br><br> <label for ="message">message:</label><br> <textarea name="message" cols="25" rows="6"></textarea><br><br> <input type="submit" name="submit" class="submit" value="send" /> </form> <div style="clear:both;"></div> </div> <!-- form end -->

även en bild på errorn
http://oi42.tinypic.com/zsv8di.jpg

tacksam för all hjälp!

Dold text

I den första kan du ta och kolla upp "isset()"

Notice: Undefined variable: _post in C:\xampp\htdocs\contact.php on line 36

if(isset($_post['submit'])) {

Nedan ligger koden med [PHP]-taggar runt.

<!-- form start --> <?php if($_post['submit']) { if(empty($_POST['name']) || empty($_post['email']) || empty($_post['message'])) { $error = true; } else { $to = "alexandersjoberg89@gmail.com"; $name = trim($_post['name']); $email = trim($_post['email']); $message = trim($_post['message']); $subject = "contact form"; $messages = "name: $name \r\n email: $email \r\n message: $message"; $headers = "from:" . $name; $mailsent = mail($to, $subject, $messages, $headers); if($mailsent) { $sent = true; } } } ?> <?php if($error == true) { ?> <p class="error">there was a missing field on the form. please make sure you enter your details and message in all the boxes provided.</p> <?php } if($sent == true) { ?> <p class="sent">thank you, your email has been sent successfully. we will be in contact with you shortly!</p> <?php } ?> <div id="contactform"> <form name="contact" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> <label for="name">name:<br></label> <input type="text" name="name" /> <br><label for="email">email:<br></label> <input type="email" name="email" /><br><br> <label for ="message">message:</label><br> <textarea name="message" cols="25" rows="6"></textarea><br><br> <input type="submit" name="submit" class="submit" value="send" /> </form> <div style="clear:both;"></div> </div> <!-- form end -->

Dold text
Visa signatur

| EVGA Z170 FTW | i7 6700k | ASUS RTX 3070 | 16GB DDR4 3200MHz | Cooler Master V850 | Samsung 840 Evo 250GB + 2x WD Black 500GB + Seagate 2TB SSHD + Samsung 970 Evo M.2 1TB|

Permalänk
Medlem

Som tidigare är inne på. Koden måste kolla om "submit" blivit aktiverad, annars existerar inte variabeln.

if(isset($_post['submit'])) är korrekt.

Visa signatur

Canon 70D | 2x Dell Ultrasharp 24" | Ryzen 3700X | 32B | GTX 1080Ti

Permalänk
Medlem

Tack så hemskt mycket, funkade perfa!

Men dom andra två errorsen kvarstår, om jag lägger till isset på dom så får jag syntax error.

Visa signatur

GPU: ASUS nVidia GTX 660 DirectCU II | CPU: i7 3770K @3,5 Ghz | CPU Kylare: Corsair H100i Hydro | Moderkort: ASRock Z77 EXTREME4 | RAM: 16GB Corsair CL10 1600 Mhz VENGEANCE | SSD: Samsung 840 EVO 120 GB | HDD: WD Red 4TB 5200 RPM | Chassi: Corsair Obsidian 900D Godzilla | PSU: Corsair CX750M | Mus: SteelSeries Sensei RAW Frost Blue | Tangentbord: SteelSeries 6G v2 Cherry MX Red | Musmatta: Steelseries QcK | Headset: SteelSeries Siberia v2 White

Permalänk
Medlem

Grejen är att t.ex. variabeln $error inte existerar om inget fel har skett. Detta kan du lösa genom att skapa en tom variabeln initialt så den alltid existerar oavsett om något fel har skett eller ej.

<!-- form start --> <?php $error = false; //Skapa variabel if($_post['submit']) { if(empty($_POST['name']) || empty($_post['email']) || empty($_post['message'])) { $error = true; } else { $to = "alexandersjoberg89@gmail.com"; $name = trim($_post['name']); $email = trim($_post['email']); $message = trim($_post['message']); $subject = "contact form"; $messages = "name: $name \r\n email: $email \r\n message: $message"; $headers = "from:" . $name; $mailsent = mail($to, $subject, $messages, $headers); if($mailsent) { $sent = true; } } } ?> <?php if($error == true) { ?> <p class="error">there was a missing field on the form. please make sure you enter your details and message in all the boxes provided.</p> <?php } if($sent == true) { ?> <p class="sent">thank you, your email has been sent successfully. we will be in contact with you shortly!</p> <?php } ?> <div id="contactform"> <form name="contact" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> <label for="name">name:<br></label> <input type="text" name="name" /> <br><label for="email">email:<br></label> <input type="email" name="email" /><br><br> <label for ="message">message:</label><br> <textarea name="message" cols="25" rows="6"></textarea><br><br> <input type="submit" name="submit" class="submit" value="send" /> </form> <div style="clear:both;"></div> </div> <!-- form end -->

Dold text