Cannot modify header information
bij deze wat hopelijk is mijn laatste probleem:
Het onderstaande script zorgt ervoor dat er gecheckt worden of de verplichte velden zijn ingevuld en zo ja dat deze dan worden geschreven naar het tekstbestand wat bij het eerste formulier al is aangemaakt.
Als alle vragen netjes zijn ingevuld werkt het.
Alleen als er een vraag niet is ingevuld krijg ik de volgende foutmelding:
Vraag 2 is niet beantwoord.
Warning: Cannot modify header information - headers already sent by (output started at /home/****.nlnl/www/html/formmail5.php:14) in /home/*****.nl/www/html/formmail5.php on line 92.
Als ik het moet interpreteren zou ik zeggen dat die laatste verwijzing niet tegelijkertijd mag met de foutmelding dat niet alle velden zijn ingevuld.
Maar hoe krijg ik deze fout eruit.
Hieronder dus het 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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
<?
//variabelen definieren
$adm1 = $_POST["adm1"];
$adm2 = $_POST["adm2"];
$adm3 = $_POST["adm3"];
$adm4 = $_POST["adm4"];
$adm5 = $_POST["adm5"];
$adm6 = $_POST["adm6"];
if ($_POST["adm1"] == "" ) {
echo "Vraag 1 is niet beantwoord.";
}
elseif ($_POST["adm2"] == "" ) {
echo "Vraag 2 is niet beantwoord.";
}
elseif ($_POST["adm3"] == "" ) {
echo "Vraag 3 is niet beantwoord.";
}
elseif ($_POST["adm4"] == "" ) {
echo "Vraag 4 is niet beantwoord.";
}
elseif ($_POST["adm5"] == "" ) {
echo "Vraag 5 is niet beantwoord.";
}
else{
}
// is er op verzenden geklikt?
if (isset ($_POST['verzenden2'])) {
$adm1 = $_POST["adm1"];
$adm2 = $_POST["adm2"];
$adm3 = $_POST["adm3"];
$adm4 = $_POST["adm4"];
$adm5 = $_POST["adm5"];
$adm6 = $_POST["adm6"];
}
$client_ip = ( !empty($_admVER['REMOTE_ADDR']) ) ? $_admVER['REMOTE_ADDR'] : ( ( !empty($_ENV['REMOTE_ADDR']) ) ? $_ENV['REMOTE_ADDR'] : getenv('REMOTE_ADDR') );
// schrijf de volgende tekst in het bestand
$invoegen = "adm1: $_POST[adm1]; adm2: $_POST[adm2]; adm3: $_POST[adm3]; adm4: $_POST[adm4]; adm5: $_POST[adm5]; adm6: $_POST[adm6];\n";
// open het bestand
$fopen = fopen($client_ip.".txt", "a");
// schrijf '$invoegen' in het bestand
fwrite($fopen, $invoegen);
// sluit het bestand
fclose($fopen);
$sPath = $_SERVER['DOCUMENT'] .($client_ip.".txt");
if( !ini_get('allow_url_fopen') )
{
if( !@ini_set('allow_url_fopen', '1') )
{
die('"allow_url_fopen" kon niet op 1 wordt geset!');
}
}
if( file_exists($sPath) )
{
if( function_exists('file_get_contents') )
{
$sContent = file_get_contents($sPath);
}
else
{
die('Je PHP is bejaard (< 4.3.0)');
}
}
else
{
die("$sPath does not exist");
}
mail("[email protected]", "$client_ip; REACTIE ENQUETE", "
$sContent
EINDE MAIL!
");
// open het bestand
$fopen = fopen($client_ip.".txt", "a");
// schrijf '$invoegen' in het bestand
unlink($client_ip.".txt");
// sluit het bestand
fclose($fopen);
// mail verstuurd?
if (mail ($to, $subj, stripslashes ($msg), $headers)) {
header("Location: bedankt.php"); }
?>
//variabelen definieren
$adm1 = $_POST["adm1"];
$adm2 = $_POST["adm2"];
$adm3 = $_POST["adm3"];
$adm4 = $_POST["adm4"];
$adm5 = $_POST["adm5"];
$adm6 = $_POST["adm6"];
if ($_POST["adm1"] == "" ) {
echo "Vraag 1 is niet beantwoord.";
}
elseif ($_POST["adm2"] == "" ) {
echo "Vraag 2 is niet beantwoord.";
}
elseif ($_POST["adm3"] == "" ) {
echo "Vraag 3 is niet beantwoord.";
}
elseif ($_POST["adm4"] == "" ) {
echo "Vraag 4 is niet beantwoord.";
}
elseif ($_POST["adm5"] == "" ) {
echo "Vraag 5 is niet beantwoord.";
}
else{
}
// is er op verzenden geklikt?
if (isset ($_POST['verzenden2'])) {
$adm1 = $_POST["adm1"];
$adm2 = $_POST["adm2"];
$adm3 = $_POST["adm3"];
$adm4 = $_POST["adm4"];
$adm5 = $_POST["adm5"];
$adm6 = $_POST["adm6"];
}
$client_ip = ( !empty($_admVER['REMOTE_ADDR']) ) ? $_admVER['REMOTE_ADDR'] : ( ( !empty($_ENV['REMOTE_ADDR']) ) ? $_ENV['REMOTE_ADDR'] : getenv('REMOTE_ADDR') );
// schrijf de volgende tekst in het bestand
$invoegen = "adm1: $_POST[adm1]; adm2: $_POST[adm2]; adm3: $_POST[adm3]; adm4: $_POST[adm4]; adm5: $_POST[adm5]; adm6: $_POST[adm6];\n";
// open het bestand
$fopen = fopen($client_ip.".txt", "a");
// schrijf '$invoegen' in het bestand
fwrite($fopen, $invoegen);
// sluit het bestand
fclose($fopen);
$sPath = $_SERVER['DOCUMENT'] .($client_ip.".txt");
if( !ini_get('allow_url_fopen') )
{
if( !@ini_set('allow_url_fopen', '1') )
{
die('"allow_url_fopen" kon niet op 1 wordt geset!');
}
}
if( file_exists($sPath) )
{
if( function_exists('file_get_contents') )
{
$sContent = file_get_contents($sPath);
}
else
{
die('Je PHP is bejaard (< 4.3.0)');
}
}
else
{
die("$sPath does not exist");
}
mail("[email protected]", "$client_ip; REACTIE ENQUETE", "
$sContent
EINDE MAIL!
");
// open het bestand
$fopen = fopen($client_ip.".txt", "a");
// schrijf '$invoegen' in het bestand
unlink($client_ip.".txt");
// sluit het bestand
fclose($fopen);
// mail verstuurd?
if (mail ($to, $subj, stripslashes ($msg), $headers)) {
header("Location: bedankt.php"); }
?>
Graag nog een reactie; als dit punt opgelost is heb ik eindelijk mijn enquete formulier af. :D
Hans.
{
if( !@ini_set('allow_url_fopen', '1') )
{
die('"allow_url_fopen" kon niet op 1 wordt geset!');
}
Moet voor aan :)
Lees ook [faq]1[/faq]
Je moet er dus voorzorgen dan de mail functie niet wordt aangeroepen als een veld niet is ingevuld.
Gewijzigd op 12/10/2005 15:26:00 door Martijn B
Dat kan gewoon hoor :)
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?php
if( function_exists('file_get_contents') )
{
$sContent = file_get_contents($sPath);
}
else
{
die('Je PHP is bejaard (< 4.3.0)');
}
?>
if( function_exists('file_get_contents') )
{
$sContent = file_get_contents($sPath);
}
else
{
die('Je PHP is bejaard (< 4.3.0)');
}
?>
PHP is serverside dus als je die melding krijgt is jouw PHP bejaard.......:-)