[php] <img> ein Bild von php erzeugen und Sessions

  • hi
    ich habe folgenden Code

    datei1.php:

    PHP
    session_start();
    $cid = rand(1,10000);
    echo '<img src="datei2.php?cid='.$cid.'">';
    echo $_SESSION[$cid]; //Diese Ausgabe kommt einfach nicht.

    datei2.php

    PHP
    session_start();
    $cid = $_GET['cid']; //testweiße zwischengespeichert in eine db wird richtig übergeben
    $zufall = rand(1000,9999);
    $_SESSION[$cid] = $zufall;
    //Wenn ich hier den Inhalt von $_SESSION[$cid] in eine db speicher ist er vorhanden
    //erzeuge ein bild das $zufall anzeigt funktioniert auch daher lasse ich den Code weg

    ich bekomme einfach den Wert aus der Session nicht zurück in datei1.php. Mit session_id die id auslesen bringt mir immer die richtige id zurück ist immer die gleiche (in datei2.php hab ich sie einfach mal testweiße in eine db geschrieben)

    Wird durch den <img> Tag irgendwie der session Inhalt geleert oder so? Oder wird das Bild "zu langsam" geladen? ich komme da einfach nicht weiter hoffe mir kann wer helfen.

    mfg

    chris

    2 Mal editiert, zuletzt von chris123 (28. Juli 2009 um 13:16) aus folgendem Grund: ; vergessen *g*

  • Ich raff irgendwie nicht ganz was du willst xD Das soll mal irgendwann ein Captcha werden oder?
    Willst du sowas machen ?

    PHP
    <?php
    // datei_1.php
    session_start();
    $cid = rand(1,10000);
    $_SESSION['captcha_cid'] = $cid;
    echo '<img src="datei2.php?cid=' . $cid . '">';
    ?>

    Gruß crAzywuLf :D

  • hi

    also im Prinzip soll es ein Captcha werden ja.

    Der User ruft datei1.php auf. im IMG Tag wird aus der datei2.php ein Bild erzeugt (und auch dort ein random Code generiert übergeben (per GET z.b.) aus datei1.php wäre sicherheitstechnisch doof da kann ein bot die übergeben Variable ja auslesen) und in datei1.php angezeigt.

    Natürlich brauche ich den richtigen Code auch in datei1.php weil ich 4 auswahlmöglichkeiten haben will und da muss natürlich dann die richtige dabei sein.

    Also soll das ganze schematisch so aussehen:

    1. datei1.php wird aufgerufen und bindet per img tag das Bild (datei2.php) ein ->
    2. im Bild wird eine 4stellige randomzahl erzeugt und diese Zahl in der session gespeichert und natürlich das bild generiert (das ist kein Problem)->
    3. nachdem in datei1.php das bild geladen wurde müsste ja in der session die randomzahl vorhanden sein diese soll er anzeigen und 3 falsche noch dazu.

    leider klappt 3. nicht da die session komischerweiße leer ist.

    Wenn ich mir dein Beispiel angucke hast du mich glaub ich leicht falsch verstanden ;) aber mich auf eine Idee gebracht die ich sofort mal ausprobiere

    edit danke die idee klappt *g*

    1. ich erzeuge in datei1.php eine Zufallszahl und gebe diese per session an datei2.php weiter (normaler img tag datei2.php einbinden)
    2. in datei2.php Bild generieren mit der Zufallszahl aus der session aus datei1.php
    3. Bild wird angezeigt und ich habe in datei1.php die Zufallszahl

    ich glaube da spricht sicherheitstechnisch nix dagegen ;)

    datei1.php

    PHP
    session_start();
    $_SESSION['zufall'] = rand(1000,9999);
    echo '<img src="datei2.php">';
    echo $_SESSION['zufall']; //und halt noch 3 falsche dann zufällig dazu usw...

    datei2.php

    PHP
    session_start();
    $zufallszahl = $_SESSION['zufall'];
    //generiere Bild mit $zufallszahl

    mfg

    chris

    7 Mal editiert, zuletzt von chris123 (28. Juli 2009 um 14:42)