SQL abfrage in php, ob eintrag vorhanden ist

LiVe

Mitglied
Hallo jung´s ich hoffe ihr könnt mir helfen also ich habe ein Regestrier php script und möchte nun eine abfrage hinein haben um zu prüfen ob der nick schon in der sql datenbak vorhanden ist und einen fehlehr meldung ausgibt " nick ist schon vergeben oder so "
könnt ihr mir da helfen
hier der komplete code :rolleyes: :)

PHP:
	  case 5;
	 	             if(isset($_POST['submit'])) {
                     if(!preg_match('/^\w+$/', trim($_POST['name']))) {
						echo "<p>\n";
                        echo "  <h5 class=\"Stil8\">  Bitte geben sie einen Name aus alphanumerischen Zeichen ein.\n";
                        echo "</p>\n";
                        echo "<p>\n";
                        echo "    <a href=\"index.php?id=5&section=admin&amp;site=self;\">\n";
                        echo "  <h5 class=\"Stil8\">      Zurück zum Formular\n";
                        echo "    </a>\n";
                        echo "</p>\n";
                    } elseif(trim($_POST['email']) == "") {
                        echo "<p>\n";
                        echo " <h5 class=\"Stil8\">    Bitte geben sie eine Emailadresse an.\n";
                        echo "</p>\n";
                        echo "<p>\n";
                        echo "    <a href=\"index.php?section=admin&amp;site=user&amp;action=add&amp;".SID."\">\n";
                        echo "   <h5 class=\"Stil8\">      Zurück zum Formular\n";
                        echo "    </a>\n";
                        echo "</p>\n";
                    } else {
                        $password = substr(md5(microtime()),0,8); // md5 zufalls pw erstellen
                        $sql = "INSERT INTO
                                    user(Name, Email, Password)
                                VALUES
                                    ('".trim($_POST['name'])."',
                                     '".addslashes(trim($_POST['email']))."',
                                     MD5('".$password."'));";
                        $result = mysql_query($sql) OR die(mysql_error());
                        if(isset($_POST['send'])) {   // login an  email schicken
                            $mailbody  = "Zugangsdaten zur Homepage:\n";
                            $mailbody .= "Name: ".trim($_POST['name'])."\n";
                            $mailbody .= "Password: ".$password."\n";
                            $mailbody .= "Bitte loggen sie sich ein und ändern sie das Password.\n";
                            if(mail(trim($_POST['email']), "Zugangsdaten", $mailbody)) {
                                echo "<p>\n";
                                echo "   <h5 class=\"Stil8\">  Account wurde hinzugefügt und die Zugangsdaten wurden zum\n";
                                echo "  <h5 class=\"Stil8\">   Benutzer geschickt.\n";
                                echo "</p>\n";
                                echo "<p>\n";
                                echo "    <a href=\"index.php?id=1\">\n";
                                echo "  <h5 class=\"Stil8\">       Zurück zur Homapge\n";
                                echo "    </a>\n";
                                echo "</p>\n";
                            } else {
                                echo "<p>\n";
                                echo "  <h5 class=\"Stil8\">   Account wurde hinzugefügt, doch es konnte keine Email\n";
                                echo "  <h5 class=\"Stil8\">   verschickt werden.\n";
                                echo "</p>\n";
                                echo "<p>\n";
                                echo " <h5 class=\"Stil8\">    Logindaten <br />\n";
                                echo "   <h5 class=\"Stil8\">  Name: ".trim($_POST['name'])."<br />\n";
                                echo "   <h5 class=\"Stil8\">  Password: ".$password."<br />\n";
                                echo "</p>\n";
                                echo "<p>\n";
                                echo "    <a href=\"index.php?id=1\">\n";
                                echo "     <h5 class=\"Stil8\">     Zurück zur Homapge\n";
                                echo "    </a>\n";
                                echo "</p>\n";
                            }
                        } else {
                            echo "<p>\n";
                            echo "   <h5 class=\"Stil8\">  Account wurde hinzugefügt.\n";
                            echo "</p>\n";
                            echo "<p>\n";
                            echo "  <h5 class=\"Stil8\">   Logindaten <br />\n";
                            echo "  <h5 class=\"Stil8\">   Name: ".trim($_POST['name'])."<br />\n";
                            echo "  <h5 class=\"Stil8\">   Password: ".$password."<br />\n";
                            echo "</p>\n";
                            echo "<p>\n";
                            echo "    <a href=\"index.php?id=1\">\n";
                            echo "   <h5 class=\"Stil8\">      Zurück zur Homapge\n";
                            echo "    </a>\n";
                            echo "</p>\n";
                        }
                    }
                } else {
				    echo "<form ".
                         "action=\"index.php?id=5&section=admin&amp;site=self\" ". 
                        "method=\"post\" ".
                         "class=\"formular\">\n";
                    echo "    <p>\n";
                    echo "    <h5 class=\"Stil8\">     Neuen Benutzer hinzufügen\n";
                    echo "    </p>\n";
                    echo "    <ol>\n";
                    echo "        <li>\n";
                    echo "            <label for=\"name\">Name</label>\n";
                    echo "            <input type=\"text\" name=\"name\" id=\"name\" />\n";
                    echo "        </li>\n";
                    echo "        <li>\n";
                    echo "            <label for=\"email\">Emailadresse</label>\n";
                    echo "            <input type=\"text\" name=\"email\" id=\"email\" />\n";
                    echo "        </li>\n";
                    echo "        <li>\n";
                    echo "            <label for=\"send\">\n";
                    echo "                Zugangsdaten per Email zuschicken lassen\n";
                    echo "            </label>\n";
                    echo "            <input type=\"checkbox\" name=\"send\" id=\"send\" />\n";
                    echo "        </li>\n";
                    echo "        <li>\n";
                    echo "            <input type=\"submit\" name=\"submit\" value=\"Benutzer hinzufügen\" />\n";
                    echo "            <input type=\"reset\" name=\"submit\" value=\"Zurücksetzen\" />\n";
                    echo "            <input type=\"hidden\" name=\"".session_name()."\" ".
                                                            "value=\"".session_id()."\" />\n";
                    echo "        </li>\n";
                    echo "    <ol>\n";
                    echo "</form>\n";
                    echo "<p>\n";
                    echo "    <a href=\"index.php?id=1\">\n";
                    echo "     <h5 class=\"Stil8\">    Zurück zur Hompage\n";
                    echo "    </a>\n";
                    echo "</p>\n";
                }
 	  break 1;
 
