[PHP] session_start zie ik iets over het hoofd?

Pagina: 1
Acties:
  • 154 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

  • SoeperKees
  • Registratie: December 2000
  • Laatst online: 03-09 16:36
Heb op phpfreakz help al gelezen maar daarmee kon ik de fout ook niet vinden.
Ik heb dus een captcha in mijn gastenboek gebouwd en die werkt goed, maar krijg nog wel steeds deze fout:

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /home/magistic/public_html/djzeec/index.php:52) in /home/magistic/public_html/djzeec/code.php on line 1

http://www.djzeec.nl/index.php?page=nieuws2&id=81

Alleen ik kan de fout nergens terug vinden, ik zit me er kapot op te staren misschien is dat de reden dat ik het niet zie.

index.php:

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
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
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
<?php/*
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>

<link rel="shortcut icon" href="icon2.ico"/>
<link rel="icon" href="icon2.ico"/>


<link rel="stylesheet" type="text/css" href="stylesheet.css" />
<title>Welcome to the site of DjZeeC</title>

</head>

<body>
<div id="siteholder">
    <div>
    <?php
    
    include('flashheader.php');
    ?>
    
    </div>
    


<iframe class="iframe" scrolling="no" height="100%" src="index2.php" name="content"></iframe>


    
</div>

</body>
</html>
*/?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>

<title>Welcome @ the site of DjZeeC</title>

</head>
<link rel="shortcut icon" href="icon2.ico"/>
<link rel="icon" href="icon2.ico"/>


<link rel="stylesheet" type="text/css" href="stylesheet.css" />

<body>
<div id="siteholder">
    <div id="header"></div>
                        <?php
                                /*DE MENUBALK*/
                                include('menu.php');
                            
                        ?>
    
    <div id="seperator"></div>
    <div id="collumLeft">
        <h1>Latest news</h1>
        <div id="nieuws">
                        <?php
                        
                                include('laatstenieuws.php');
                                
                        ?>
        </div>
        <h1>Newest Downloads</h1>
        <div class="downloads">
            
                            <?php
                                                        
                                include('meestgedownload.php');
                                
                            ?>
            
        </div>
    </div>
    <div id="mainEntry">
            <div class="entry">

                            <?php
                            
                            /*MIDDELSTE TABEL*/ 
                            
                                switch (strtolower($_GET['page'])) 
                                    { 
                                        case "nieuws":    
                                        $page="nieuws.php";
                                        break;
                                        
                                        case "bio":
                                        $page="bio.php";
                                        break;
                                        
                                        case "disco":
                                        $page="disco.php";
                                        break;
                                        
                                        case "charts":
                                        $page="charts.php";
                                        break;
                                        
                                        case "studio":
                                        $page="studio.php";
                                        break;
                                        
                                        case "down":
                                        $page="down.php";
                                        break;
                                        
                                        case "downloads2":
                                        $page="downloads2.php";
                                        break;
                                        
                                        case "bookings":
                                        $page="bookings.php";
                                        break;
                                        
                                        case "agenda":
                                        $page="agenda.php";
                                        break;
                                        
                                        case "guestbook":
                                        $page="guestbook.php";
                                        break;
                                        
                                        case "contact":
                                        $page="contact.php";
                                        break;
                                        
                                        case "res":
                                        $page="zoek_resultaten.php";
                                        break;
                                        
                                        case "poll_archief";
                                        $page="poll_archief.php";
                                        break;
                                        
                                        case "nieuws_archief";
                                        $page="nieuws_archief.php";
                                        break;
                                        
                                        case "nieuws2":
                                        $page="nieuws2.php";
                                        break;
                                        
                                        case "laatstenieuws":
                                        $page="laatstenieuws.php";
                                        break;              
                                                        
                                        default:             //Geen pagina gevonden? standaard tekst
                                        $page="nieuws.php";
                                        break;
                                    }
                                            include ($page);   //include de variabele $page
                            ?>
    </div>
    </div>
    <div id="collumRight">
        <h1>Links</h1>
        <div>
            <p class="forTips">
                <a href="http://www.mitflow.nl" target="_blank" title="Mitflow">.mitflow.nl.</a>TIP!<br />
                <a href="http://www.clubcharts.nl" target="_blank" title="Clubcharts">.clubcharts.nl.</a><br />
                <a href="http://forum.clubcharts.nl" target="_blank" title="Clubcharts Forum">.forum.clubcharts.nl.</a>TIP!<br />
                <a href="http://www.fruityloops.com" target="_blank" title="FL Studio">.fruityloops.com.</a><br />
                <a href="http://www.kvraudio.com" target="_blank" title="Kvr Audio">.kvraudio.com.</a><br />
                <a href="http://www.pure-tv.nl" target="_blank" title="Pure-tv" >.pure-tv.nl.</a>TIP!<br /><br />
                <a href="http://www.getfirefox.com" target="_blank" title="Firefox"><img border="0" src="gfx/get_firefox.png"/></a>
            </p>
        </div>
        <h1>Poll</h1>
        <div>
                        <?php
                        
                                include('poll.php');
                                
                        ?>
        </div>
        <h1>Search</h1>
        <div>
                        <?php
                        
                                include('zoeken.php');
                                
                        ?>
        <a href="asdf333/">.</a>

        </div>
    

    </div>
