Guten Abend
Als erstes sollte ich erwähnen das ich blutiger anfänger in sachen PHP bin und wollte nun auf einer seite ein accountsystem erstellen wo man sich registrieren kann und die Daten in einer Datenbank gespeichert werden.
ich habe jetzt seit einiger zeit hier etwas reingeschaut und gesucht jedoch entweder zuviel infos gefunden oder nicht wirklich das was ich suche.
Deshalb hoffe ich das es ok ist wenn ich nun hier was erstelle
Also ich habe ein normales html formular dann werden Daten per Post weitergesendet an mein php "kontroll" file wo die Felder geprüft werden und dann die Daten in die DB geschrieben werden sollte. jetzt wollte ich aber noch Prüfen ob es den Accountname schon in der DB hat. Damit es keine Doppelten Accountnamen gibt.
hier mal mein script (ist wohl etwas chaotisch und würde sicher ein duzend bessere lösungen geben aber ich habs so mal hingebastelt)
Ich dachte man sollte die abfrage ob der name schon vergeben ist am besten hier reinschreiben:
oder so ähnlich.. wäre froh wenn mir hier jemand helfen könnte
MFG
AHelfer
Als erstes sollte ich erwähnen das ich blutiger anfänger in sachen PHP bin und wollte nun auf einer seite ein accountsystem erstellen wo man sich registrieren kann und die Daten in einer Datenbank gespeichert werden.
ich habe jetzt seit einiger zeit hier etwas reingeschaut und gesucht jedoch entweder zuviel infos gefunden oder nicht wirklich das was ich suche.
Deshalb hoffe ich das es ok ist wenn ich nun hier was erstelle
Also ich habe ein normales html formular dann werden Daten per Post weitergesendet an mein php "kontroll" file wo die Felder geprüft werden und dann die Daten in die DB geschrieben werden sollte. jetzt wollte ich aber noch Prüfen ob es den Accountname schon in der DB hat. Damit es keine Doppelten Accountnamen gibt.
hier mal mein script (ist wohl etwas chaotisch und würde sicher ein duzend bessere lösungen geben aber ich habs so mal hingebastelt)
PHP:
<?php
error_reporting(E_ALL);
//kontrolle ob es mit dem Formular abgeschickt wurde:
if (isset($_POST['abgeschickt'])){
//zur besseren überischt macht man variablen:
$accname=$_POST['accname'];
$pass1=$_POST['pass1'];
$pass2=$_POST['pass2'];
$mail=$_POST['mail'];
//variablen für kontrolle:
$accstat='0';
$pw1stat='0';
$pw2stat='0';
$pw1und2stat='0';
$mailstat='0';
/*
ganz einfach
1 = feld war leer
2 = feld war mit sonderzeichen
3 = alles ok
*/
//-------------------------------------------------
// Zuerst mal die Kontrolle der Daten:
//---
//account-name
if (!$accname){$accstat='1';}
elseif (!ereg('^([[:alnum:]]{4,20})*$', $accname)) {$accstat='2';}
else{$accstat='3';}
//passwort 1 kontrolle
if (!$accname){$pw1stat='1';}
elseif (!ereg('^([[:alnum:]]{4,20})*$', $pass1)) {$pw1stat='2';}
else{$pw1stat='3';}
//passwort 2 kontrolle
if (!$accname){$pw2stat='1';}
elseif (!ereg('^([[:alnum:]]{4,20})*$', $pass2)) {$pw2stat='2';}
else{$pw2stat='3';}
//passwort vergleichen:
if($pass1 == $pass2){$pw1und2stat='1';}
else{
$pw1und2stat='0';
$pw1stat='2';
$pw2stat='2';}
//mail kontrolle
if (!$mail){$mailstat='1';}
elseif (!eregi("^[_\.0-9a-z-]+@([0-9 a-z][0-9a-z-]+\.)+[a-z]{2,6}$", $mail)) {$mailstat='2';}
else{$mailstat='3';}
//vorgabe wenn alle ok ist:
if ($accstat=='3' and $pw1stat=='3'and $pw2stat=='3' and $pw1und2stat=='1' and $mailstat=='3') {
//dann in datenbank schreiben:
$verbindung = mysql_connect('localhost', 'root','')
or die ("Konnte Verbindung zur Datenbank nicht aufbauen.");
mysql_select_db('game',$verbindung);
$sql= "insert into user (accname,pass,mail,date) values('".$accname."','".$pass1."','".$mail."',now())";
mysql_query($sql, $verbindung)
or die (echo "irgendwas war schief");
echo '<h1>Folgende Daten wurden übermittelt und in unserer Datenbank gespeichert.</h1><br />';
echo 'Accountname: '.$accname.'<br /> ' ;
echo 'Passwort: '.$pass1.'<br />';
echo 'Mail: '.$mail.'<br />';
}
//-----------------------------------------------------------
//fals nicht alles richtig ausgefüllt wurde
else{
//Formularstuff:
echo '<form action="accanmeldung-test.php" method="post">';
echo 'Nicht alle Felder wurden korrekt ausgefüllt bitte kontrollieren sie ihre angaben <br />';
//accountnamefeld
if ($accstat=='1'){
echo "<b>Accountname:</b> <input type=\"text\" name=\"accname\"> <font color=\"#ff0000\">Bitte Feld ausfüllen!</font> <br />";}
elseif ($accstat=='2'){
echo '<b>Accountname:</b> <input type="text" name="accname" value="'.$accname.'"> <font color="#ff0000">Bitte nur a-z, A-Z und 0-9 benutzen und min 4 Buchstaben lang!</font> <br />';}
else{echo '<input type="hidden" name="accname" value="'.$accname.'">';}
//passwort 1 und 2 nicht gleich:
if ($pw1und2stat=='0'){
echo 'Die Passwörter stimmen nicht überein bitte gib 2 mal das gleiche an: <br />';
//passwort 1 feld:
if ($pw1stat=='1'){
echo "<b>Passwort:</b> <input type=\"text\" name=\"pass1\"> <font color=\"#ff0000\">Bitte Feld ausfüllen!</font> <br />";}
elseif($pw1stat=='2'){
echo '<b>Passwort:</b> <input type="text" name="pass1" value="'.$pass1.'"> <font color="#ff0000">Bitte nur a-z, A-Z und 0-9 benutzen und min 4 Buchstaben lang!</font> <br />';}
else {echo '<input type="hidden" name="pass1" value="'.$pass1.'">';}
//passwort 2 feld:
if ($pw1stat=='1'){
echo "<b>Passwort:</b> <input type=\"text\" name=\"pass2\"> <font color=\"#ff0000\">Bitte Feld ausfüllen!</font> <br />";}
elseif($pw1stat=='2'){
echo '<b>Passwort:</b> <input type="text" name="pass2" value="'.$pass2.'"> <font color="#ff0000">Bitte nur a-z, A-Z und 0-9 benutzen und min 4 Buchstaben lang!</font> <br />';}
else {echo '<input type="hidden" name="pass2" value="'.$pass2.'">';}
}
//passwort 1 und 2 gleich:
if ($pw1und2stat=='1'){
echo 'Auch wenn die Passwörter identisch sind hat es da noch einen fehler: <br />';
//passwort 1 feld:
if ($pw1stat=='1'){
echo "<b>Passwort:</b> <input type=\"text\" name=\"pass1\"> <font color=\"#ff0000\">Bitte Feld ausfüllen!</font> <br />";}
elseif($pw1stat=='2'){
echo '<b>Passwort:</b> <input type="text" name="pass1" value="'.$pass1.'"> <font color="#ff0000">Bitte nur a-z, A-Z und 0-9 benutzen und min 4 Buchstaben lang!</font> <br />';}
else {echo '<input type="hidden" name="pass1" value="'.$pass1.'">';}
//passwort 2 feld:
if ($pw1stat=='1'){
echo "<b>Passwort:</b> <input type=\"text\" name=\"pass2\"> <font color=\"#ff0000\">Bitte Feld ausfüllen!</font> <br />";}
elseif($pw1stat=='2'){
echo '<b>Passwort:</b> <input type="text" name="pass2" value="'.$pass2.'"> <font color="#ff0000">Bitte nur a-z, A-Z und 0-9 benutzen und min 4 Buchstaben lang!</font> <br />';}
else {echo '<input type="hidden" name="pass2" value="'.$pass2.'">';}
}
//mail feld:
if ($mailstat=='1'){
echo "<b>e-mail:</b> <input type=\"text\" name=\"mail\"> <font color=\"#ff0000\">Bitte Feld ausfüllen!</font> <br />";}
elseif ($mailstat=='2'){
echo '<b>e-mail:</b> <input type="text" name="mail" value="'.$mail.'"> <font color="#ff0000">Bitte neine gültige adresse eingeben.</font> <br />';}
else {echo '<input type="hidden" name="mail" value="'.$mail.'">';}
//Absende button
echo '<input type="submit" value="Abschicken" /><input type="reset" value="Zurücksetzen" />';
echo '<input type="hidden" name="abgeschickt" value="1">';
}
}
//--------------------------------------------------------------------------
else {
echo 'Bitte benutzen Sie das <a href="accanmeldung.htm">Formular</a> um sich anzumelden.'; }
?>
Ich dachte man sollte die abfrage ob der name schon vergeben ist am besten hier reinschreiben:
PHP:
//account-name
if (!$accname){$accstat='1';}
elseif (!ereg('^([[:alnum:]]{4,20})*$', $accname)) {$accstat='2';}
else{
if ( abfrage){ wenn der name schon vorhanden $accstat='4}
else {$accstat='3';}
}
oder so ähnlich.. wäre froh wenn mir hier jemand helfen könnte
MFG
AHelfer