Also ich habe ein eigenständiges Captcha Script gefunden und möchte das nun in meinem User-Login-System einbauen, allerding hab ich einige Schwierigkeiten da
dieser eine Sessionverwaltung beinhaltet und das Captcha über die Session Id funzt
Falles es jemand kennt es baut auf dem JPMasters77 LoginScript auf
Sorry schonmal wegen dem vielen Code ich versuch wegzulassen was nicht relevant ist
hier erstmal die einzelnen Captcha Files:
config.php
/***************************************************************************
***************************************************************************/
$empfaenger = "deine@email.de"; // Emailadresse hier eintragen
$imagettftext = "1"; // Alternative Grafik-Zeichenfunktion nutzen? (bei fehlerhafter Darstellung
// oder fehlendem Truetype-support) 1=nein, 2=ja
$Welleneffekt = "2"; // Welleneffekt nutzen? 1=nein, 2=ja
$Schrift = "1"; // Shriftart wählen (1, 2, 3)
$Textgroesse = "32"; // Textgrösse
$Texthoehe = "47"; // Texthöhe
$bg1 = "captcha_files/background1.png"; // Hintergrund 1 laden
$bg2 = "captcha_files/background2.png"; // Hintergrund 2 laden
$ov1 = "captcha_files/overlay1.png"; // Overlay 1 laden
$ov2 = "captcha_files/overlay2.png"; // Overlay 2 laden
Das Eingabeformular kontakt.php
/***************************************************************************
***************************************************************************/
// Header
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Datum aus Vergangenheit
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
// immer geändert
header("Cache-Control: no-store, no-cache, must-revalidate"); // HTTP/1.1
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache"); // HTTP/1.0
// Alle Fehler und Notices anzeigen
error_reporting(E_ALL);
session_start();
$CAPTCHA_TempString="";
// Zufallsfunktion für Zahlen und Buchstaben
function GetRandomChar() {
// Zufallszahl generieren
mt_srand((double)microtime()*1000000);
$CAPTCHA_RandVal = mt_rand(1,2);
// Buchstabensalat generieren jeh nachdem ob Randval 1 oder 2 ist
switch ($CAPTCHA_RandVal) {
case 1:
// Zahlen 0-9
$CAPTCHA_RandVal = mt_rand(48, 57);
break;
case 2:
// Grosse Buchstaben
$CAPTCHA_RandVal = mt_rand(65, 90);
break;
}
// Zufallscode ausgeben
return chr($CAPTCHA_RandVal);
}
// Zufallscode x-stellig ausgeben
for ($i = 1; $i <= 6; $i++) {
$CAPTCHA_TempString .= GetRandomChar();
}
// Text in Sessionvariable speichern
if (isset($CAPTCHA_TempString)) {
$_SESSION["CAPTCHA_RndText"] = str_replace('I','E',str_replace('0','3',str_replace('1','S',str_replace('B','F',str_replace('O','P',str_replace('4','A',str_replace('D','K',$CAPTCHA_TempString)))))));
} else {
die("Zufallscode konnte nicht generiert werden!");
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta http-equiv="language" content="de" />
<title>Kontaktformular</title>
</head>
<body>
<div style="border: 1px #000 solid; width: 350px; padding: 5px;">
<h3>Kontaktformular</h3>
<form method="post" action="kontakt_ausw.php" name="kontakt">
<table>
<tr><td><p>Name: </p></td><td><p><input name="name" size="34" type="text" <?php if (isset($_SESSION['name'])) { echo 'value="' . $_SESSION['name'] . '"'; }?>/></p></td></tr>
<tr><td><p>Email: </p></td><td><p><input name="email" size="34" type="text" <?php if (isset($_SESSION['email'])) { echo 'value="' . $_SESSION['email'] . '"'; }?>/></p></td></tr>
<tr><td><p>Betreff: </p></td><td><p><input name="betreff" size="34" type="text" <?php if (isset($_SESSION['betreff'])) { echo 'value="' . $_SESSION['betreff'] . '"'; }?>/></p></td></tr>
<tr><td><p>Nachricht: </p></td><td><p><textarea name="nachricht" rows="3" cols="26"><?php if (isset($_SESSION['nachricht'])) { echo $_SESSION['nachricht'] ; }?></textarea></p></td></tr>
<tr><td> </td><td><img border="0" src="captcha_img.php?PHPSESSID=<?php echo session_id();?>&ver=<?php echo time();?>" alt="" /></td></tr>
<tr><td><p>Code: </p></td><td><p><input maxlength="6" name="txtCode" size="34" type="text" /></p></td></tr>
<tr><td> </td><td><p><input class="button" type="submit" name="eintrag" value="eintragen" /> <input class="button" type="reset" name="reset" value="löschen" /></p></td></tr>
</table>
</div>
</form>
</body>
</html>