</div>

</body>
</html>


code.php

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
<?php session_start(); ?>
<div class="tab">
    <h1 class="entry_title">Add message</h1>
     <div class="entry_content">
     <p>
<?php

            include("asdf333/dbconfig.php");

            $sReactieQ = "SELECT id FROM nieuws WHERE id = $_GET[id]";
            $res = mysql_query($sReactieQ);

if(isset($_POST['submit'])) 

{
    if($_POST['controle'] == $_SESSION['code']) 
    
        {
        if (!empty($_POST['submit']) && !empty($_POST['naam']) && !empty($_POST['msg']))
            { 
                 $datum = date('d.m.Y');
                 $tijd = date('H:i');
                 $ip = $_SERVER['REMOTE_ADDR'];
                 
                 $sql = "INSERT INTO reacties (naam, msg, datum, tijd, ip, nieuws_id) VALUES ('".$_POST['naam']."', '".$_POST['msg']."', '".$datum."' , '".$tijd."', '".$ip."' , '".$_POST['nieuws_id']."')";
                 
                 $res = mysql_query($sql);
                                 
                 if ($res) 
                 { 
                    echo "Message added.<br />"; 
                    echo "Click <a href=\"index.php?page=nieuws2&id=".($_GET['id']). "\">here</a> to go back.<br /><br />";
                 }
                     else
                           echo mysql_errno() . ": " . mysql_error() . "\n"; 
            } 

        }
    else
    
        {
            echo "<b>The code is incorrect !</b> Go back and try again";
            exit;
        }
}


echo "<form method=\"POST\" action=\"index.php?page=nieuws2&id=".($_GET['id']). "\" >";
?>
   <table>
    <tr>
     <td></td><td><img src="plaatje.php"></td>
    </tr>
    <tr>
     <td>Code: </td><td><input class="input" type="text" name="controle" /></td>
        
     
        <?php   
        
                echo "Name:<br />"; 
                echo "<input type=\"text\" name=\"naam\" size=\"20\" maxlength=\"20\" value=\"" . ($_POST['naam']) . "\"><br />"; 
                 
                echo "Message:<br />"; 
                echo "<textarea  name=\"msg\" rows=\"5\" cols=\"35\">" . ($_POST['msg']) . "</textarea><br />";
                
                echo "<input type=\"hidden\" name=\"nieuws_id\" size=\"5\" value=\" " .($_GET['id']). "\">";

        ?>

    </tr>
    <tr>
     <td></td><td><input class="button" type="submit" name="submit" value="Add Message!" /></td>
    </tr>
   </table>
</form>

        </p>
     </div>
</div>

Acties:
  • 0 Henk 'm!

  • Snake
  • Registratie: Juli 2005
  • Laatst online: 07-03-2024

Snake

Los Angeles, CA, USA

Wat is de code van nieuws2???

En ipv die session_start() in code.php te zette, zet die es helemaal bovenaan in index.php

Going for adventure, lots of sun and a convertible! | GMT-8


Acties:
  • 0 Henk 'm!

  • Bergen
  • Registratie: Maart 2001
  • Laatst online: 07-09 11:44

Bergen

Spellingscontroleur

Je doet session_start pas ergens halverwege de pagina. Gewoon session_start als ALLEReerste doen, dus op regel 1 van index.php lost alle zorgen op.

En dit:
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
   switch (strtolower($_GET['page'])) 
                                    { 
                                        case "nieuws":    
                                        $page="nieuws.php";
                                        break;
                                        
                                        case "bio":
                                        $page="bio.php";
                                        break;
                                        
                                        case "disco":
                                        $page="disco.php";
                                        break;
                                        
                                        case "charts":
                                        $page="charts.php";
                                        break;
                                        
                                        case "studio":
                                        $page="studio.php";
                                        break;
                                        
                                        case "down":
                                        $page="down.php";
                                        break;
                                        
                                        case "downloads2":
                                        $page="downloads2.php";
                                        break;
                                        
                                        case "bookings":
                                        $page="bookings.php";
                                        break;
                                        
                                        case "agenda":
                                        $page="agenda.php";
                                        break;
                                        
                                        case "guestbook":
                                        $page="guestbook.php";
                                        break;
                                        
                                        case "contact":
                                        $page="contact.php";
                                        break;
                                        
                                        case "res":
                                        $page="zoek_resultaten.php";
                                        break;
                                        
                                        case "poll_archief";
                                        $page="poll_archief.php";
                                        break;
                                        
                                        case "nieuws_archief";
                                        $page="nieuws_archief.php";
                                        break;
                                        
                                        case "nieuws2":
                                        $page="nieuws2.php";
                                        break;
                                        
                                        case "laatstenieuws":
                                        $page="laatstenieuws.php";
                                        break;                
                                                        
                                        default:             //Geen pagina gevonden? standaard tekst
                                          $page="nieuws.php";
                                          break;
                                    }
                                            include ($page);   //include de variabele $page

