Microhome
Erfahrenes Mitglied
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
pass.php
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:
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
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