Hallo, ich baue grade ein Anmelde Formular für meine Besucher...
Meine Vorstellungen waren (sind)
Eingabefeld
- Username
- User Email
- User Passwort
- User Passwort2
Ich habe ein paar überprüfungen im script:
Name, es wird (oder soll) nachgeschaut werden ob der Username schon vergeben ist. Ich mache das mit der BINARY Funktion also ist es egal ob Blubb oder blubb eingegeben wird.
Email, es wird geschaut ob die Email Adresse ein @ Zeichen enthält
Passowort, es wird geschaut ob die eingabe von Passowort und passwort2 die gleichen sind, wenn ja wird geschaut ob das passwort mehr als 5 zeichen hat.
Bei allen Anweisungen (ich benutze die if anweisung) wird im fehlerfall der Variable $error ein wert zugewiesen z.B. name, email oder passwort
zum Schluss noch eine anweisung um zu checken ob $error nicht! '' nichts ist wenn ja denn öffnet er die fehler seite und wenn alles sauber ist denn speichert er die eingaben in der DB.
Extras:
Das passwort wird mit md5() in die DB gespeichert
und bei allen eingaben werden HTML und PHP Tags gelöscht.
ich verwende Smarty!
Nun hab ich leider einen kleinen hänger...
und komme nicht mehr klar
Könntet ihr euch das Script mal anscheuen, und ein kleines Feedback abgeben? Irgendwo ist ein Fehler ich glaube bei der "Ob user schob existiert" abfrage.
Mein Script:
Meine Vorstellungen waren (sind)
Eingabefeld
- Username
- User Email
- User Passwort
- User Passwort2
Ich habe ein paar überprüfungen im script:
Name, es wird (oder soll) nachgeschaut werden ob der Username schon vergeben ist. Ich mache das mit der BINARY Funktion also ist es egal ob Blubb oder blubb eingegeben wird.
Email, es wird geschaut ob die Email Adresse ein @ Zeichen enthält
Passowort, es wird geschaut ob die eingabe von Passowort und passwort2 die gleichen sind, wenn ja wird geschaut ob das passwort mehr als 5 zeichen hat.
Bei allen Anweisungen (ich benutze die if anweisung) wird im fehlerfall der Variable $error ein wert zugewiesen z.B. name, email oder passwort
zum Schluss noch eine anweisung um zu checken ob $error nicht! '' nichts ist wenn ja denn öffnet er die fehler seite und wenn alles sauber ist denn speichert er die eingaben in der DB.
Extras:
Das passwort wird mit md5() in die DB gespeichert
und bei allen eingaben werden HTML und PHP Tags gelöscht.
ich verwende Smarty!
Nun hab ich leider einen kleinen hänger...
und komme nicht mehr klar
Könntet ihr euch das Script mal anscheuen, und ein kleines Feedback abgeben? Irgendwo ist ein Fehler ich glaube bei der "Ob user schob existiert" abfrage.
Mein Script:
PHP-Code:
<?php
require_once( '../include/smarty/Smarty.class.php' );
require_once( '../include/db_connect.php' );
$smarty = new Smarty();
$smarty->template_dir = 'smarty/templates';
$smarty->compile_dir = 'smarty/cache';
/*Speichert Benutzerdaten in Variablen*/
$name = $_POST['name'];
$passwort = $_POST['passwort'];
$passwort2 = $_POST['passwort2'];
$email = $_POST['email'];
/*Entfernt HTML- und PHP-Tags aus einem String*/
$name = strip_tags($name);
$passwort = strip_tags($passwort);
$passwort2 = strip_tags($passwort2);
$email = strip_tags($email);
$sql = "SELECT BINARY name FROM mitglieder WHERE name='$name';";
$name = mysql_query($sql);
if ($name == '') {
$error = 'name';
}
/*Findet das erste Vorkommen eines Strings (hier das at @ zeichen)*/
if (preg_match("/@/i", $email)) {
$email = $email;
}
else
{
$error = 'email';
}
/*Ermitteln der String-Länge*/
if ( $passwort != $passwort2) {
$error = 'passwort';
}
$passwort_laenge = strlen($passwort);
if($passwort_laenge > 5) {
/*Errechnet den MD5-Hash eines Strings*/
$passwort = md5($passwort);
}
if( $error != '' ) {
$smarty->display( 'registrieren_error.tpl' );
}
else
{
$sql = "INSERT INTO mitglieder (
name, email, passwort
) VALUES (
'$name', '$email', '$passwort'
)";
$neuer_user = mysql_query($sql);
$smarty->display( 'registrieren.tpl' );
}
?>
Kommentar