fouten in registreerscript!
misschien weten jullie het?
ik heb er een uur naar gekeken alleen ik zie de fout niet.
dit is mijn code
Code (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
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
<html>
<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\">Vul hier de naam in!</font><br>";
}
?>
Naam: <input type="text" name="naam" value="<?php echo $_POST["naam"]?>"><br>
<?php
if ($_POST ["verzendbutton"] && !$_POST["mailadres"]){
echo "font color=\"red\">Vul hier je mailadres in!</font><br>";
}
?>
E-Mail: <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>";
}
?>
Reactie: <textarea cols="30" rows="4" name="reactie"><?php echo $_POST["reactie"] ?></textarea><br>
<input type="submit" name="verzendbutton" value="verzenden">
</form>
<?php
}
else{
$boodschap = "Naam: ".$_POST["naam"]."\nCommentaar: ".$_POST["reactie"];
mail($_POST ["mailadres"], "Uw reactie van de website",$boodschap);
echo "Bedankt ".$naam." fijn dat je je registreerde!";
}
?>
</body>
</html>
<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\">Vul hier de naam in!</font><br>";
}
?>
Naam: <input type="text" name="naam" value="<?php echo $_POST["naam"]?>"><br>
<?php
if ($_POST ["verzendbutton"] && !$_POST["mailadres"]){
echo "font color=\"red\">Vul hier je mailadres in!</font><br>";
}
?>
E-Mail: <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>";
}
?>
Reactie: <textarea cols="30" rows="4" name="reactie"><?php echo $_POST["reactie"] ?></textarea><br>
<input type="submit" name="verzendbutton" value="verzenden">
</form>
<?php
}
else{
$boodschap = "Naam: ".$_POST["naam"]."\nCommentaar: ".$_POST["reactie"];
mail($_POST ["mailadres"], "Uw reactie van de website",$boodschap);
echo "Bedankt ".$naam." fijn dat je je registreerde!";
}
?>
</body>
</html>
Gewijzigd op 01/01/1970 01:00:00 door Trisie
Je kan je relevante code tussen de tags zetten.
ok thnx het staat er
Als je geen foutmelding krijgt, zet dit eens bovenaan het script:
Notice: Undefined index: verzendbutton in C:\wamp\www\PHP\mailform.php on line 7
Notice: Undefined index: verzendbutton in C:\wamp\www\PHP\mailform.php on line 11
Notice: Undefined index: naam in C:\wamp\www\PHP\mailform.php on line 15
Notice: Undefined index: verzendbutton in C:\wamp\www\PHP\mailform.php on line 17
Notice: Undefined index: mailadres in C:\wamp\www\PHP\mailform.phpon line 21
Notice: Undefined variable: post in C:\wamp\www\PHP\mailform.php on line 23
Notice: Undefined index: reactie in C:\wamp\www\PHP\mailform.php on line 27
en als je op verzend drukt nog 2:
Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\wamp\www\PHP\mailform.php on line 34
Notice: Undefined variable: naam in C:\wamp\www\PHP\mailform.php on line 35
- formulier is verzonden
- formulier is niet verzonden
Er is in feite maar één echte goede manier om dat te doen:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
// Formulier is verzonden
// Verdere afhandeling met !$_POST['naam'] et cetera
}
else
{
// Formulier is niet verzonden. Formulier weergeven
}[/code]
EDIT: Wat betreft de mail() functie, je zult in je instellingen een mail server moeten instellen. Standaard is er geen mail server aanwezig op localhost. Gebruik bijvoorbeeld de mail server van je internet provider, zoals Ziggo o.i.d. Mail() werkt namelijk niet out-of-the-box =]
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
// Formulier is verzonden
// Verdere afhandeling met !$_POST['naam'] et cetera
}
else
{
// Formulier is niet verzonden. Formulier weergeven
}[/code]
EDIT: Wat betreft de mail() functie, je zult in je instellingen een mail server moeten instellen. Standaard is er geen mail server aanwezig op localhost. Gebruik bijvoorbeeld de mail server van je internet provider, zoals Ziggo o.i.d. Mail() werkt namelijk niet out-of-the-box =]
Gewijzigd op 01/01/1970 01:00:00 door GaMer B
maar dat is dus niet goed?
isset() en of deze gevuld is empty(). Overigens kijk je nergens of het formulier wel degelijk verzonden is. Kijken of er een of andere verzendbutton in $_POST zit is niet de juiste manier. Zie de reactie van GaMer13 voor de juiste manier.
Nee, dat is helemaal niet goed. Om te controleren of een variabele bestaat, gebruik je er staat steeds deze fout:
Notice: Undefined index: verzendbutton
dit is nu de code
Code (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
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
<html>
<head>
<title>Mailformulier</title>
</head>
<body>
<form action="mailform.php" method="post">
<?php
if ($_POST ["verzendbutton"] && !$_POST["naam"]){
echo "<font color=\"red\">Vul hier de naam in!</font><br>";
}
?>
Naam: <input type="text" name="naam"><br>
<?php
if ($_POST ["verzendbutton"] && !$_POST["mailadres"]){
echo "<font color=\"red\">Vul hier je mailadres in!</font><br>";
}
?>
E-Mail: <input type="text" name="mailadres"><br>
<?php
if ($_POST["verzendbutton"] && !$_POST["reactie"]){
echo "<font color=\"red\">Vul hier uw reactie in!</font><br>";
}
?>
Reactie: <textarea cols="30" rows="4" name="reactie"></textarea><br>
<input type="submit" name="verzendbutton" value="verzenden">
</form>
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST'){
$boodschap = "Naam: ".$_POST["naam"]."\nCommentaar: ".$_POST["reactie"];
mail($_POST ["mailadres"], "Uw reactie van de website",$boodschap);
echo "Bedankt ".$naam." fijn dat je je registreerde!";
$_POST ["verzendbutton"] !="verzenden" || !$_POST["naam"] || !$_POST["mailadres"] || !$_POST["reactie"];
} else {
echo "Het formulier is niet verzonden";
}
?>
</body>
</html>
<head>
<title>Mailformulier</title>
</head>
<body>
<form action="mailform.php" method="post">
<?php
if ($_POST ["verzendbutton"] && !$_POST["naam"]){
echo "<font color=\"red\">Vul hier de naam in!</font><br>";
}
?>
Naam: <input type="text" name="naam"><br>
<?php
if ($_POST ["verzendbutton"] && !$_POST["mailadres"]){
echo "<font color=\"red\">Vul hier je mailadres in!</font><br>";
}
?>
E-Mail: <input type="text" name="mailadres"><br>
<?php
if ($_POST["verzendbutton"] && !$_POST["reactie"]){
echo "<font color=\"red\">Vul hier uw reactie in!</font><br>";
}
?>
Reactie: <textarea cols="30" rows="4" name="reactie"></textarea><br>
<input type="submit" name="verzendbutton" value="verzenden">
</form>
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST'){
$boodschap = "Naam: ".$_POST["naam"]."\nCommentaar: ".$_POST["reactie"];
mail($_POST ["mailadres"], "Uw reactie van de website",$boodschap);
echo "Bedankt ".$naam." fijn dat je je registreerde!";
$_POST ["verzendbutton"] !="verzenden" || !$_POST["naam"] || !$_POST["mailadres"] || !$_POST["reactie"];
} else {
echo "Het formulier is niet verzonden";
}
?>
</body>
</html>
Doe het dan zo: if(isset($_POST['verzendbutton'])
Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\wamp\www\PHP\mailform.php on line 34
heb nu dit script:
Code (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
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
<html>
<head>
<title>Mailformulier</title>
</head>
<body>
<?php
if (isset($_POST ["verzendbutton"]) !="verzenden" || !$_POST["naam"] || !$_POST["mailadres"] || !$_POST["reactie"]){
?>
<form action="mailform.php" method="post">
<?php
if (isset($_POST ["verzendbutton"]) && !$_POST["naam"]){
echo "<font color=\"red\">Vul hier de naam in!</font><br>";
}
?>
Naam:<br> <input type="text" name="naam"><br>
<?php
if (isset($_POST ["verzendbutton"]) && !$_POST["mailadres"]){
echo "<font color=\"red\">Vul hier je mailadres in!</font><br>";
}
?>
E-Mail:<br> <input type="text" name="mailadres"><br>
<?php
if (isset($_POST["verzendbutton"]) && !$_POST["reactie"]){
echo "<font color=\"red\">Vul hier uw reactie in!</font><br>";
}
?>
Reactie:<br> <textarea cols="30" rows="4" name="reactie"></textarea><br>
<input type="submit" name="verzendbutton" value="verzenden">
</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 je je registreerde!";
}
?>
</body>
</html>
<head>
<title>Mailformulier</title>
</head>
<body>
<?php
if (isset($_POST ["verzendbutton"]) !="verzenden" || !$_POST["naam"] || !$_POST["mailadres"] || !$_POST["reactie"]){
?>
<form action="mailform.php" method="post">
<?php
if (isset($_POST ["verzendbutton"]) && !$_POST["naam"]){
echo "<font color=\"red\">Vul hier de naam in!</font><br>";
}
?>
Naam:<br> <input type="text" name="naam"><br>
<?php
if (isset($_POST ["verzendbutton"]) && !$_POST["mailadres"]){
echo "<font color=\"red\">Vul hier je mailadres in!</font><br>";
}
?>
E-Mail:<br> <input type="text" name="mailadres"><br>
<?php
if (isset($_POST["verzendbutton"]) && !$_POST["reactie"]){
echo "<font color=\"red\">Vul hier uw reactie in!</font><br>";
}
?>
Reactie:<br> <textarea cols="30" rows="4" name="reactie"></textarea><br>
<input type="submit" name="verzendbutton" value="verzenden">
</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 je je registreerde!";
}
?>
</body>
</html>
Gewijzigd op 01/01/1970 01:00:00 door trisie
Ik zou het boek weggooien.
het is: Leer jezelf professioneel werken met PHP 5 & MYSQL van Arjan Burger
En die tweede, tja... lees dit topic eens door.
Verder is de structuur van PHP-script-opbouw in bijna alle boeken om te huilen.
Gewijzigd op 01/01/1970 01:00:00 door - Ariën -
de 2e is eruit alleen de eerste niet. zou je me kunnen vertellen hoe ik dat moet doen?
Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set()
Gewijzigd op 01/01/1970 01:00:00 door - Ariën -
ja dat staat er, maar wat moet ik dan veranderen in php.ini?
Dat maak ik op uit die vetgedrukte error?
Misschien even een bril opdoen en lezen wat er staat ;-)?
dit staat in mijn php.ini:
[mail function]
; For Win32 only.
; http://php.net/smtp
SMTP = localhost
; http://php.net/smtp-port
smtp_port = 25
EDIT: mooie foto trouwens :p
Gewijzigd op 01/01/1970 01:00:00 door trisie
Zo ja, zet die aan, zo nee... vul i.pv. van localhost het SMTP adres van je intenretprovider in.
En herstart uiteraard Apache..
Gewijzigd op 01/01/1970 01:00:00 door - Ariën -
EDIT, dat heb ik gedaan alleen blijft zelfde foutmelding staan
Gewijzigd op 01/01/1970 01:00:00 door trisie