Zurück tutorials.de > Programming > PHP

 
 
Hallo und herzlich willkommen! Tutorials.de ist eine Hilfe-Community mit dem Motto User helfen Usern. Als Gast verfügst Du über Schreibrechte in unseren Foren und Blogs. Du kannst dich aber gerne auch kostenlos registrieren und Teil unserer Gemeinschaft werden! Viel Spaß & Erfolg bei der Vermehrung deines Wissens :-)

Themen: 242.975 | Beiträge: 1.352.293 | Mitglieder: 169.418 (Stand 28.01.10) | Fragen zur Nutzung von Tutorials.de? Nutzungsregeln | Kontaktformular | Impressum

Jubiläums-Countdown 23.02 23.03 23.04 23.05 23.06 23.07 23.08 23.09


4 kostenlose Bücher bei unserer Buch-Verschenkaktion 03/2010
  AntwortAntworten (über Gastzugang)    
  AntwortAntworten (über Gastzugang)    
 
Themen-Optionen Ansicht
Alt 22.02.06, 17:51   #1 (permalink)
Mitglied Brokat
 
Benutzerbild von Microhome  
 
Registriert seit: Jul 2003
Ort: Berlin
Beiträge: 286
Renommee-Modifikator: 15
Microhome ist ein sehr geschätzer Mensch

Frage Session und Zufallsbild (Captcha)

Hallo liebe Community,
ich verwende die Captcha Klasse von http://www.powie.de/cms/forum/showthread.php?id=21009. Jedoch kann ich die Session nicht ausgeben. Ist da möglicherweise eine Einstellung in der php.ini falsch?

show.php
Code:
<?php
require "class_captcha.php";
session_start();
$pc = new pCaptcha();
$pc->showCaptcha();
?>
pass.php
Code:
<?
echo "<img src=\"show.php\"><br><br>";
$pwd = $_SESSION['pcaptchacode'];
echo "Passwort: $pwd";
?>
Das Captcha-Bild wird auch korrekt angezeigt und irgendwie scheinen Sessions ja zu funktionieren, denn es wird solange das selbe Passwort im Captcha angezeigt, wie ich den Browser nicht schließe.

Hier die Klasse:
Code:
<?php
putenv('GDFONTPATH=/var/fonts');
class pCaptcha
{
    var $pcap_fontsize;     //Schriftgrösse
    var $pcap_font;         //Schriftart (ttf)
    var $pcap_code;         //Der CODE
    var $pcap_len;          //Codelänge
    var $pcap_bg;           //Hintergrund

    // PHP 5 Constructor
    function __construct( $pcap_code = "" )
     {
        $this->pcap_code      = "";
        $this->pcap_font      = "ltromatic";
        $this->pcap_bg        = "back.png";
        $this->pcap_fontsize  = 24;
        $this->pcap_len       = 6;
        if ($this->pcap_code == "" ) {
            $this->newCode();
        } else {
            $_SESSION['pcaptchacode'] = $this->pcap_code;
        }
    }
    // PHP 4 Contructor
    function pCaptcha( $pcap_code = "" )
    {
        $this->__construct( $pcap_code ) ;
    }

    function showCaptcha ()
    {
        $img_format = 'png';

        //Daten des BG
        $imgsize = GetImageSize($this->pcap_bg);
        switch($imgsize[2]):
        case 1 : $bg = ImageCreateFromGIF($this->pcap_bg);
            break;
        case 2 : $bg = ImageCreateFromJPEG($this->pcap_bg);
            break;
        case 3 : $bg = ImageCreateFromPNG($this->pcap_bg);
            break;
        endswitch;

        //Textgrösse
        $pos = imagettfbbox($this->pcap_fontsize,0,$this->pcap_font,$this->pcap_code);
        //var_dump($pos);
        $width  = intval(abs($pos[0])+abs($pos[2])+6);
        $height = intval(abs($pos[1]+$pos[7])+6);
        $posx   = 3;
        $posy   = $height - 3;
        $pcap_im = imagecreatetruecolor($width,$height);
        imagecopyresampled($pcap_im,$bg,0,0,0,0,$width,$height,ImageSX($bg),ImageSY($bg));

        //Text einfügen
        // colors
        $color_white    = imagecolorallocate($pcap_im, 0xFF, 0xFF, 0xFF);
        $color_black    = imagecolorallocate($pcap_im, 0x00, 0x00, 0x00);
        imagettftext($pcap_im,$this->pcap_fontsize,0,$posx,$posy,$color_black,$this->pcap_font,$this->pcap_code);

        imageinterlace($pcap_im,false);

        $pcap_image = 'image'.$img_format;
        // sending image
        header('Content-type: image/'.$img_format);
        $pcap_image($pcap_im);
    }

    function newCode()
    {
        if ( !isset($_SESSION['pcaptchacode']) ) {
            $iid= md5(uniqid(rand()));
            $iid= substr($iid,0,$this->pcap_len);
            $_SESSION['pcaptchacode'] = $iid;
            $this->pcap_code = $iid;
        } else {
            $this->pcap_code = $_SESSION['pcaptchacode'];
        }
    }
    function delCode()
    {
        if ( isset($_SESSION['pcaptchacode']) ) {
            unset ( $_SESSION['pcaptchacode'] );
        }
    }
}
?>
Als Ausgabe bekomme ich eben das Bild angezeigt und dadrunter steht dann Passwort: aber dann wird der Inhalt der Session halt nicht ausgegeben. Was mache ich falsch?


