Hilfe bei captcha code

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • 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
    Zuletzt geändert von Change; 09.08.2008, 01: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

    Kommentar


    • #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.

      Kommentar


      • #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

        Kommentar


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

          Kommentar


          • #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

            Kommentar


            • #7
              Eingabe - Verarbeitung - Ausgabe

              Kommentar


              • #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

                Kommentar


                • #9
                  Vielen, Vielen Dank, klappt super!

                  Kommentar

                  Lädt...
                  X