Waarom mailt hij niet?
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
<html>
<head>
<title>Mail script</title>
</head>
<body>
<h3>Heb je een vraag? Maak dan gebruik van dit formulier</h3>
<form name='mailform' action='mailen.php' method='post'>
<table>
<tr>
<td>Voornaam:</td><td align='right'><input type='text' maxlength='12' name='voornaam'/></td>
</tr>
<tr>
<td>Achternaam:</td><td align='right'><input type='text' maxlength='40' name='achternaam'/></td>
</tr>
<tr>
<td>E-mail adres:</td><td align='right'><input type='text' maxlength='60' name='email'/></td>
</tr>
<tr>
<td>Je vraag:</td><td align='right'><textarea name='bericht' maxlength='1000' rows='8' cols='30'></textarea></td>
</tr>
<tr>
<td><input type='submit' name='knop' value='Verzenden'/></td>
</tr>
</form>
<font color='red'>
<?php
if(isset($_POST['knop']))
{
$bericht=$_POST['bericht'];
$van=$_POST['email'];
if(strlen($_POST['voornaam']) < 2)
{
echo("De opgegeven voornaam moet langer zijn dan 1 teken");
}else{
if(strlen($_POST['achternaam']) < 2)
{
echo("De opgegeven achternaam moet langer zijn dan 1 teken");
}else{
if(!filter_var($_POST['email'],FILTER_VALIDATE_EMAIL))
{
echo("Je moet een geldig E-mail adres opgeven");
}else{
if(strlen($_POST['bericht']) < 6)
{
echo("Het bericht moet langer zijn dan 5 tekens");
}else{
mail("[email protected]","vraag",$bericht);
header("Location: mailen.php?act=true");
}
}
}
}
}
if(isset($_GET['act'])){
if($_GET['act'] == 'true')
{
echo("Je bericht is verzonden!");
}}
?>
</font>
</body>
</html>
<head>
<title>Mail script</title>
</head>
<body>
<h3>Heb je een vraag? Maak dan gebruik van dit formulier</h3>
<form name='mailform' action='mailen.php' method='post'>
<table>
<tr>
<td>Voornaam:</td><td align='right'><input type='text' maxlength='12' name='voornaam'/></td>
</tr>
<tr>
<td>Achternaam:</td><td align='right'><input type='text' maxlength='40' name='achternaam'/></td>
</tr>
<tr>
<td>E-mail adres:</td><td align='right'><input type='text' maxlength='60' name='email'/></td>
</tr>
<tr>
<td>Je vraag:</td><td align='right'><textarea name='bericht' maxlength='1000' rows='8' cols='30'></textarea></td>
</tr>
<tr>
<td><input type='submit' name='knop' value='Verzenden'/></td>
</tr>
</form>
<font color='red'>
<?php
if(isset($_POST['knop']))
{
$bericht=$_POST['bericht'];
$van=$_POST['email'];
if(strlen($_POST['voornaam']) < 2)
{
echo("De opgegeven voornaam moet langer zijn dan 1 teken");
}else{
if(strlen($_POST['achternaam']) < 2)
{
echo("De opgegeven achternaam moet langer zijn dan 1 teken");
}else{
if(!filter_var($_POST['email'],FILTER_VALIDATE_EMAIL))
{
echo("Je moet een geldig E-mail adres opgeven");
}else{
if(strlen($_POST['bericht']) < 6)
{
echo("Het bericht moet langer zijn dan 5 tekens");
}else{
mail("[email protected]","vraag",$bericht);
header("Location: mailen.php?act=true");
}
}
}
}
}
if(isset($_GET['act'])){
if($_GET['act'] == 'true')
{
echo("Je bericht is verzonden!");
}}
?>
</font>
</body>
</html>
Graag in het vervolg bij code, [code] [/code] tags gebruiken. En wat meer uitleg geven over het betreffende probleem.[/modedit]
Gewijzigd op 11/03/2013 17:45:50 door Bas IJzelendoorn
Ik heb alles geprobeerd met die headers enzo. Ik heb alles geprobeerd met dat $_SERVER['REQUEST_METHOD']. Het werkt nog steeds niet. Eerst wel en nu ineens niet meer.
Waar is je foutafhandeling op je mail?
Beter kan je de controles los gooien en de error-meldingen in een array gooien.
Na alle controles kijk je of er errors zijn (dus $error moet leeg zijn...) en als dat het geval is: verstuur dan je mail.
Daarbij maak je de code leesbaarder door goed in te springen en commentaar erbij te zetten.
Daarnaast zijn je huidige controles niet voldoende: je moet ook kijken of er überhaupt wel iets is ingevuld.
Begin daar eerst maar eens aan en laat dan zien wat je hebt.
Wat is trouwens het nut van het posten in de scriptlib van een niet werkend script?
Maar een paar maanden geleden werkte dat script wel. En nu ineens niet meer. San The ik had uw tips in een ander script gedaan.
Misschien ligt het aan mijn webhost dat daar een storing is ofzo.
En heb je "[email protected]" veranderd in je eigen mailadres?
Toen ie het wel nog deed, was dat bij dezelfde host?
Gewijzigd op 11/03/2013 13:17:16 door Jack Maessen
Heb je al eens foutafhandeling om je mail() functie geplaatst?
@aar nee, heb ik nooit gedaan. Wat is dat dan?
Een controle of de mail() functie true of false aangeeft.
En is dat php_ini() ofzo?
Code (php)
Gewoon je mail()functie-regel even aanpassen...
Gewijzigd op 11/03/2013 17:53:45 door - Ariën -
Toevoeging op 11/03/2013 18:01:00:
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
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
<?php
if($_SERVER['REQUEST_METHOD'] == "POST")
{
$bericht=$_POST['bericht'];
$van=$_POST['email'];
if(strlen($_POST['voornaam']) < 2)
{
echo("De opgegeven voornaam moet langer zijn dan 1 teken");
}else{
if(strlen($_POST['achternaam']) < 2)
{
echo("De opgegeven achternaam moet langer zijn dan 1 teken");
}else{
if(!filter_var($_POST['email'],FILTER_VALIDATE_EMAIL))
{
echo("Je moet een geldig E-mail adres opgeven");
}else{
if(strlen($_POST['bericht']) < 6)
{
echo("Het bericht moet langer zijn dan 5 tekens");
}else{
if(mail("[email protected]","vraag",$bericht)){
echo("De mail is verzonden!");
exit();
}else{
echo("De mail kon niet verzonden worden");
exit();
}
}
}
}
}
}
?>
if($_SERVER['REQUEST_METHOD'] == "POST")
{
$bericht=$_POST['bericht'];
$van=$_POST['email'];
if(strlen($_POST['voornaam']) < 2)
{
echo("De opgegeven voornaam moet langer zijn dan 1 teken");
}else{
if(strlen($_POST['achternaam']) < 2)
{
echo("De opgegeven achternaam moet langer zijn dan 1 teken");
}else{
if(!filter_var($_POST['email'],FILTER_VALIDATE_EMAIL))
{
echo("Je moet een geldig E-mail adres opgeven");
}else{
if(strlen($_POST['bericht']) < 6)
{
echo("Het bericht moet langer zijn dan 5 tekens");
}else{
if(mail("[email protected]","vraag",$bericht)){
echo("De mail is verzonden!");
exit();
}else{
echo("De mail kon niet verzonden worden");
exit();
}
}
}
}
}
}
?>
Er staat: De mail is verzonden! Maar ik heb niks ontvangen.
Gewijzigd op 11/03/2013 18:05:32 door Michael R
draasi je de webserver zelf of host je hem ergens?
kun je bij je php_ini file?
Ik host mijn scripts op 000webhost.com. Ik heb al zo'n vermoede dat er iets is met hun mail service. Nergens in mijn directory staat php_ini
php.net/ini_set, en probeer eens een eigen SMTP-server in te stellen, van bijv. je provider.
Oke, bedankt