Ich würde ein UNIQUE/PRIMARY KEY-Setting und INSERT IGNORE nutzen und die Rückgabe von mysql_query auswerten.
Ankündigung
Einklappen
Keine Ankündigung bisher.
[Erledigt] Wann CASTE ich?
Einklappen
Neue Werbung 2019
Einklappen
X
-
[COLOR="#F5F5FF"]--[/COLOR]
[COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
„Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
[URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
[COLOR="#F5F5FF"]
--[/COLOR]
-
Zitat von Jens P. Beitrag anzeigen1. E-Mail + Nickname auf UNIQUE setzen
Du willst Benutzer mit gleichem Nick erlauben, sofern sie eine andere E-Mail angeben? Sicher?[I]Es ist schon alles gesagt! Nur noch nicht von allen! (Karl Valentin)[/I]
[I]Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe)[/I]
Kommentar
-
1. E-Mail + Nickname auf UNIQUE setzen[COLOR="#F5F5FF"]--[/COLOR]
[COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
„Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
[URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
[COLOR="#F5F5FF"]
--[/COLOR]
Kommentar
-
Jens P.
Will beides nur 1 mal erlauben!
Wie soll ich das sonst machen? Würde beim erstellen der Datenbank einfach beides mal in der Auswahl Unique auswählen. Richtig?
Kommentar
-
Jens P.
PHP-Code:$sql = "CREATE TABLE `fantasydb`.`db_users` (`ID` INT(11) NOT NULL AUTO_INCREMENT, `NickName` VARCHAR(255) NOT NULL, `EMail` VARCHAR(255) NOT NULL, `Passwort` VARCHAR(255) NOT NULL, `Aktiv` VARCHAR(255) NOT NULL, `Registriert` DATE NOT NULL, PRIMARY KEY (`ID`), UNIQUE (`ID`, `NickName`, `EMail`)) ENGINE = MyISAM;";
Kommentar
-
Jens P.
-
Jens P.
Ich raffs nicht aber okay. Danke.
CREATE TABLE `fantasydb`.`db_users` (
`ID` INT( 11 ) NOT NULL AUTO_INCREMENT ,
`NickName` VARCHAR( 255 ) NOT NULL ,
`EMail` VARCHAR( 255 ) NOT NULL ,
`Passwort` VARCHAR( 255 ) NOT NULL ,
`RegDatum` DATE NOT NULL ,
`Aktiv` INT( 1 ) NOT NULL ,
PRIMARY KEY ( `ID` ) ,
UNIQUE INDEX(`NickName`) ,
UNIQUE INDEX(`EMail`)
) ENGINE = MYISAM ;
Kommentar
-
Jens P.
Okay.
PHP-Code:<?php
/**
* @author jensprangenberg
* @info
* Hauptklasse "Account" welche alle Useraktivitäten steurt
*/
class Account {
public function SaveRegister($inputNick, $inputPwd, $inputEmail) {
if(!empty($inputNick) && !empty($inputPwd) && !empty($inputEmail))
{
//Verbindung herstellen
$mysqli = new mysqli("localhost", "root", "root", "fantasydb");
$mysqli->query("INSERT INTO db_users (`NickName`, `EMail`, `Passwort`, `Aktiv`)
VALUES ('".$inputNick."' , '".$inputEmail."' , '".$inputPwd."' , '0')");
//Ausgabe an den User
echo "Erfolgreich registriert!";
}
else
{
//Ausgabe an den User das ein Fehler aufgetreten ist
echo "Fehler bei der Registrierung!";
}
}
}
?>
PHP-Code:OR die(mysql_error())
Was muss ich tun?
Kommentar
-
Zitat von Jens P. Beitrag anzeigenWenn nun in die Datenbank eingetragen wird, und er dass nicht darf wegen dem Unique kommt kein Mysql Fehler.. Wieso?
Wo du das nachgenannte platziert hast, und ob diese Platzierung evtl. falsch ist, ist nicht zu erkennen.
Edit: Für die Verwendung des erwähnten IGNORE sehe ich hier keinen Grund.[SIZE="1"]RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?[/SIZE]
Kommentar
-
Jens P.
PHP-Code:<?php
/**
* @author jensprangenberg
* @info
* Hauptklasse "Account" welche alle Useraktivitäten steurt
*/
class Account {
public function SaveRegister($inputNick, $inputPwd, $inputEmail) {
/*
* Überprüft ob die Inputs korrekt/gefüllt worden sind
* Sonst spuckt er ein Fehler aus
*/
if(!empty($inputNick) && !empty($inputPwd) && !empty($inputEmail))
{
/*
* Verbindung zur Datenbank wird hergestellt
*/
$mysqli = new mysqli("localhost", "root", "root", "fantasydb");
/*
* Aktive Query die einen User hinzufügt
*/
$ActivQry = "INSERT INTO db_users (`NickName`, `EMail`, `Passwort`, `Aktiv`) VALUES ('".$inputNick."' , '".$inputEmail."' , '".$inputPwd."' , '0')";
/*
* Überprüft ob Query ausgeführt wurde
*/
if($mysqli->query($ActivQry))
{
echo "Erfolgreich registriert!";
}
else
{
echo "Nickname oder E-Mail Adresse schon vergeben!";
}
}
else
{
echo "Nickname, Passwort oder E-Mail Adresse wurde nicht ausgefüllt!";
}
}
}
?>
Kommentar
-
Zitat von Jens P. Beitrag anzeigenOkay? Oder Fehler drinne? Funktioniert einwandfrei!
Du ziehst aus jedem der absolut zahlreichen potentiellen Fehler, die beim Ausführen einer Query auftreten können, genau den einen Schluss, dass es an schon vorhandenem Nickname/E-Mail-Adresse gelegen haben müsste - das ist natürlich kompletter Unsinn.
Werte aus, welcher Fehler aufgetreten ist - und nur, wenn es dieser eine spezielle Fall ist, dann gebe die entsprechende Meldung aus; sonst eine andere (ggf. unspezifischere).[SIZE="1"]RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?[/SIZE]
Kommentar
Kommentar