Geen PHP-Error, maar verstuurd naam/email niet
Ik heb al heel wat gegoogled enzo
maar ik heb niks gevonden over mijn fout.
Namelijk: De site doet het wel en geeft geen foutmelding, maar als je je naam invult en op Doorgaan klikt, dan gebeurt er niks.
Kan iemand mij helpen?!
Alvast bedankt :D
Vraagje: Doe jij wel wat aan foutafhandeling? Dat is een impopulair onderwerp, maar essentieel voor een goed script.
Ok, ik zal kijken of het lukt en nee, ik doe niets aan foutafhandeling
Enne, nog apparter is dat hij het op de ene site wel doet en op de andere site niet?
Jeroen schreef op 08.12.2007 13:18:
Hmm, de basis van elk script berust op de foutafhandeling. Dus dat is je grootste probleem! Dat zul je als eerste op moeten lossen voordat je op een normale manier kunt gaan debuggen...en nee, ik doe niets aan foutafhandeling
En.. Is daar toevallig een topic over hier?
Want negen op de tien fouten komen voort uit slecht scripten,
hetgeen wat meteen aan het licht komt zodra je een beetje
foutafhandeling doet. Ik zeg echt niet dat je alle fouten
er zo uit pakt maar het is wel belangrijk.
Wat bijvoorbeeld veel gebruikt wordt is het feit dat functies
als het uitvoeren geslaagd is veelal true retourneren.
Dus als je
Code (php)
Dit principe kun je bij bijna alle functies gebruiken.
Nou zijn er natuurlijk functies waarbij het heel onwaarschijnlijk
is dat ze mis gaan maar er zijn er ook best een paar
die het controleren waard zijn.
En dat ie het by Funpic.de wel doet, en bij Starthosting niet
Zet eens:
boven aan je script en kijk of er foutmeldingen gegeven worden. Laat verder anders eens wat stukjes script zien, dan kunnen wij misschien achterhalen waar het fout gaat...
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<html>
<head></head>
<body>
<?php
echo "We willen graag je naam weten voordat je onze site bezoekt!";
if ($verzendbutton != "Doorgaan") { // dus als het veldje leeg is
?>
<span class="style1"><form method="post" action="index.php">
<label></label>
<span class="style1"><i>
<input type="text" name="naam" id="naam" value="Je naam" style="font-size:14px; background-color:#00CC00; position:relative" />
</i></span><br />
<input type="submit" value="Doorgaan" name="verzendbutton"/>
<br />
</form>
<?php
} else { // in alle andere gevallen (dus ding verstuurd verzonden)
echo "<br><br><br>Welkom op de site van de Familie Klein Brinke <font color=blue>, ".$naam."</font>!<br>Klik <a href=index2.php>hier</a> om verder te gaan!";
}
?>
<head></head>
<body>
<?php
echo "We willen graag je naam weten voordat je onze site bezoekt!";
if ($verzendbutton != "Doorgaan") { // dus als het veldje leeg is
?>
<span class="style1"><form method="post" action="index.php">
<label></label>
<span class="style1"><i>
<input type="text" name="naam" id="naam" value="Je naam" style="font-size:14px; background-color:#00CC00; position:relative" />
</i></span><br />
<input type="submit" value="Doorgaan" name="verzendbutton"/>
<br />
</form>
<?php
} else { // in alle andere gevallen (dus ding verstuurd verzonden)
echo "<br><br><br>Welkom op de site van de Familie Klein Brinke <font color=blue>, ".$naam."</font>!<br>Klik <a href=index2.php>hier</a> om verder te gaan!";
}
?>
Dit vraagt om fouten, en zal normaal gesproken een fout geven (een notice)
Weet je zeker dat het door blanche geplaatste stukje code er boven hebt staan?
Gewijzigd op 01/01/1970 01:00:00 door TJVB tvb
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
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
<html>
<head></head>
<body>
<?php
ini_set('display_errors', 'On');
error_reporting(E_ALL);
?>
<hr>
<?php
echo "We willen graag je naam weten voordat je onze site bezoekt!";
if ($verzendbutton != "Doorgaan") { // dus als het veldje leeg is
?>
<span class="style1"><form method="post" action="index.php">
<label></label>
<span class="style1"><i>
<input type="text" name="naam" id="naam" value="Je naam" style="font-size:14px; background-color:#00CC00; position:relative" />
</i></span><br />
<input type="submit" value="Doorgaan" name="verzendbutton"/>
<br />
</form>
<?php
} else { // in alle andere gevallen (dus ding verstuurd verzonden)
echo "<br><br><br>Welkom op de site van de Familie Klein Brinke <font color=blue>, ".$naam."</font>!<br>Klik <a href=index2.php>hier</a> om verder te gaan!";
}
?>
<head></head>
<body>
<?php
ini_set('display_errors', 'On');
error_reporting(E_ALL);
?>
<hr>
<?php
echo "We willen graag je naam weten voordat je onze site bezoekt!";
if ($verzendbutton != "Doorgaan") { // dus als het veldje leeg is
?>
<span class="style1"><form method="post" action="index.php">
<label></label>
<span class="style1"><i>
<input type="text" name="naam" id="naam" value="Je naam" style="font-size:14px; background-color:#00CC00; position:relative" />
</i></span><br />
<input type="submit" value="Doorgaan" name="verzendbutton"/>
<br />
</form>
<?php
} else { // in alle andere gevallen (dus ding verstuurd verzonden)
echo "<br><br><br>Welkom op de site van de Familie Klein Brinke <font color=blue>, ".$naam."</font>!<br>Klik <a href=index2.php>hier</a> om verder te gaan!";
}
?>
Notice: Undefined variable: verzendbutton in ***phphulp/formtest.php on line 14
Je moet ten eerste al $_POST['verzendbutton'] gebruiken inplaats van verzendbutton of nog beter if($_SERVER['REQUEST_METHOD'] =='POST')
kijk hier eens naar
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
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
<?php
ini_set('display_errors', 'On');
error_reporting(E_ALL);
?>
<html>
<head></head>
<body>
<hr>
<?php
echo "We willen graag je naam weten voordat je onze site bezoekt!";
if ($_SERVER['REQUEST_METHOD'] != 'POST' || !isset($_POST['naam'])) { // dus als het een get request is of de naam niet gegeven is
?>
<span class="style1"><form method="post" action="index.php">
<label></label>
<span class="style1"><i>
<input type="text" name="naam" id="naam" value="Je naam" style="font-size:14px; background-color:#00CC00; position:relative" />
</i></span><br />
<input type="submit" value="Doorgaan" name="verzendbutton"/>
<br />
</form>
<?php
} else { // in alle andere gevallen (dus ding verstuurd verzonden)
echo "<br><br><br>Welkom op de site van de Familie Klein Brinke <font color=blue>, ".$_POST['naam']."</font>!<br>Klik <a href=index2.php>hier</a> om verder te gaan!";
}
?>
ini_set('display_errors', 'On');
error_reporting(E_ALL);
?>
<html>
<head></head>
<body>
<hr>
<?php
echo "We willen graag je naam weten voordat je onze site bezoekt!";
if ($_SERVER['REQUEST_METHOD'] != 'POST' || !isset($_POST['naam'])) { // dus als het een get request is of de naam niet gegeven is
?>
<span class="style1"><form method="post" action="index.php">
<label></label>
<span class="style1"><i>
<input type="text" name="naam" id="naam" value="Je naam" style="font-size:14px; background-color:#00CC00; position:relative" />
</i></span><br />
<input type="submit" value="Doorgaan" name="verzendbutton"/>
<br />
</form>
<?php
} else { // in alle andere gevallen (dus ding verstuurd verzonden)
echo "<br><br><br>Welkom op de site van de Familie Klein Brinke <font color=blue>, ".$_POST['naam']."</font>!<br>Klik <a href=index2.php>hier</a> om verder te gaan!";
}
?>
Gewijzigd op 01/01/1970 01:00:00 door TJVB tvb
En nu krijg ik vermoedens dat mijn mailform ook lekt van alle kanten...
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
40
41
42
43
44
45
46
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
40
41
42
43
44
45
46
<?php
if ($verzendbutton != "Verzend") { // dus als het veldje leeg is
?>
<form method="post" action="index2.php">
<input type="hidden" name="to" value="[email protected]" />
<br />
<label>
<input type="text" name="naam" value="Je naam" />
</label>
<br />
<span class="style1">en</span><br />
<input type="text" name="email" value="Je e-mail" />
<br />
<input type="submit" name="verzendbutton" value="Verzend" /> <input type="reset" name="reset" value="Wis velden" />
<br />
</form>
<?php
} else { // in alle andere gevallen
echo "<br>Aanmelding verzonden!<br><a href=# onClick=window.close()>Sluit venster</a>"; }
/* instellingen */
$jouw_adres = "[email protected]";
$onderwerp = "reactie van je mailform";
/* einde instellingen */
$naam = $_REQUEST['naam'];
$email = $_REQUEST['email'];
$browser = $HTTP_USER_AGENT;
$ip = $REMOTE_ADDR;
// maak de boodschap
$boodschap = "reactie met je mailform:\n";
$boodschap .= "naam: $naam\n";
$boodschap .= "email: $email\n";
$boodschap .= "-----------------------------\n";
$boodschap .= "browser: $browser\n";
$boodschap .= "IP adres: $ip\n";
/* verstuur de mail met de PHP functie mail() */
mail($jouw_adres,"$onderwerp","$boodschap","From: $naam <$email>" . "Reply-To: $naam <$email>");
?>
if ($verzendbutton != "Verzend") { // dus als het veldje leeg is
?>
<form method="post" action="index2.php">
<input type="hidden" name="to" value="[email protected]" />
<br />
<label>
<input type="text" name="naam" value="Je naam" />
</label>
<br />
<span class="style1">en</span><br />
<input type="text" name="email" value="Je e-mail" />
<br />
<input type="submit" name="verzendbutton" value="Verzend" /> <input type="reset" name="reset" value="Wis velden" />
<br />
</form>
<?php
} else { // in alle andere gevallen
echo "<br>Aanmelding verzonden!<br><a href=# onClick=window.close()>Sluit venster</a>"; }
/* instellingen */
$jouw_adres = "[email protected]";
$onderwerp = "reactie van je mailform";
/* einde instellingen */
$naam = $_REQUEST['naam'];
$email = $_REQUEST['email'];
$browser = $HTTP_USER_AGENT;
$ip = $REMOTE_ADDR;
// maak de boodschap
$boodschap = "reactie met je mailform:\n";
$boodschap .= "naam: $naam\n";
$boodschap .= "email: $email\n";
$boodschap .= "-----------------------------\n";
$boodschap .= "browser: $browser\n";
$boodschap .= "IP adres: $ip\n";
/* verstuur de mail met de PHP functie mail() */
mail($jouw_adres,"$onderwerp","$boodschap","From: $naam <$email>" . "Reply-To: $naam <$email>");
?>
Moet dan zijn:
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
40
41
42
43
44
45
46
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
40
41
42
43
44
45
46
<?php
if ($verzendbutton != "Verzend") { // dus als het veldje leeg is
?>
<form method="post" action="index2.php">
<input type="hidden" name="to" value="[email protected]" />
<br />
<label>
<input type="text" name="naam" value="Je naam" />
</label>
<br />
<span class="style1">en</span><br />
<input type="text" name="email" value="Je e-mail" />
<br />
<input type="submit" name="verzendbutton" value="Verzend" /> <input type="reset" name="reset" value="Wis velden" />
<br />
</form>
<?php
} else { // in alle andere gevallen
echo "<br>Aanmelding verzonden!<br><a href=# onClick=window.close()>Sluit venster</a>"; }
/* instellingen */
$jouw_adres = "[email protected]";
$onderwerp = "reactie van je mailform";
/* einde instellingen */
$naam = $_POST['naam'];
$email = $_POST['email'];
$browser = $HTTP_USER_AGENT;
$ip = $REMOTE_ADDR;
// maak de boodschap
$boodschap = "reactie met je mailform:\n";
$boodschap .= "naam: $naam\n";
$boodschap .= "email: $email\n";
$boodschap .= "-----------------------------\n";
$boodschap .= "browser: $browser\n";
$boodschap .= "IP adres: $ip\n";
/* verstuur de mail met de PHP functie mail() */
mail($jouw_adres,"$onderwerp","$boodschap","From: $naam <$email>" . "Reply-To: $naam <$email>");
?>
if ($verzendbutton != "Verzend") { // dus als het veldje leeg is
?>
<form method="post" action="index2.php">
<input type="hidden" name="to" value="[email protected]" />
<br />
<label>
<input type="text" name="naam" value="Je naam" />
</label>
<br />
<span class="style1">en</span><br />
<input type="text" name="email" value="Je e-mail" />
<br />
<input type="submit" name="verzendbutton" value="Verzend" /> <input type="reset" name="reset" value="Wis velden" />
<br />
</form>
<?php
} else { // in alle andere gevallen
echo "<br>Aanmelding verzonden!<br><a href=# onClick=window.close()>Sluit venster</a>"; }
/* instellingen */
$jouw_adres = "[email protected]";
$onderwerp = "reactie van je mailform";
/* einde instellingen */
$naam = $_POST['naam'];
$email = $_POST['email'];
$browser = $HTTP_USER_AGENT;
$ip = $REMOTE_ADDR;
// maak de boodschap
$boodschap = "reactie met je mailform:\n";
$boodschap .= "naam: $naam\n";
$boodschap .= "email: $email\n";
$boodschap .= "-----------------------------\n";
$boodschap .= "browser: $browser\n";
$boodschap .= "IP adres: $ip\n";
/* verstuur de mail met de PHP functie mail() */
mail($jouw_adres,"$onderwerp","$boodschap","From: $naam <$email>" . "Reply-To: $naam <$email>");
?>
of niet?
Gewijzigd op 01/01/1970 01:00:00 door Jeroen
if ($_SERVER['REQUEST_METHOD'] != 'POST' || !isset($_POST['naam'])) {
Ik zie dit nergens in jouw code terugkomen, ondanks dat dit wel een juiste oplossingsrichting is.
Zaken als $naam = $_REQUEST['naam']; zijn volkomen zinloos. In de eerste plaats ga je met $_REQUEST weer veiligheidslekken maken, er is geen verschil tussen POST en GET, en in de 2e plaats kun je zo nog wel honderd kopietjes van een variabele maken. Een kopie is zinloos, je kunt beter 1 x controleren of de input correct is, dan 1x een zinloze kopie aanmaken. Controleren doe je echter nergens... Ná controle zet je de $_POST-gegevens wél in een andere variabele, deze variabele is gecontroleerd en dus veilig te gebruiken.