MYSQL checken vor dem schreiben in die Datenbank!
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
abfrage
art
befehl
beschreibung
bestimmen
code
datenbank
datum
eingegeben name
eintragen
email
eventuell jemand
fehler
kleinen befehl
register
shell
tabelle
variablen umwandeln
vorname
vorteil
-
Hallo!
Ich experimentiere gerade ein bische mit PHP und MYSQl rum!
Das Script soll am schluss einen kleinen befehl auf meinem HomeServer ausführen! (läuft testweise darauf) Wie ich diesen befehl ausführe, ist klar, per "exec" unter PHP!
Es ist also ein registrationsscript!
Die daten werden eingegeben (name, vorname Username..usw.) und sollen dann in eine MYSQl datenbank geschrieben werden! (das habe ich schon hinbekommen)
Nun soll aber vor dem ausführen des exec befehls geprüft werden, ob der Username in der MYSQL datenbank schon vorhanden ist! Und genau das ist es, was ich nicht hinbekomme!
Hier erstmal meine scripte:
Datei: input.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>Beschreibung der Seite</title> </head> <body> <form action="reg.php" method="post"> <fieldset> <label>Name: <input type="text" name="name" /></label> <label>Vorname: <input type="text" name="vorname" /></label> <label>email: <input type="text" name="email" /></label> <label>Username: <input type="text" name="username" /></label> <label>Passwort: <input type="text" name="pw" /></label> <input type="submit" name="register" value="Registrieren" /> </fieldset> </form> </body> </html>
Nun hier die reg.php
<?php error_reporting(E_ALL); // Variablen umwandeln, zum speichern //Daten in Datenbank schreiben mysql_connect('localhost', 'mysql_user', 'mysql_password'); mysql_select_db('register'); if(isset($_POST['register'])){ mysql_query('INSERT INTO User (name, vorname , email , username , pw ) VALUES("'.$_POST['name'].'" , "'.$_POST['vorname'].'" ,"'.$_POST['email'].'" , "'.$_POST['username'].'" , "'.$_POST['pw'].'" )') or die ( mysql_error()); mysql_close(); //Hier die Shell-Scripts ausfuehren... ?>
So, das sind meine zwei skripts!
Kann mir eventuell jemand helfen, und mir sagen, wie ich das mache das er bevor er den exec befehl asufüllt, checkt, ob der Username schon in der MYSQl datzenbank gespeichert ist?
Hoffentlich habe ich mich verständlich ausgedrückt!
danke schonmal!
MFG Rick
Beitrag geändert: 22.10.2008 21:00:32 von rick1993 -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Du wirst nicht darum herum kommen, vor dem Eintragen des neuen Usernamens, ein Query an die Datenbank zu schicken, in welchem du nach dem Usernamen suchst. Also irgendwas in der Art
<? $sql="SELECT name, vorname FROM `tabelle` WHERE name='".$_POST['name']."' AND vorname='".$_POST['vorname']."'"; ?>
Wenn du dann zB mit mysql_num_results==0 prüfst, ob deine Abfrage fehlgeschlagen ist (also kein User mit der Vor- und Nachnamenkombination vorhanden ist), kannst du anschließend den neuen Eintrag vornehmen.
Beitrag geändert: 22.10.2008 21:07:12 von tct -
Man könnte natürlich auch Username in der Tabelle als unique key deklarieren. Das hätte den Vorteil, dass man nur eine DB-Abfrage machen muss. Gibt die einen Fehler zurück, ist der Name wohl schon vorhanden (MySQL-Fehlercode prüfen, um bestimmen zu können, welcher Fehler denn nun wirklich geschehen ist).
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage