Hilfe bei captcha code

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Hilfe bei captcha code

    Hallo, hab folgenden captchacode gefunden, den ich gut finde:
    Es gibt 3 Dateien:
    captcha.php
    captcha.PNG
    FONT.TTF


    captcha.php
    PHP Code:
    <?php
       session_start
    ();
       unset(
    $_SESSION['captcha_spam']);

       function 
    randomString($len) {
          function 
    make_seed(){
             list(
    $usec $sec) = explode (' 'microtime());
             return (float) 
    $sec + ((float) $usec 100000);
          }
          
    srand(make_seed());  
                           
          
    //Der String $possible enthält alle Zeichen, die verwendet werden sollen
          
    $possible="ABCDEFGHJKLMNPRSTUVWXYZabcdefghijkmnpqrstuvwxyz23456789";
          
    $str="";
          while(
    strlen($str)<$len) {
            
    $str.=substr($possible,(rand()%(strlen($possible))),1);
          }
       return(
    $str);
       }

       
    $text randomString(5);  //Die Zahl bestimmt die Anzahl stellen
       
    $_SESSION['captcha_spam'] = $text;
             
       
    header('Content-type: image/png');
       
    $img ImageCreateFromPNG('captcha.PNG'); //Backgroundimage
       
    $color ImageColorAllocate($img000); //Farbe
       
    $ttf $_SERVER['DOCUMENT_ROOT']."/captcha/XFILES.TTF"//Schriftart
       
    $ttfsize 25//Schriftgrösse
       
    $angle rand(0,5);
       
    $t_x rand(5,30);
       
    $t_y 35;
       
    imagettftext($img$ttfsize$angle$t_x$t_y$color$ttf$text);
       
    imagepng($img);
       
    imagedestroy($img);
    ?>
    Einbau ins Formular:
    PHP Code:
    <tr>
    <
    td><img src="captcha/captcha.php" border="0" title="Sicherheitscode"></td>
    <
    td><input type="text" name="sicherheitscode" size="5"></td>
    </
    tr
    einbau ins script:
    PHP Code:
    <?php
    session_start
    ();
    if(isset(
    $_SESSION['captcha_spam']) AND $_POST["sicherheitscode"] == $_SESSION['captcha_spam']){
    unset(
    $_SESSION['captcha_spam']);

    //
    //
    //Hier kommt das ursprüngliche Script hin.
    //
    //

    }
    ?>
    Wenn ich nun mein Formular abschicke kommt lediglich folgendes:

    Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\xampp\htdocs\2.php:4) in C:\xampp\htdocs\2.php on line 5

    Was kann ich nun tun?
    Wo ist der fehler?
    in line 5 steht folgendes:
    session_start();

    Also, bitte helft mir
    Change
    Last edited by Change; 09-08-2008, 00:11.

  • #2
    session_start steht in mehreren dateien und das mag er nicht.
    es reicht wenn du session_start einmal ausführst .. das gilt für die ganze webseite (solange der browser offen ist oder die session manuell zerstört wird).


    also in der datei "einbau ins script:" (2.php) das session_start entfernen.
    Gruß
    Uzu

    private Homepage

    Comment


    • #3
      @Chage hier lesen: http://www.php-resource.de/forum/sho...threadid=62965


      -----------


      Original geschrieben von UzumakiNaruto
      session_start steht in mehreren dateien und das mag er nicht.
      es reicht wenn du session_start einmal ausführst .. das gilt für die ganze webseite (solange der browser offen ist oder die session manuell zerstört wird).


      also in der datei "einbau ins script:" (2.php) das session_start entfernen.
      Du schon wieder mit deinem tollen Halbwissen. Was meinst du, wann captcha.php aufgerufen wird? session_start() in captcha.php kollidiert niemals mit anderen session_start() im Script. Denn captcha.php wird erst vom Browser nachträglich extra aufgerufen, nachdem der Browser die HTML-Codes für die Seite erhalten hat und der Browser für die Darstellung des Bildes die Daten braucht. Deshalb sieht man auch bei überladene Seiten, dass das CaptchaBild fast immer am Ende angezeigt wird.

      Der Fehler ist also woanders zu finden.

      Comment


      • #4
        Hi, erstmal danke für die posts!
        Weiß jetzt leider immernochnicht was ich machen muss!

        Wo liegt der fehler?

        Hab mir den Thread mal durchgelesen zu dem du mir den Link gepostet hast.... das sind Grundinformationen zum script-Header...aber was muss ich da reinschreiben, das alles funkt???

        Hoffe auf eine Antwort, Change

        Comment


        • #5
          Du musst da nichts reinschreiben. Du musst nur dafür sorgen, dass du KEINE Ausgabe vor dem session_start() machst!

          Comment


          • #6
            Vielen Dank, klappt einwandfrei!

            Jedoch!
            Ich habe 3 scripts
            1.php = Formular
            2.php = Verarbeitung & Userausgabe
            3.php "Admin" auslese site

            Wenn jedoch vor session_start(); nichts stehen darf, wie richte ich die Seite dann designtechnisch ein????

            Wenn ich ein script posten soll, einfach sagen!

            Hoffe jemand kann mir da helfen!
            Danke

            Comment


            • #7
              Eingabe - Verarbeitung - Ausgabe

              Comment


              • #8
                Was hindert dich an:

                PHP Code:
                <?php session_start(); ?>
                <html>
                <!-- REST-->
                <?php 

                #blubb-code

                ?>
                </html>
                Also einfach session start kurz am Anfang schreiben .. kann auch vom restlichen Code getrennt sein ansich bzw. den code blöcken..

                mfg

                Comment


                • #9
                  Vielen, Vielen Dank, klappt super!

                  Comment

                  Working...
                  X