Captcha wird nicht angezeigt !?

romeodadon

Angesehenes Mitglied
Hallo Ayomis,
habe da mal wieder ein kleines Problem wo ich nicht weiter komme,
ich habe ein Captcha Script in eine Community eingebaut, das Script generiet die JPG für die Anmeldung die
der User dann abgleicehn muss. Das bild Selbst wird generiert jedoch zeigt er mir nicht das Bild an.

Wenn ich jedoch die Eigenschaften des nicht angezeigten Bildes klicken erschient folgendes :

http://www.DIEDOMAIN.de/captcha_image.php?...f777ba9b72a6e67

Kann mit jemand weiterhelfen? Zur Not kann ich auch die Scripte Posten.


MFG
O4Y
 
Dein Link führt zu einem 404.

Ich vermute, daß entweder der Pfad falsch angegeben wird oder die Rechte falsch gesetzt sind. More input, please.
 
hallo mainlink,
danke für die antwort, der link zeigt das nur so an weil ich die domain abgeändert habe wenn mann den richtigen
Pfad in den Browser einträgt zeigt er einem kein 404 sondern den Link nochmal als Tex an.

Hier die Codes:

captcha_image.php
CODE <?php
$tmp_dir_path= '__TEMP__/';
$captcha_expires_after = 420;
header("Expires: Mon, 01 Jul 1990 00:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") ." GMT");
header("Pragma: no-cache");
header("Cache-Control: no-store, no-cache, max-age=0, must-revalidate");
header("Content-Type: image/jpeg", true);
if (!empty( $HTTP_GET_VARS['img'] ) )
$img = $HTTP_GET_VARS['img'];
else {
echo 'no image file specified via &img=...';
exit;
}
if (!$fh = fopen( $tmp_dir_path.'cap_'.$img.'.jpg', 'rb')) { echo 'could not open image file!'; }
else { fpassthru( $fh ); fclose( $fh ); }
$tmp_dir = dir( $tmp_dir_path );
while( $entry = $tmp_dir->read()) {
if ( is_file( $tmp_dir_path . $entry ) ){
if ( mktime() - filemtime( $tmp_dir_path . $entry ) > $captcha_expires_after ) {
unlink( $tmp_dir_path . $entry );
}}}
?>


class.captcha.php

CODE <?php
class captcha {
var $session_key = null;
var $temp_dir = null;
var $width = 100;
var $height = 50;
var $jpg_quality = 70;
function captcha( $session_key, $temp_dir ){
$this->session_key = $session_key;
$this->temp_dir = $temp_dir;
}
function _generate_image( $location, $char_seq ){
$num_chars = strlen($char_seq);
$img = imagecreatetruecolor( $this->width, $this->height );
imagealphablending($img, 1);
$weiss = ImageColorAllocate($img,255,255,255);
ImageFilledRectangle($img, 0,0, $this->width, $this->height, $weiss);
$start_x = round($this->width / $num_chars);
$max_font_size = $start_x-5;
$start_x = round(0.5*$start_x);
$max_x_ofs = round($max_font_size*0.9);
for ($i=0;$i<=$num_chars;$i++){
$r = round( rand( 10, 127 ) );
$g = round( rand( 10, 127 ) );
$b = round( rand( 10, 127 ) );
$y_pos = ($this->height/2)+round( rand( 5, 20 ) );
$fontsize = round( rand( 18, $max_font_size) );
$color = imagecolorallocate( $img, $r, $g, $b);
$presign = 0;
$angle = rand( 2, 20 );
if ($presign==true) $angle = -1*$angle;
ImageTTFText( $img, $fontsize, $angle, $start_x+$i*$max_x_ofs, $y_pos, $color, dirname(__file__).'/default.ttf', substr($char_seq,$i,1) );
}
imagejpeg( $img, $location, $this->jpg_quality );
flush();
imagedestroy( $img );
return true;
}
function get_pic( $num_chars=8 ){
$alphabet = array(
'A','B','C','D','E','F','G','H','I','J','K','L','M',
'N','O','P','Q','R','S','T','U','W','X','Y','Z');
$max = sizeof( $alphabet );
$captcha_str = '';
for ($i=1;$i<=$num_chars;$i++) // from 1..$num_chars
{
$chosen = rand( 1, $max );
$captcha_str .= $alphabet[$chosen-1];
}
if ( $this->_generate_image( $this->temp_dir.'/'.'cap_'.md5( strtolower( $captcha_str )).'.jpg' , $captcha_str ) )
{
$fh = fopen( $this->temp_dir.'/'.'cap_'.$this->session_key.'.txt', "w" );
fputs( $fh, md5( strtolower( $captcha_str ) ) );
return( md5( strtolower( $captcha_str ) ) );
}
else
{
return false;
}}
function verify( $char_seq ){
$fh = fopen( $this->temp_dir.'/'.'cap_'.$this->session_key.'.txt', "r" );
$hash = fgets( $fh );
if (md5(strtolower($char_seq)) == $hash)
return true;
else
return false;
}}
?>


die Registrierungsseite/ anmelden.inc.php:

CODE <b>Anmelden</b><br><br><?php

require_once( 'class.captcha.php' );
if (empty($_GET['session_code'])) $session_code = md5(round(rand(0,40000)));
else $session_code=$_GET['session_code'];
$my_captcha = new captcha( $session_code, '__TEMP__/' );
if($_POST[o]=="k" && $my_captcha->verify($_POST['password'])) $cok="ok";

$a_user=htmlspecialchars(stripslashes($_POST[a_user]));
$a_email=htmlspecialchars(stripslashes($_POST[a_email]));
$a_vorname=htmlspecialchars(stripslashes(ucfirst($_POST[a_vorname])));
$a_nachname=htmlspecialchars(stripslashes(ucfirst($_POST[a_nachname])));
$a_plz=htmlspecialchars(stripslashes($_POST[a_plz]));
$a_strasse=htmlspecialchars(stripslashes(ucfirst($_POST[a_strasse])));
$a_ort=htmlspecialchars(stripslashes(ucfirst($_POST[a_ort])));
$a_tag=$_POST[a_tag];
$a_monat=$_POST[a_monat];
$a_jahr=$_POST[a_jahr];
$a_geschlecht=$_POST[a_geschlecht];
$a_agb=$_POST[a_agb];

if($_POST[o]=="k") {

$getbb=mysql_query("SELECT user,email FROM oc_user WHERE user='".$a_user."' OR email='".$a_email."'"); $getb=mysql_fetch_array($getbb);

if(!ereg("([[:alnum:].-]+)(@[[:alnum:].-]+.+)", $a_email)) echo genMsg('cross','Die angegebene E-Mail-Adresse ist ungültig.');
elseif($cok!="ok") echo genMsg('cross','Der Captcha-Code (Spam-Schutz) wird nicht korrekt abgetippt.');
elseif($getb[user]==$a_user) echo genMsg('cross','Der gewünschte Benutzername ist leider bereits vergeben.');
elseif(preg_match('~[^a-zA-Z0-9]~', $a_user)) echo genMsg('cross','Der Benutzername darf nur aus Buchstaben und/oder Zahlen bestehen.');
elseif($getb[email]==$a_email) echo genMsg('cross','Unter dieser E-Mail-Adresse besteht bereits ein Account. <a href=index.php?d=passwort>Passwort vergessen?</a>');
elseif(!is_numeric($a_plz) || strlen($a_plz)>5 || $a_plz=="") echo genMsg('cross','Bitte gib eine gültige Postleitzahl ein.');
elseif($a_vorname=="") echo genMsg('cross','Bitte fülle das Feld \"Vorname\" aus.');
elseif($a_nachname=="") echo genMsg('cross','Bitte fülle das Feld \"Nachname\" aus.');
elseif($a_strasse=="") echo genMsg('cross','Bitte fülle das Feld \"Strasse\" aus.');
elseif($a_ort=="") echo genMsg('cross','Bitte fülle das Feld \"Ort\" aus.');
elseif($a_agb!="ja") echo genMsg('cross','Bitte akzeptiere die Nutzungsbedingungen.');
else { $noform="ok";

srand(date("s")); while($i<8) { $a_pass.=chr((rand()%26)+97); $i++; }
$a_geburtsdatum=mktime(0,0,0,$a_monat,$a_tag,$a_jahr);

mail($a_email,"Anmeldung bei ".$wstitel,"Hallo ".$a_vorname."

Vielen Dank für die Anmeldung und herzlich willkommen bei ".$wstitel.".

Deine Zugangsdaten sind:
Benutzername: ".$a_user."
Passwort: ".$a_pass."

Bitte ändere dein automatisch generiertes Passwort im Login-Bereich und bewahre dieses an einem sicheren Ort auf.

Startseite: ".$wsurl."

Freundliche Grüsse
".$wstitel,"From: $wstitel <$wmemail>");

mysql_query("INSERT INTO oc_user (user,pass,vorname,nachname,strasse,plz,ort,email,datum,online,geschlecht,geburtsdatum) VALUES ('".addslashes($a_user)."','".$a_pass."','".addslashes($a_vorname)."','".addslashes($a_nachname)."','".addslashes($a_strasse)."','".$a_plz."','".addslashes($a_ort)."','".addslashes($a_email)."','".time()."','".time()."','".$a_geschlecht."','".$a_geburtsdatum."')");

echo genMsg('tick','Vielen Dank für die Anmeldung.')."In wenigen Augenblicken erhältst du eine Anmeldebestätigung per E-Mail, in welcher sich deine Zugangsdaten befinden. Anschliessend kannst du dich einloggen und gleich damit beginnen, dein persönliches Profil zu vervollständigen:<br><br><form action=index.php method=post><input type=hidden name=d value=login><table border=0 cellspacing=0 cellpadding=5 align=center><tr><td>Benutzername:</td><td><input type=text name=user style=width:250px></td></tr><tr><td>Passwort:</td><td><input type=password name=pass style=width:250px></td></tr><tr><td colspan=2 align=right><input type=submit value=Login></td></tr></table></form>";

}}

else echo "Vielen Dank, dass du dich bei ".$wstitel." registrieren möchten.<br><br>".genMsg('lightbulb','Bitte nimm dir einen Moment Zeit, das folgende Anmeldeformular vollständig auszufüllen.<br>Die mit <img src=images/locked.gif width=10 height=10 align=absmiddle> gekennzeichneten Daten sind privat und <b>nicht</b> öffentlich in deinem Profil sichtbar.');


if($noform!="ok") {
$pic_url = $my_captcha->get_pic( 4 );
echo "<form action=index.php?session_code=".$session_code." method=post><input type=hidden name=d value=anmelden><input type=hidden name=o value=k><table border=0 cellspacing=0 cellpadding=5 align=center>
<tr><td colspan=2><img src=images/space.gif width=1 height=10></td></tr>
<tr><td>Gewünschter Benutzername:</td><td><input type=text name=a_user style=width:300px maxlength=15 value=\"".$a_user."\"></td></tr>
<tr><td>E-Mail Adresse:</td><td><input type=text name=a_email style=width:300px value=\"".$a_email."\"> <img src=images/locked.gif width=10 height=10 align=absmiddle></td></tr>
<tr><td colspan=2><img src=images/space.gif width=1 height=15></td></tr>
<tr><td>Geschlecht:</td><td><img src=images/female.png width=16 height=16 align=absmiddle><input type=radio name=a_geschlecht checked value=w id=w><label for=w>weiblich</label>     <img src=images/male.png width=16 height=16 align=absmiddle><input type=radio name=a_geschlecht value=m id=m><label for=m>männlich</label></td></tr>
<tr><td>Geburtsdatum:</td><td><select name=a_tag style=width:70px><option>1<option>2<option>3<option>4<option>5<option>6<option>7<option>8<option>9<option>10<option>11<option>12<option>13<option>14<option>15<option>16<option>17<option>18<option>19<option>20<option>21<option>22<option>23<option>24<option>25<option>26<option>27<option>28<option>29<option>30<option>31</select><select name=a_monat style=width:140px><option value=1>Januar<option value=2>Februar<option value=3>März<option value=4>April<option value=5>Mai<option value=6>Juni<option value=7>Juli<option value=8>August<option value=9>September<option value=10>Oktober<option value=11>November<option value=12>Dezember</select><select name=a_jahr style=width:90px>";

$s=date("Y")-$minal;
while($s>1930) { echo "<option"; if($s==1980) echo " selected"; echo ">".$s; $s--; }

echo "</select></td></tr>
<tr><td colspan=2><img src=images/space.gif width=1 height=15></td></tr>
<tr><td>Vorname:</td><td><input type=text name=a_vorname style=width:300px maxlength=50 value=\"".$a_vorname."\"> <img src=images/locked.gif width=10 height=10 align=absmiddle></td></tr>
<tr><td>Nachname:</td><td><input type=text name=a_nachname style=width:300px maxlength=50 value=\"".$a_nachname."\"> <img src=images/locked.gif width=10 height=10 align=absmiddle></td></tr>
<tr><td>Strasse:</td><td><input type=text name=a_strasse style=width:300px value=\"".$a_strasse."\"> <img src=images/locked.gif width=10 height=10 align=absmiddle></td></tr>
<tr><td>PLZ und Ort:</td><td><input type=text name=a_plz style=width:80px maxlength=5 onKeyDown=\"javascript:CheckNumbers(this)\" onKeyUp=\"javascript:CheckNumbers(this)\" value=\"".$a_plz."\"><img src=images/space.gif width=10 height=1><input type=text name=a_ort style=width:210px maxlength=50 value=\"".$a_ort."\"></td></tr>
<tr><td colspan=2><img src=images/space.gif width=1 height=5></td></tr>
<tr><td><img src=\"captcha_image.php?img=".$pic_url."\"></td><td class=footer><b>Spam-Schutz</b><br>Bitte nebenstehende Buchstaben abtippen:<br><input type=text name=password maxlength=4 style=width:100px></td></tr>
<tr><td colspan=2><img src=images/space.gif width=1 height=5></td></tr>
<tr><td colspan=2><input type=checkbox name=a_agb value=ja>Ich akzeptiere die <a href=index.php?d=agb target=_blank>Nutzungsbedingungen</a>.</td></tr>
<tr><td colspan=2 align=right><input type=submit value=Anmelden></td></tr>
</table></form>";
}

?>
 
Zurück
Oben