Foutmelding bij setcookie

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Peter dhc

peter dhc

09/06/2011 22:03:16
Quote Anchor link
Hallo

Bij mijn gastenboek script heb ik de volgende code
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
    $sql = "INSERT INTO gastenboek SET ";
    $sql .= "id = ''";
    $sql .= ", naam = '" . $naam . "'";
    $sql .= ", email = '" . $email . "'";
    $sql .= ", bericht = '" . $bericht . "'";
    $sql .= ", ip = '" . $ip . "'";
    $sql .= ", datum = '" . $datum . "'";
    
    $res = mysql_query($sql);
    
    if (!empty($res)) {
        echo "<p><strong>Bericht toegevoegd! Bedankt voor het schrijven in mijn gastenboek.</strong></p>";
        setcookie("gastenboek", "send", time()+300, "/");


Dit gastenboek is lichtjes gebaseerd hierop:
http://www.phphulp.nl/php/script/gastenboeken-fora/gastenboek-met-mysql/100/

Maargoed, nu geeft hij de volgende error bij een succesvolle post:

Quote:
Bericht toegevoegd! Bedankt voor het schrijven in mijn gastenboek.

Warning: Cannot modify header information - headers already sent by (output started at /home/ninovdbo/public_html/gastenboek.php:7) in /home/ninovdbo/public_html/gastenboek.php on line 147


Waarom kan hij geen cookie sturen na een post, is mijn vraag.

Bij mijn vorige (gratis) host lukte het wel. Bij mijn huidige nu dus niet.

Link:
http://www.ninovdbosch.com/gastenboek.php

Wees vrij alles ermee te testen, alle hulp is welkom.

En de volledige code:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
<div class="guestbook">
<h4>Schrijf een bericht</h4><br />
<fieldset style="float:right;padding:5px;margin-top:-10px;margin-right:10px;">
<table ><tr>
<td><a onclick="document.gastenboek.bericht.value=document.gastenboek.bericht.value + ' :) '"><img src="/images/smilies/smile1.gif" alt="Blij" height="15" width="15" /></a></td>
<td><a onclick="document.gastenboek.bericht.value=document.gastenboek.bericht.value + ' :D '"><img src="/images/smilies/smile2.gif" alt="Lachen" height="15" width="15" /></a></td>
<td><a onclick="document.gastenboek.bericht.value=document.gastenboek.bericht.value + ' :@ '"><img src="/images/smilies/smile3.gif" alt="Boos" height="15" width="15" /></a></td>
</tr><tr>
<td><a onclick="document.gastenboek.bericht.value=document.gastenboek.bericht.value + ' :S '"><img src="/images/smilies/smile4.gif" alt="Verward" height="15" width="15" /></a></td>
<td><a onclick="document.gastenboek.bericht.value=document.gastenboek.bericht.value + ' :P '"><img src="/images/smilies/smile5.gif" alt="Tong uitsteken" height="15" width="15" /></a></td>
<td><a onclick="document.gastenboek.bericht.value=document.gastenboek.bericht.value + ' ;) '"><img src="/images/smilies/smile6.gif" alt="Knipoog" height="15" width="15" /></a></td>
</tr><tr>
<td><a onclick="document.gastenboek.bericht.value=document.gastenboek.bericht.value + ' :( '"><img src="/images/smilies/smile7.gif" alt="Verdrietig" height="15" width="15" /></a></td>
<td><a onclick="document.gastenboek.bericht.value=document.gastenboek.bericht.value + ' B) '"><img src="/images/smilies/smile8.gif" alt="Cool" height="15" width="15" /></a></td>
<td><a onclick="document.gastenboek.bericht.value=document.gastenboek.bericht.value + ' :O '"><img src="/images/smilies/smile9.gif" alt="Verbaasd" height="15" width="15" /></a></td>
</tr></table>
</fieldset>
<form name="gastenboek" method="post" action="/gastenboek.php">
<table>
<tr>
<td width="125px">Naam</td><td><input type="text" name="naam" value="<? echo htmlentities($_POST['naam']);?>" style="width:225px;" /></td>
</tr>
<tr>
<td width="125px">E-mail</td><td><input type="text" name="email" value="<? echo htmlentities($_POST['email']);?>" style="width:225px;" /></td>
</tr>
</table>
<br />
<table>
<tr><td>Bericht</td></tr>
<tr>
<td><textarea name="bericht" id="bericht" rows="3" cols="0" style="width:454px;"><? echo htmlentities($_POST['bericht']);?></textarea></td>
</tr>

<tr><td><input type="submit" name="submit" value="Verzenden" style="float:right; margin-top:10px; padding:5px; font-weight:none;" /></td></tr>

</table>
</form>
<p>
<?php
$mysql_user
= "ninovdbo_user";
$mysql_pass = "****************";
$mysql_host = "localhost";
$mysql_db = "ninovdbo_db";

if (!@mysql_select_db($mysql_db, @mysql_connect($mysql_host, $mysql_user, $mysql_pass))){
    echo "<p><strong>Verbinding met de database maken is mislukt. Probeert u het alstublieft opnieuw.</strong>
    <br /><font size=\"1px\">(Blijft dit probleem zich voordoen, neem dan <a href=\"/contact.php\">contact</a> met mij op)</p>"
;
        exit();
}


    $naam = $_POST['naam'];
    $email = $_POST['email'];
    $bericht = $_POST['bericht'];
    $ip = $_SERVER['REMOTE_ADDR'];
    
    $naam = strip_tags($naam);
    $email = strip_tags($email);
    $bericht = strip_tags($bericht);

if (isset($_POST['submit']) && isset($_COOKIE['gastenboek'])) {
    echo "<p><strong>U mag maar één keer in de vijf minuten een bericht plaatsen.</strong></p>";

//moet een code komen die de eventuele repost in een aparte mySQL db stopt
    
}else{

date_default_timezone_set('Europe/Amsterdam');

if (isset($_POST['submit']) && !empty($naam) && !empty($email) && !empty($bericht)) {
        
        if (strlen($naam) < 4) {
            echo "<p><strong>U heeft geen geldige naam ingevuld.</strong></p>";
        }
else{
            if (strlen($email) < 5) {
                echo "<p><strong>U heeft geen geldig e-mailadres ingevuld.</strong></p>";
            }
elseif(!preg_match('~^[a-z0-9][a-z0-9_.\-]*@([a-z0-9]+\.)*[a-z0-9][a-z0-9\-]+\.([a-z]{2,6})$~i', $email)) {
            echo "<p><strong><span class=\"pink\">" . $email . "</span> is geen geldig email adres. Vul alstublieft een geldig e-mailadres in.</strong></p>";

        if (strlen($bericht) < 10) {
            echo "<p><strong>U heeft een te kort bericht ingevuld.</strong></p>";
        }
        }
else{
    
    $datum = date('Y-m-d H:i:s');
    
    $sql = "INSERT INTO gastenboek SET ";
    $sql .= "id = ''";
    $sql .= ", naam = '" . $naam . "'";
    $sql .= ", email = '" . $email . "'";
    $sql .= ", bericht = '" . $bericht . "'";
    $sql .= ", ip = '" . $ip . "'";
    $sql .= ", datum = '" . $datum . "'";
    
    $res = mysql_query($sql);
    
    if (!empty($res)) {
        echo "<p><strong>Bericht toegevoegd! Bedankt voor het schrijven in mijn gastenboek.</strong></p>";
        setcookie("gastenboek", "send", time()+300, "/");
    }
else{
        echo "<p><strong>Bericht NIET toegevoegd! Er is iets misgegaan met het invoeren in de database.<br />Probeer het aub opnieuw.</strong><br /><font size=\"1px\">(Blijft dit probleem zich voordoen, neem dan <a href=\"/contact.php\">contact</a> met mij op)</p>";
    }
    }
    }
    }
else{
        if (isset($_POST['submit'])){
    echo "<p><strong>U heeft niet alle velden ingevuld.</strong></p>";
        }
    }
}

?>
    
</div>
</p>
<br /><br />

<div class="guestbook">
<h4><span class="green">Gastenboek</span> - <span class="pink">Berichten</span></h4>
<?php
    $sql
= "SELECT id,naam,email,bericht,ip,DATE_FORMAT(datum, '%d-%m-%Y') as show_datum FROM gastenboek ORDER BY datum DESC";
    
    $res = mysql_query($sql);

    
    
    if (mysql_num_rows($res) >= 1)
    {

        while ($row = mysql_fetch_array($res))
           {

            $row['email'] = htmlentities($row['email']);
            $row['naam'] = htmlentities($row['naam']);
            $row['bericht'] = nl2br($row['bericht']);
            
                $row['bericht']=str_replace(':)','<img src="/images/smilies/smile1.gif" alt="Blij"  height="15" width="15" />',$row['bericht']);
                $row['bericht']=str_replace(':D','<img src="/images/smilies/smile2.gif" alt="Lachen"  height="15" width="15" />',$row['bericht']);
                $row['bericht']=str_replace(':@','<img src="/images/smilies/smile3.gif" alt="Boos"  height="15" width="15" />',$row['bericht']);
                $row['bericht']=str_replace(':S','<img src="/images/smilies/smile4.gif" alt="Verward"  height="15" width="15" />',$row['bericht']);
                $row['bericht']=str_replace(':P','<img src="/images/smilies/smile5.gif" alt="Tong uitsteken"  height="15" width="15" />',$row['bericht']);
                $row['bericht']=str_replace(';)','<img src="/images/smilies/smile6.gif" alt="Knipoog"  height="15" width="15" />',$row['bericht']);
                $row['bericht']=str_replace(':(','<img src="/images/smilies/smile7.gif" alt="Verdrietig"  height="15" width="15" />',$row['bericht']);
                $row['bericht']=str_replace('B)','<img src="/images/smilies/smile8.gif" alt="Cool"  height="15" width="15" />',$row['bericht']);
                $row['bericht']=str_replace(':O','<img src="/images/smilies/smile9.gif" alt="Verbaasd"  height="15" width="15" />',$row['bericht']);                            
                            
            echo    "
                <div class=\"newscontent\"><span class=\"green\"><strong>"
. $row['naam'] . "</strong></span>
                    <p style=\"margin:0px;margin-top:5px;\">"
. $row['bericht'] . "</p>
                    <div class=\"newscaption\">"
. $row['show_datum'] . " &bull; <a class=\"newslink\" href=\"#\">Omhoog</a></div></div>";
        }
    }
else {
        echo "<p>Schrijf als eerste in het gastenboek!</p>";
    }

?>


</div>
 
PHP hulp

PHP hulp

05/12/2020 03:24:00
 
- SanThe -

- SanThe -

09/06/2011 22:16:16
Quote Anchor link
Je insert klopt niet.
INSERT INTO ... (..., ...,) VALUES ('...', '...')
 
Erik van de Locht

Erik van de Locht

09/06/2011 22:18:12
Quote Anchor link
Lees deze tutorial eens door:
http://www.phphulp.nl/php/tutorial/php-algemeen/header-already-sent/738/

En lees daarna eens de beschrijving van de functie setcookie() :
http://nl2.php.net/setcookie

Dan snap je zeker waar je de mist in gaat ;)
 
Peter dhc

peter dhc

10/06/2011 07:13:37
Quote Anchor link
- SanThe - op 09/06/2011 22:16:16:
Je insert klopt niet.
INSERT INTO ... (..., ...,) VALUES ('...', '...')


Oh, vreemd, nooit problemen mee gehad.

Over die tutorial; ik snap nu waar het probleem ligt.
Maar ik snap dan niet hoe het op te lossen in mijn geval. Het werkt in ieder geval niet om eerst de setcookie en pas daarna de echo te plaatsen, want dan is er blijkbaar toch al iets aangepast na de post request?
 
Peter dhc

peter dhc

13/06/2011 11:56:20
Quote Anchor link
Kan iemand me nog een oplossing geven?
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.