Captcha integrieren
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
array
benutzen
code
datenbank
datum
email
erstellen
fehler
fehlermeldung
formular
geburtsdatum
geschlecht
haus
holen
meldung
postleitzahl
stadt
url
vergleich
vorname
-
Hilf mir Bitte. Wie Kann ich diese PHP
<?php session_start(); if(isset($_SESSION['captcha_spam']) AND $_POST["sicherheitscode"] == $_SESSION['captcha_spam']){ unset($_SESSION['captcha_spam']);
hier Einbauen? Klapt Egen wie bei mir nicht richtig
$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(); 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'] ($_SESSION['captcha_spam']) AND $_POST["sicherheitscode"] == $_SESSION['captcha_spam']){ unset($_SESSION['captcha_spam']); // 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(trim($_POST['sicherheitscode'])=='') $errors[]= " Sie haben sicherheitscode 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']))."' )
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
tshaika schrieb:
Hilf mir Bitte. Wie Kann ich diese PHP
<?php session_start(); if(isset($_SESSION['captcha_spam']) AND $_POST["sicherheitscode"] == $_SESSION['captcha_spam']){ unset($_SESSION['captcha_spam']);
hier Einbauen? Klapt Egen wie bei mir nicht richtig
$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(); 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'] ($_SESSION['captcha_spam']) AND $_POST["sicherheitscode"] == $_SESSION['captcha_spam']){ unset($_SESSION['captcha_spam']); // 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(trim($_POST['sicherheitscode'])=='') $errors[]= " Sie haben sicherheitscode 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']))."' )
Was hast du denn Probiert, und was klappt nicht? also was mir gleich auffällt, ist, dass du ein IF vergessen hast vor deinem (isset($_SESSION... -
ich habe alle Mögliches Probiert Aber Geht nich
Was denn zum Beispiel, und wieso geht's nicht?
Fehlermeldung?
Was mir noch auffällt....Du hast die Klammern nicht geschlossen. "}"
Fehlen in beiden Codeblöcken.
Abgesehen davon....
// Alle Nicknames und Emailadressen zum Vergleich aus der Datenbank holen $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']; }
Wenn Du ALLE angelegten Namen aus einer Datenbank ziehst, nur um sie gegen zu überprüfen, kannst Du auch genauso gut eine Textdatei verwenden....
Nimm lieber:
$sql = "SELECT Nickname, Email FROM User WHERE Nickname = '".mysql_real_escape_string($row['Nickname'])."' AND Email = '".mysql_real_escape_string($row['Email'])."'";
Dann bekommst Du entweder ein Ergebnis zurück (wenn existiert), oder gar keines und musst keine Schleife abarbeiten.
Beitrag zuletzt geändert: 11.12.2012 15:33:10 von adelwoehrer -
adelwoehrer
Danke für Tipp
das hab ich auch ganze Zeit Fehlermeldung
Also soll ich dann weglassen,
wie mach ich am beste noch Fehler Meldung
Beitrag zuletzt geändert: 11.12.2012 16:31:52 von tshaika -
tshaika schrieb:
adelwoehrer
Danke für Tipp
das hab ich auch ganze Zeit Fehlermeldung
Also soll ich dann weglassen,
wie mach ich am beste noch Fehler Meldung
in php mit der Funktion
error_reporting(E_ALL);
das gibt dann ale PHP Fehler aus
Grüße webaffe -
ich Meinte Fehler Meldung für Capcha
das ist noch mal die Adresse Von capcha vieleich hat eine bessere idee
http://www.stoppt-den-spam.info/webmaster/captcha-tutorial/zahlen-cpatcha/einbau-formular.html
Beitrag zuletzt geändert: 12.12.2012 11:00:55 von tshaika -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage