Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien
Toon posts:

Undefined index errors in PHP5 mail script

Pagina: 1
Acties:
  • 194 views

Verwijderd

Topicstarter
Ik ben onlangs begonnen met het boek Leer Jezelf Professioneel PHP5 en MySQL van Van Duuren Media.
De begeleidende website is inmiddels uit de lucht (www.leer-php.nl) dus ik hoopte hier wat hulp te kunnen krijgen.

Ik ben nu bezig met de allereerste stapjes in PHP, maar krijg het al niet voor mekaar om één van de eerste scripts na te bouwen.

Dit is het script uit het boek, wat ik op een locale server probeer uit te voeren (via XAMPP):
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<head>
    <title>Mailformulier</title>
</head>
<body>
<?php

if ($_POST['verzendbutton'] != "verzenden" || !$_POST['naam'] || !$_POST['mailadres'] || !$_POST['reactie']) {
    ?>
    <form action="mailform.php" method="post">
        <?php
        if ($_POST['verzendbutton'] && !$_POST['naam']) {
            echo "<font color=\"red\">U hebt geen naam ingevuld!</font><br>";
            }
        ?>
    Naam: <input type="text" name="naam" value="<?php echo $_POST["naam"] ?>"><br>
        <?php
        if ($_POST['verzendbutton'] && !$_POST['mailadres']) {
            echo "<font color=\"red\">U heeft geen mailadres opgegeven!</font><br>";
            }
        ?>
    E-mail adres: <input type="text" name="mailadres" value="<?php echo $_POST["mailadres"] ?>"><br>
        <?php
        if ($_POST['verzendbutton'] && !$_POST['reactie']) {
            echo "<font color=\"red\">Vul hier uw reactie in.</font><br>";
            }
        ?>
    Uw reactie: <textarea cols="30" rows="4" name="reactie"><?php echo $_POST['reactie'] ?>"></textarea>
    <input type="submit" value="verzenden" name="verzendbutton">
    </form>
<?php

} else {
    $boodschap = "naam: ".$_POST['naam']."\nCommentaar: ".$_POST['reactie'];
    mail($_POST['mailadres'], "Uw reactie van de website", $boodschap);
    echo "Bedankt ".$_POST['naam'].", fijn dat u mee wilde doen!";
    }
?>
</body>
</html>


Het probleem is dat de html code die uitgevoerd moet worden op het moment dat de variabele 'verzendbutton' niet bestaat of één van de velden niet is ingevuld, niet wordt uitgevoerd. Ik krijg de volgende meldingen tussen het formulier door:
Notice: Undefined index: verzendbutton in C:\Program Files\xampp\htdocs\mailform.php on line 7
Notice: Undefined index: verzendbutton in C:\Program Files\xampp\htdocs\mailform.php on line 11
Notice: Undefined index: verzendbutton in C:\Program Files\xampp\htdocs\mailform.php on line 17
Notice: Undefined index: verzendbutton in C:\Program Files\xampp\htdocs\mailform.php on line 23

Deze waarden worden ook in het formulier ingevuld.
In php.ini heb ik display_errors = Off, en display_startup_errors = Off.

Wat doe ik verkeerd?
Ik heb het idee dat het boek nogal wat aannames doet over de voorkennis in php, gezien ook nergens uitgelegd werd dat je de mailserver in php.ini moet instellen.


Alvast bedankt voor elke tip.

  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Can I get uhm...

Dat boek is alleen goed om de open haard mee aan te maken als dit de letterlijke code is die erin staat. Ik heb geen zin om dat verder bijzonder uitgebreid te onderbouwen, maar je daadwerkelijke probleem komt doordat er, wanneer er niets ge-POST is, de index "verzendbutton" niet in je $_POST-array staan. Hopelijk kun je daarmee verder. :)

https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...


  • MueR
  • Registratie: Januari 2004
  • Laatst online: 14:48

MueR

Admin Devschuur® & Discord

is niet lief

PHP hoort in Programming. Kon je nu echt niets met deze foutmelding? Een keertje zoeken bijvoorbeeld? Dit is basic debuggen, dat kan je prima zelf.

Anyone who gets in between me and my morning coffee should be insecure.


Dit topic is gesloten.