Kann Mir Jemand Helfen?
mein Capcha Funktionier Jegend wie nicht
Danke und Freue Weinachten;-)
Capha.php
Index PHP
mein Capcha Funktionier Jegend wie nicht
Danke und Freue Weinachten;-)
Capha.php
PHP:
<?php
session_start();
unset($_SESSION['captcha_spam']);
function make_seed()
{
list($usec, $sec) = explode(' ', microtime());
return (float) $sec + ((float) $usec * 100000);
}
function randomString($len)
{
srand(make_seed());
//Der String $possible enthält alle Zeichen, die verwendet werden sollen
$possible = "ABCDEFGHJKLMNPRSTUVWXYZabcdefghijkmnpqrstuvwxyz23456789";
$str = "";
while (strlen($str) < $len) {
$str.=substr($possible, (rand() % (strlen($possible))), 1);
}
return($str);
}
$text = randomString(5); //Die Zahl bestimmt die Anzahl stellen
$_SESSION['captcha_spam'] = $text;
header('Content-type: image/png');
$img = ImageCreateFromPNG('captcha.PNG'); //Backgroundimage
$color = ImageColorAllocate($img, 0, 0, 0); //Farbe
$ttf = __DIR__ . "/XFILES.TTF"; //Schriftart
$ttfsize = 25; //Schriftgrösse
$angle = rand(0, 5);
$t_x = rand(5, 30);
$t_y = 35;
imagettftext($img, $ttfsize, $angle, $t_x, $t_y, $color, $ttf, $text);
imagepng($img);
imagedestroy($img);
Index PHP
PHP:
$connid = @mysql_connect($MYSQL_HOST, $MYSQL_USER, $MYSQL_PASS) OR die("Error: ".mysql_error());
mysql_select_db($MYSQL_DATA) OR die("Error: ".mysql_error());
session_start();
$captchaSolved = false;
$isPostRequest = false;
if (isset($_POST['sicherheitscode'])) {
$isPostRequest = true;
}
if (isset($_SESSION['captcha_spam'])
&& isset($_POST['sicherheitscode'])
&& $_POST["sicherheitscode"] == $_SESSION['captcha_spam']
) {
unset($_SESSION['captcha_spam']);
$captchaSolved = true;
}
if(isset($_POST['submit']) AND $_POST['submit']=='Registrieren'){
// Fehlerarray anlegen
$errors = array();
// Geburtsdatumsstring erstellen
$datum = "{$_POST['Jahr']}-{$_POST['Monat']}-{$_POST['Tag']}";
// Daten in die Datenbanktabelle einfügen
// hier bastelst du dein SQL-Query, nimmst
// aber $datum statt $_POST['Geburtsdatum']
// Prüfen, ob alle Formularfelder vorhanden sind
if(!isset($_POST['Nickname'],
$_POST['Passwort'],
$_POST['Passwortwiederholung'],
$_POST['Email'],
$_POST['Geschlecht'],
$_POST['Name'],
$_POST['Vorname'],
$_POST['Postleitzahl'],
$_POST['Stadt'],
$_POST['Strasse'],
$_POST['Haus'],
$_POST['ICQ'],
$_POST['MSN']))
// Ein Element im Fehlerarray hinzufügen
$errors[] = "Bitte benutzen Sie das Formular aus dem Registrierungsbereich";
else{
// Prüfung der einzelnen User Felder
// Alle Nicknames und Emailadressen zum Vergleich aus der Datenbank holen
$nicknames = array();
$emails = array();
$sql = "SELECT
Nickname,
Email
FROM
User
";
$result = mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
while($row = mysql_fetch_assoc($result)){
$nicknames[] = $row['Nickname'];
$emails[] = $row['Email'];
}
// Prüft, ob ein Nickname eingegeben wurde
if(trim($_POST['Nickname'])=='')
$errors[]= "Bitte geben Sie einen Nickname ein.";
// Prüft, ob der Nickname mindestens 4 Zeichen enthält
elseif(strlen(trim($_POST['Nickname'])) < 4)
$errors[]= "Ihr Nickname muss mindestens 4 Zeichen lang sein.";
// Prüft, ob der Nickname nur gültige Zeichen enthält
elseif(!preg_match('/^\w+$/', trim($_POST['Nickname'])))
$errors[]= "Benutzen Sie bitte nur alphanumerische Zeichen (Zahlen, Buchstaben und den Unterstrich).";
// Prüft, ob der Nickname bereits vergeben ist
elseif(in_array(trim($_POST['Nickname']), $nicknames))
$errors[]= "Dieser Nickname ist bereits vergeben.";
// Prüft, ob eine Email-Adresse eingegeben wurde
if(trim($_POST['Email'])=='')
$errors[]= "Bitte geben Sie Ihre Email-Adresse ein.";
// Prüft, ob die Email-Adresse gültig ist
elseif(!preg_match('§^[\w\.-]+@[\w\.-]+\.[\w]{2,4}$§', trim($_POST['Email'])))
$errors[]= "Ihre Email Adresse hat eine falsche Syntax.";
// Prüft, ob die Email-Adresse bereits vergeben ist
elseif(in_array(trim($_POST['Email']), $emails))
$errors[]= "Diese Email-Adresse ist bereits vergeben.";
// Prüft, ob ein Passwort eingegeben wurde
if(trim($_POST['Passwort'])=='')
$errors[]= "Bitte geben Sie Ihr Passwort ein.";
// Prüft, ob das Passwort mindestens 5 Zeichen enthält
elseif (strlen(trim($_POST['Passwort'])) < 5)
$errors[]= "Ihr Passwort muss mindestens 5 Zeichen lang sein.";
// Prüft, ob eine Passwortwiederholung eingegeben wurde
if(trim($_POST['Passwortwiederholung'])=='')
$errors[]= "Bitte wiederholen Sie Ihr Passwort.";
// Prüft, ob das Passwort und die Passwortwiederholung übereinstimmen
elseif (trim($_POST['Passwort']) != trim($_POST['Passwortwiederholung']))
$errors[]= "Ihre Passwortwiederholung war nicht korrekt.";
// Prüft, ob ein Geschlecht eingegeben wurde
if(trim($_POST['Geschlecht'])=='')
$errors[]= "Bitte geben Sie Ihr Geschlecht ein.";
// Prüft, ob ein Name eingegeben wurde
if(trim($_POST['Name'])=='')
$errors[]= "Bitte geben Sie Ihr Name ein.";
// Prüft, ob der Name mindestens 2 Zeichen enthält
elseif(strlen(trim($_POST['Name'])) < 2)
$errors[]= "Ihr Name muss mindestens 2 Zeichen lang sein.";
// Prüft, ob der Name nur gültige Zeichen enthält
elseif(!preg_match('/^\w+$/', trim($_POST['Name'])))
$errors[]= "Benutzen Sie bitte nur alphanumerische Zeichen (Zahlen, Buchstaben und den Unterstrich).";
// Prüft, ob ein Vorname eingegeben wurde
if(trim($_POST['Vorname'])=='')
$errors[]= "Bitte geben Sie Ihr Vorname ein.";
// Prüft, ob der Vorname mindestens 3 Zeichen enthält
elseif(strlen(trim($_POST['Vorname'])) < 3)
$errors[]= "Ihr Vorname muss mindestens 3 Zeichen lang sein.";
// Prüft, ob der Vorname nur gültige Zeichen enthält
elseif(!preg_match('/^\w+$/', trim($_POST['Vorname'])))
$errors[]= "Benutzen Sie bitte nur alphanumerische Zeichen (Zahlen, Buchstaben und den Unterstrich).";
if(trim($_POST['Postleitzahl'])=='')
$errors[]= "Bitte geben Sie Ihr Postleitzahl ein.";
// Prüft, ob der Postleitzahl mindestens 1 Zeichen enthält
elseif(strlen(trim($_POST['Postleitzahl'])) < 1)
$errors[]= "Ihr Postleitzahl muss mindestens 1 Zeichen lang sein.Lander Ohne Postleizahl Geben sie Einfach 0";
if(trim($_POST['Stadt'])=='')
$errors[]= "Bitte geben Sie Ihr Stadt ein.";
// Prüft, ob der Stadt mindestens 4 Zeichen enthält
elseif(strlen(trim($_POST['Stadt'])) < 4)
$errors[]= "Bitte Geben Sie ihere Stadt ein.";
// Prüft, ob ein Strasse eingegeben wurde
if(trim($_POST['Strasse'])=='')
$errors[]= "Bitte geben Sie Ihr Strasse ein.";
// Prüft, ob ein Haus eingegeben wurde
if(trim($_POST['Haus'])=='')
$errors[]= "Bitte geben Sie Ihr Hausnummer ein.";
// Prüft, ob der Stadt mindestens 3 Zeichen enthält
elseif(strlen(trim($_POST['Haus'])) < 1)
$errors[]= "Bitte Geben Sie ihere Haus ein.";
if(trim($_POST['AGB'])=='')
$errors[]= " Sie haben leider vergessen ABG zubestätigen.";
if (!$captchaSolved) :
if ($isPostRequest) :
$errors[]= "Captcha falsch eingegeben!";
}
// Prüft, ob Fehler aufgetreten sind
if(count($errors)){
echo "Ihr Account konnte nicht erstellt werden.<br>\n".
"<br>\n";
foreach($errors as $error)
echo $error."<br>\n";
echo "<br>\n".
"Zurück zum <a href=\"".$_SERVER['PHP_SELF']."\">Registrierungsformular</a>\n";
}
else{
// Daten in die Datenbanktabelle einfügen
$sql = "INSERT INTO `User`
(Nickname,
Email,
Passwort,
Registrierungsdatum,
Name,
Geschlecht,
Vorname,
Geburtsdatum,
Postleitzahl,
Stadt,
Strasse,
Haus,
ICQ,
MSN
)
VALUES
('".mysql_real_escape_string(trim($_POST['Nickname']))."',
'".mysql_real_escape_string(trim($_POST['Email']))."',
'".md5(trim($_POST['Passwort']))."',
CURDATE(),
'".mysql_real_escape_string(trim($_POST['Name']))."',
'".mysql_real_escape_string(trim($_POST['Geschlecht']))."',
'".mysql_real_escape_string(trim($_POST['Vorname']))."',
'".mysql_real_escape_string($datum)."',
'".mysql_real_escape_string(trim($_POST['Postleitzahl']))."',
'".mysql_real_escape_string(trim($_POST['Stadt']))."',
'".mysql_real_escape_string(trim($_POST['Strasse']))."',
'".mysql_real_escape_string(trim($_POST['Haus']))."',
'".mysql_real_escape_string(trim($_POST['ICQ']))."',
'".mysql_real_escape_string(trim($_POST['MSN']))."'
)
";
mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
echo "Vielen Dank!\n<br>".
"Ihr Accout wurde erfolgreich erstellt.\n<br>".
"Sie können sich nun mit Ihren Daten einloggen.\n<br>".
"<a href=\"login.php\">Zum Login</a>\n";
}
}
else {
$Monatsnamen = array(
1 => 'Januar',
2 => 'Februar',
3 => 'März',
4 => 'April',
5 => 'Mai',
6 => 'Juni',
7 => 'Juli',
8 => 'August',
9 => 'September',
10 => 'Oktober',
11 => 'November',
12 => 'Dezember'
);
$tage = '';
for($i = 1; $i <= 31; $i++){
$tage .= "<option value=\"$i\">$i</option>";
}
$monate = '';
foreach($Monatsnamen as $m){
$monate .= "<option value=\"$m\">$m</option>";
}
$jahre = '';
for($i = 2006; $i >= 1900; $i--){
$jahre .= "<option value=\"$i\">$i</option>";
}
echo(<<< EOT
<form name="Registrierung" action="{$_SERVER['PHP_SELF']}" method="post" accept-charset="ISO-8859-1">
<table border="0">
<tr>
<th><h5>USER Daten</h5></th>
</tr>
<tr>
<td><span style="font-weight:bold;" title="min.4 max.32 Nur Zahlen, Buchstaben und Unterstrich">Nickname:</span></td>
<td><input type="text" name="Nickname" maxlength="32" /></td>
</tr>
<tr>
<td><span style="font-weight:bold;" title="min.6">Passwort: </span></td>
<td><input type="password" name="Passwort" /></td>
</tr>
<tr>
<td><span style="font-weight:bold;" title="min.6">Passwort wiederholen: </span></td>
<td><input type="password" name="Passwortwiederholung" /></td>
</tr>
<tr>
<td><span style="font-weight:bold;" title="Ihre.Adresse@Ihr-Anbieter.de">Email-Adresse: </span></td>
<td><input type="text" name="Email" maxlength="70" /></td>
</span>
</tr>
<tr>
<th><h5>Personliche Daten</h5></th>
</tr>
<tr>
<td><span style="font-weight:bold;">Geschlecht: </span></td>
<td><input type="radio" name="Geschlecht" value="0"> Mannlich</td>
<td><input type="radio" name="Geschlecht" value="1"> Weiblich</td>
</tr>
<tr>
<td><span style="font-weight:bold;" title="min.2 nmax.32 Nur Zahlen, Buchstaben und Unterstrich">Name:</span></td>
<td><input type="text" name="Name" maxlength="32" /></td>
</tr>
<tr>
<td><span style="font-weight:bold;" title="min.3 nmax.32 Nur Zahlen Buchstaben und Unterstrich">Vorname:</span></td>
<td><input type="text" name="Vorname" maxlength="32" /></td>
</tr>
<tr>
<td><span style="font-weight:bold;">Geburtsdatum</span></td>
<td>
<select name="Tag">
<option value="0">Tag</option>
$tage
</select>
<select name="Monat">
<option value="0">Monat</option>
$monate
</select>
<select name="Jahr">
<option value="0">Jahr</option>
$jahre
</select>
</td>
</tr>
<td><span style="font-weight:bold;" title="min.1 nmax.32 Nur Zahlen, Buchstaben und Unterstrich">Postleitzahl:</span></td>
<td><input type="text" name="Postleitzahl" maxlength="70" /></td>
</tr>
<tr>
<td><span style="font-weight:bold;" title="min.4 max.32 Nur Zahlen, Buchstaben und Unterstrich">Stadt:</span></td>
<td><input type="text" name="Stadt" maxlength="70" /></td>
</tr>
<tr>
<td><span style="font-weight:bold;" title="min.1 max.32 Nur Zahlen, Buchstaben und Unterstrich">Strasse:</span></td>
<td><input type="text" name="Strasse" maxlength="70" /></td>
</tr>
<tr>
<td><span style="font-weight:bold;" title="min.1 max.32 Nur Zahlen, Buchstaben und Unterstrich">Haus:</span></td>
<td><input type="text" name="Haus" size=2 maxlength="10" />
</tr>
<tr>
<th><h5>Freiwillige angaben</h5></th>
</tr>
<tr>
<td><span style="font-weight:bold;">ICQ:</span></td>
<td><input type="text" name="ICQ" maxlength="20" /></td>
</tr>
<tr>
<td><span style="font-weight:bold;">MSN:</span></td>
<td><input type="text" name="MSN" maxlength="70" /></td>
</tr>
</table>
<br/>
<input type="checkbox" name="AGB" value="1" />
<td><span style="font-weight:bold;">Ich habe die <a href="abg.php">AGB</a>gelesen und akzeptiere sie.:</span></td>
<br/>
<p>
<img src="captcha/captcha.php" border="0" title="Sicherheitscode" />
</p>
<p>
<input type="text" name="sicherheitscode" size="5" />
</p>
<input type="submit" name="submit" value="Registrieren">
<input type="reset" value="Zurücksetzen">
</form>
EOT
);
}
?>