Zou ik zo doen:
PHP:
1
2
3
4
5
6
7
$page = strtolower($_GET['page']);
$mogelijkheden = array('nieuws', 'bio', 'disco', 'charts', etc etc etc);
if (in_array($page, $mogelijkheden)) {
    include("$page.php");
} else {
    include("nieuws.php");
}

[ Voor 93% gewijzigd door Bergen op 03-11-2006 23:30 ]


Acties:
  • 0 Henk 'm!

  • SoeperKees
  • Registratie: December 2000
  • Laatst online: 03-09 16:36
Ej super dankje :) werkt idd.

En die tip zal ik meteen doen is het wat compacter :)

Acties:
  • 0 Henk 'm!

  • SoeperKees
  • Registratie: December 2000
  • Laatst online: 03-09 16:36
Ok ik heb dus die captcha werkend, maar nog steeds kunnen de bots posten :(

Dit is de code van het plaatje

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
<?php

    session_start();
    
    function code( $aantal )
    {
        $keys = array_merge( range('a','z') , range(1,9) );
        $hash = NULL;
    
        for( $i = 0;  $i <= $aantal;  $i++ )
        {
            $hash[] = $keys[ rand(0, 34) ];
        }
        
        return $hash;
    }
    
    header("content-type: image/png");
    
    $image = imagecreate(150, 35);
    $bg = imagecolorallocate($image, rand(200, 255), rand(200, 255), rand(200, 197));
    $zwart = imagecolorallocate($image, 125, 125, 125);
    $grijs = imagecolorallocate($image, 102, 102, 102);
    
    $font = 'verdana.ttf';
    $tekst = code( 6 );
    
    $num_line = rand (10, 25);
    for($i = 0; $i < $num_line; $i++) {
        $kleur = imagecolorallocate($image, rand(150, 255), rand(150, 255), rand(150, 255));
        imageline($image, rand(0, 150),  rand(0, 35), rand(0, 150), rand(0, 35), $kleur);
    }
    
    
    ImagePolygon($image, array(     1, 1,
                    149, 1,
                    149, 34,
                    1, 34,
                ), 4, $zwart);
    ImagePolygon($image, array(     3, 3,
                    147, 3,
                    147, 32,
                    3, 32,
                ), 4, $grijs);
    
    $_SESSION['code'] = implode('', $tekst);
    $int_x = 10;
    foreach( $tekst as $letter) {
        ImageTTFText($image, 15, rand(-30, 30), $int_x, 24, $zwart, $font, $letter);
        $int_x += rand(15, 25);
    }
    
    ImagePNG($image);
    ImageDestroy($image);
?>


Is het nog te makkelijk gemaakt of zo?

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 23:10

Janoz

Moderator Devschuur®

!litemod

Zorg dat je, naast dat je kijkt of de code wel gelijk is, ook kijkt of er uberhaupt wel een code is (lengte groter dan 0). Als een bot langskomt en helemaal geen sessie accepteerd (door niet het cookie mee te sturen) dan heeft de submit pagina ook helemaal geen sessie en is $_SESSION['code'] gewoon leeg. Als het meegestuurde controle veld vervolgens ook leeg is dan zijn ze inderdaad gelijk aan elkaar.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • Bergen
  • Registratie: Maart 2001
  • Laatst online: 07-09 11:44

Bergen

Spellingscontroleur

Bovendien zijn er steeds meer bots die captchas kunnen lezen. (scroll even naar beneden voor een opsomming van goede en slechte captchas.)

(lekker nummer trouwens, dat 'Fly', die gaat mee in de autoradio! ;))

[ Voor 29% gewijzigd door Bergen op 05-11-2006 01:33 ]


Acties:
  • 0 Henk 'm!

  • SoeperKees
  • Registratie: December 2000
  • Laatst online: 03-09 16:36
Janoz schreef op zaterdag 04 november 2006 @ 15:10:
Zorg dat je, naast dat je kijkt of de code wel gelijk is, ook kijkt of er uberhaupt wel een code is (lengte groter dan 0). Als een bot langskomt en helemaal geen sessie accepteerd (door niet het cookie mee te sturen) dan heeft de submit pagina ook helemaal geen sessie en is $_SESSION['code'] gewoon leeg. Als het meegestuurde controle veld vervolgens ook leeg is dan zijn ze inderdaad gelijk aan elkaar.
Als je idd geen cookies accepteert kan je gewoon posten zonder die captcha in te vullen, handig van me...
Bergen schreef op zaterdag 04 november 2006 @ 23:20:
Bovendien zijn er steeds meer bots die captchas kunnen lezen. (scroll even naar beneden voor een opsomming van goede en slechte captchas.)

(lekker nummer trouwens, dat 'Fly', die gaat mee in de autoradio! ;))
Ok daar was ik idd benieuwd naar wat nou een goede captcha is.

Kijk zo mag ik het horen! :) bedankt

[ Voor 40% gewijzigd door SoeperKees op 06-11-2006 11:14 ]

Pagina: 1