tutorials.de-Buchverschenkaktion 08/2010
+ Auf Thema antworten
  1. #1
    d2mike d2mike ist offline Mitglied Gold d2mike hat eine blütenweiße Weste
    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. PHP 5 / MySQL 5 Seminar (22 Stunden Video-Training)

    Preis: früher: 39,95€ - jetzt nur: 7,99€
    Innerhalb Deutschlands versandkostenfrei!

    PHP 5 / MySQL 5 Lernkurs – 22 Stunden Video-Training auf DVD
    - PHP-, MySQL- und PHPMyAdmin-Grundlagen
    - Datenbankprogrammierung, objektorientierte Programmierung
    - Geeignet für Windows XP und Windows Vista


    Hier geht es zum Angebot

    Über 1.000 weitere IT-Bücher zum Sonderpreis lieferbar!


  3. #2
    teccco teccco ist offline Mitglied Gold teccco hat eine blütenweiße Weste
    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="" />

  4. #3
    d2mike d2mike ist offline Mitglied Gold d2mike hat eine blütenweiße Weste
    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. Problem mit Captcha-Grafiken erstellen
    Von xtratz im Forum PHP
    Antworten: 0
    Letzter Beitrag: 23.05.07, 13:19
  2. CAPTCHA Problem
    Von Nepheus im Forum PHP
    Antworten: 7
    Letzter Beitrag: 31.03.07, 15:29
  3. captcha problem
    Von croqued-monsieur im Forum PHP
    Antworten: 4
    Letzter Beitrag: 14.06.06, 10:30
  4. Captcha Problem (einbinden)
    Von Benard im Forum PHP
    Antworten: 6
    Letzter Beitrag: 22.05.06, 12:41
  5. Captcha: Verschleierung
    Von mistertwisters im Forum PHP
    Antworten: 5
    Letzter Beitrag: 07.05.06, 14:17

Lesezeichen

Lesezeichen