Liebe Grüße
m!cro
__________________
Lösungsvorschlag:
Wenn es mit dem mysql_query(...); Probleme gibt, pack ein die(mysql_error()); dahinter und guck dir den MySQL-Fehler an!
  Microhome ist offline  
 
Alt 22.02.06, 18:20   #2 (permalink)
 
Registriert seit: Feb 2005
Ort: NRW
Beiträge: 460
Renommee-Modifikator: 12
RS9999 hat eine blütenweiße Weste

AW: Session und Zufallsbild (Captcha)

Hallo,

dann ändere das so ab:
PHP-Code:
<?php
    session_start
();
    require 
"class_captcha.php";    
    
$pc = new pCaptcha();
    
$pc->showCaptcha();
?>
Session sollte vor Bekanntmachung von $_SESSION['pcaptchacode'] gestartet werden.


Gruß

RS9999
  RS9999 ist offline  
 
Alt 22.02.06, 18:27   #3 (permalink)
Mitglied Brokat
 
Benutzerbild von Microhome  
 
Registriert seit: Jul 2003
Ort: Berlin
Beiträge: 286
Renommee-Modifikator: 15
Microhome ist ein sehr geschätzer Mensch

AW: Session und Zufallsbild (Captcha)

Hmm, funktioniert aber auch nicht. Hab in der show.php die beiden Zeilen getauscht aber das Ergebnis ist leider das selbe

Hab mal noch was getestet. Also über pass.php scheints ja nicht (warum?) nicht zu funktionieren.
Habe show.php mal ein Bisschen abgewandelt und siehe da, wenn ich show.php öffne dann zeigt
er mir den Session-Array an: Array ( [pcaptchacode] => 0eade9 )

show.php (abgewandelt)
Code:
<?php
session_start();
require "class_captcha.php";
$pc = new pCaptcha();
print_r($_SESSION);
//$pc->showCaptcha();
?>
Woran liegt das denn Nun hat show.php natürlich das Captcha nicht angezeigt aber die Session scheint ja zu laufen. Nur pass.php zeigt sie nicht an, wieso?
__________________
Lösungsvorschlag:
Wenn es mit dem mysql_query(...); Probleme gibt, pack ein die(mysql_error()); dahinter und guck dir den MySQL-Fehler an!

Geändert von Microhome (22.02.06 um 18:35 Uhr).
  Microhome ist offline  
 
Alt 23.02.06, 00:18   #4 (permalink)
Mitglied Brokat
 
Benutzerbild von Microhome  
 
Registriert seit: Jul 2003
Ort: Berlin
Beiträge: 286
Renommee-Modifikator: 15
Microhome ist ein sehr geschätzer Mensch

AW: Session und Zufallsbild (Captcha)

LOL super.. vor lauter source-lesen die ganze Zeit übersehen gehabt: in pass.php fehlt einfach nur nen session_start().
Hab das ganze jetzt aber in nem eigenen Script gemacht (15 Zeilen). FUnktioniert einwandfrei und ist wesentlich einfacher als die o.g. Klasse.. naja.

Danke trotzdem fürs lesen!
__________________
Lösungsvorschlag:
Wenn es mit dem mysql_query(...); Probleme gibt, pack ein die(mysql_error()); dahinter und guck dir den MySQL-Fehler an!
  Microhome ist offline  
 
 
 
Lesezeichen:


Themen-Optionen
Ansicht
Ähnliche Themen
 
Thema Autor Forum Antworten Letzter Beitrag
[PHP] einfacher Captcha mit GD2 und FreeType Billie PHP - Tutorials 2 27.03.08 11:52
Text Captcha Felix Jacobi PHP 16 18.05.07 07:04
Captcha sicher? ThaNewbie PHP 4 17.05.07 11:37
aus Ordner Zufallsbild laden und anzeigen imini Flash 19 04.04.05 08:49
Bildordner checken und Zufallsbild borish PHP 1 29.03.05 11:49
» Tools
 
tutorials.de-Tools tutorial.de-Suchfeld tutorial.de-Widget tutorial.de-RSS-Feed tutorial.de-Banner
» Neue Links
 
Hits: 134
»
JHT's Planetary...
(Cinema 4D-Objekte)
Hits: 261
»
Tageslicht ohne GI
(Cinema 4D-Tutorials)
Hits: 149
»
Puzzle
(Cinema 4D-Tutorials)
Hits: 100
»
Lacreme
(Cinema 4D-Tutorials)
Hits: 190
»
Liquid Light
(Cinema 4D-Tutorials)
» Aktuelle Umfrage
 
Bist du mit der Geschwindigkeit der Tutorials.de-Website zufrieden?
Ja, es putzt mir glatt den Staub vom Bildschirm! - 79,79%
150 Stimmen
Nein, ich denke da muss noch nachgebessert werden... - 20,21%
38 Stimmen
Stimmen gesamt: 188
Du darfst bei dieser Umfrage nicht abstimmen.

 

Alle Zeitangaben in WEZ +1. Es ist jetzt 20:35 Uhr.


Powered by vBulletin® Version 3.8.5 (Deutsch) & vBadvanced CMPS v.3.2.0
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.5.0 RC2 ©2010, Crawlability, Inc.
Alle Rechte vorbehalten ©2000 - 2010 tutorials.de
Design by Mark, CSS by Maik & Sven Mintel
Seite generiert in 0,25829 Sekunden mit 26 queries