PHP:
if(mysql_fetch_array(mysql_query('SELECT name FROM user WHERE name="'.$_POST[name].'";')))
	echo('Dieser Name ist bereits in der Datenbank!');
 
jo danke aber wo muss ich das einfügen ich habe da ein problem mit ?
PHP:
   if(isset($_POST['submit'])) {
					 if(mysql_fetch_array(mysql_query('SELECT name FROM user WHERE name="'.$_POST['name'].'";'))) 
                     echo('Dieser Name ist bereits in der Datenbank!'); 
                     if(!preg_match('/^\w+$/', trim($_POST['name']))) {
						echo "<p>\n";
                        echo "  <h5 class=\"Stil8\">  Bitte geben sie einen Name aus alphanumerischen Zeichen ein.\n";
                        echo "</p>\n";
                        echo "<p>\n";
                        echo "    <a href=\"index.php?id=5&section=admin&amp;site=self;\">\n";
                        echo "  <h5 class=\"Stil8\">      Zurück zum Formular\n";
                        echo "    </a>\n";
                        echo "</p>\n";

da es geht zwar aber er legt trotzdem die nutzer daten an
----------------------------------------------------------------------
Dieser Name ist bereits in der Datenbank!

Account wurde hinzugefügt.


Logindaten

Name: live

Password: 6551ff29
------------------------------------------------------------------------
 
LiVe hat gesagt.:
jo danke aber wo muss ich das einfügen ich habe da ein problem mit ?
PHP:
if(isset($_POST['submit'])) {
if(mysql_fetch_array(mysql_query('SELECT name FROM user WHERE name="'.$_POST['name'].'";'))) 
echo('Dieser Name ist bereits in der Datenbank!'); 
if(!preg_match('/^\w+$/', trim($_POST['name']))) {
echo "<p>\n";
echo " <h5 class=\"Stil8\"> Bitte geben sie einen Name aus alphanumerischen Zeichen ein.\n";
echo "</p>\n";
echo "<p>\n";
echo " <a href=\"index.php?id=5&section=admin&amp;site=self;\">\n";
echo " <h5 class=\"Stil8\"> Zurück zum Formular\n";
echo " </a>\n";
echo "</p>\n";

da es geht zwar aber er legt trotzdem die nutzer daten an

Vielleicht so:

PHP:
if(isset($_POST['submit'])) {
if(mysql_fetch_array(mysql_query('SELECT name FROM user WHERE name="'.$_POST['name'].'";'))){ 
echo('Dieser Name ist bereits in der Datenbank!'); 
exit;
}
if(!preg_match('/^\w+$/', trim($_POST['name']))) {
echo "<p>\n";
echo " <h5 class=\"Stil8\"> Bitte geben sie einen Name aus alphanumerischen Zeichen ein.\n";
echo "</p>\n";
echo "<p>\n";
echo " <a href=\"index.php?id=5&section=admin&amp;site=self;\">\n";
echo " <h5 class=\"Stil8\"> Zurück zum Formular\n";
echo " </a>\n";
echo "</p>\n";
 
setze es einfach ganz an den Anfang und schreibe noch ein return; in die if-Schleife dann wird das Script an dieser Stelle praktisch "beendet"
PHP:
if(mysql_fetch_array(mysql_query('SELECT name FROM user WHERE name="'.$_POST['name'].'";'))) 
{
echo('Dieser Name ist bereits in der Datenbank!'); 
return;
}
 
Naja, du prüfst und trägst im gleichen Schritt den Inhalt in die DB ein.
Dann ist das klar das es nicht funktioniert.
Du könntest zwar
PHP:
if(mysql_fetch_array(mysql_query('SELECT name FROM user WHERE name="'.$_POST['name'].'";')))
OR DIE ('Dieser Name ist bereits in der Datenbank!');
machen, aber dann bricht das skript ab.
Das ist nur im Administrativen Bereichen empfehlenswert.

Ich an deiner Stelle würde erst prüfen
PHP:
if($_POST['submit']) {
/* Prüfungen */
if(mysql_fetch_array(mysql_query('SELECT name FROM user WHERE name="'.$_POST['name'].'";')))
$error .= ('Dieser Name ist bereits in der Datenbank!');
}
Wenn keine Fehler vorhanden sind -> Eintrag
PHP:
if($_POST['submit'] && !$error) {
/* Eintrag in DB uns sonstige Ausgabe und Verarbeitung*/
}
Und falls Fehler auftreten, diese ausgeben:
PHP:
if($error) {
echo $error
}
 

Neue Beiträge

Zurück