Zu den Aufzeichnungen der tutorials.de-Live-Workshops
ERLEDIGT
JA
ANTWORTEN
2
ZUGRIFFE
521
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    d2mike d2mike ist offline Mitglied Gold
    Registriert seit
    Jan 2005
    Beiträge
    161
    Hallo Leute!
    Ich brauch mal wieder eure Hilfe. Dieses mal geht es um ein Captcha...

    image.php --> hier wird das Captcha erzeugt und die Session Variable erzeugt
    PHP-Code:
    <?php
       session_start
    ();
       unset(
    $_SESSION['captcha']);
       
    $text rand(1000,10000); //Zufallszahl

       
    function encrypt($string$key) {
       
    $result '';
       for(
    $i=0$i<strlen($string); $i++) {
          
    $char substr($string$i1);
          
    $keychar substr($key, ($i strlen($key))-11);
          
    $char chr(ord($char)+ord($keychar));
          
    $result.=$char;
       }
       return 
    base64_encode($result);
       }

       
    $_SESSION['captcha'] = encrypt($text"8h384ls94"); //Key
       
    $_SESSION['captcha'] = str_replace("="""$_SESSION['captcha']);

            
       
    header('Content-type: image/png');
       
    $img ImageCreateFromPNG('image.png'); //Backgroundimage
       
    $color ImageColorAllocate($img000); //Farbe
       
    $ttf $_SERVER['Document_Root']."/arialf"//Schriftart
       
    $ttfsize 25//Schriftgrösse
       
    $angle rand(0,5);
       
    $t_x rand(5,50);
       
    $t_y 35;
       
    imagettftext($img$ttfsize$angle$t_x$t_y$color$ttf$text);
       
    imagepng($img);
       
    imagedestroy($img);
    ?>
    Die image.php wird dann in das Formular eingebunden
    test.php
    PHP-Code:
    <form action="check.php" method="GET" enctype="text/plain">
    <
    img src="image.php" />
    <
    input type="text" name="code" />
    </
    form
    und via Enter wird man auf die check.php weitergeleitet:
    PHP-Code:
    <?php
    session_start
    ();
    function 
    encrypt($string$key) {
    $result '';
    for(
    $i=0$i<strlen($string); $i++) {
       
    $char substr($string$i1);
       
    $keychar substr($key, ($i strlen($key))-11);
       
    $char chr(ord($char)+ord($keychar));
       
    $result.=$char;
    }
    return 
    base64_encode($result);
    }
    $eingabe encrypt($_REQUEST["code"], "8h384ls94");
    $eingabe str_replace("="""$eingabe);

    //nur für mich relevant damit ich sehe ob die Variablen leer sind oder nicht...
    echo "Eingabe: ".$eingabe."<br>";
    echo 
    "Catcha: ".$_SESSION['captcha']."<br>";

    if(
    $eingabe == $_SESSION['captcha']){
        unset(
    $_SESSION['captcha']);
            echo 
    "richtig!";
        }
        else {
            echo 
    "falsch!";
        }

    ?>
    So, ich hab jetzt das Problem mit der Session!
    Wenn die test.php aufgerufen wird (wo eigentlich durch die image.php eine Session Variabel erzeugt werden sollte) passiert das genau NICHT - erst wenn ich die image.php separat aufrufe und dann die Zahlenkombi eingeb funktionierts auch ... WARUM?
    Danke ... ihr seid Spitze!

    lg Michael
     

  2. #2
    teccco teccco ist offline Mitglied Gold
    Registriert seit
    Jan 2002
    Beiträge
    100
    Hallo.
    1. Mach mal aus $_SERVER["Document_Root"] folgendes:
      PHP-Code:
      $_SERVER["DOCUMENT_ROOT"
    2. Mach mal aus $eingabe folgendes:
      PHP-Code:
      $_POST["eingabe"
    3. Übergib der image.php die Variable PHPSESSID mit der aktuellen Session-ID:
      HTML-Code:
      <img src="image.php?PHPSESSID=<?php echo session_id(); ?>" alt="" title="" />
     

  3. #3
    d2mike d2mike ist offline Mitglied Gold
    Registriert seit
    Jan 2005
    Beiträge
    161
    DANKE funktioniert - lag an der session_id()
    lg Michael

    Zitat Zitat von teccco Beitrag anzeigen
    Hallo.
    1. Mach mal aus $_SERVER["Document_Root"] folgendes:
      PHP-Code:
      $_SERVER["DOCUMENT_ROOT"
    2. Mach mal aus $eingabe folgendes:
      PHP-Code:
      $_POST["eingabe"
    3. Übergib der image.php die Variable PHPSESSID mit der aktuellen Session-ID:
      HTML-Code:
      <img src="image.php?PHPSESSID=<?php echo session_id(); ?>" alt="" title="" />
     

Ähnliche Themen

  1. CAPTCHA Problem
    Von walle_89 im Forum PHP
    Antworten: 10
    Letzter Beitrag: 08.03.09, 21:07
  2. Captcha-Problem
    Von Headymaster im Forum PHP
    Antworten: 9
    Letzter Beitrag: 18.06.08, 17:47
  3. Captcha Problem
    Von Geordi im Forum PHP
    Antworten: 1
    Letzter Beitrag: 27.12.07, 21:42
  4. CAPTCHA Problem
    Von Nepheus im Forum PHP
    Antworten: 7
    Letzter Beitrag: 31.03.07, 15:29
  5. captcha problem
    Von croqued-monsieur im Forum PHP
    Antworten: 4
    Letzter Beitrag: 14.06.06, 10:30