Doppeltes Anmelden verbieten

PHPBenny

Grünschnabel
Hallo ich bins schon wieder.

Wie kann ich verhindern das sich User doppelt registrieren? Also das es einen benutzernamen nicht 2 mal gibt. Denn soweit ich das bis jetzt gesehen habe(und getestet) ist das möglich. Nur das kommt bei einem Login Script ja ziemlich blöde;)
Die Datensätze sind in eine Tabelle geschrieben und sollen natürlich auch dort eingetragen werden;) Wie ich ne Fehlermeldung hinbekomme weiss ich..nur ich will ja nicht jeden Benutzernamen als if anweisung schreiben...
Naja thx schonmal!
 
script

hier ist ein auszug aus meinem script...
musst du nur noch anpassen, also datenbank usw....
PHP:
<?php
$sql = "SELECT * FROM wego_members "; 
$sql.= "WHERE user_nick = '$user_nick'"; 
$result = mysql_query($sql); 

$pwd = md5($user_pwd);


//   ermitteln, wieviele DS es dazu ()gibt 
$count = mysql_num_rows($result); 
      if($count == 1)    
         {  
		 ?>
		   <meta http-equiv="refresh" content="2; URL=<?php echo $_SERVER['HTTP_REFERER']; ?>">
		 <?php
            echo '<center><span class=error_text>Dieser Name ist schon vorhanden, bitte verwenden Sie einen anderen Benutzernamen!</span></center>'; 
         } 
      else 
         { 
            $sql = "INSERT INTO wego_members "; 
            $sql.= "(user_nick, user_pwd) "; 
            $sql.= "VALUES('$user_nick', '$pwd')"; 
            $result = mysql_query($sql); 
			
			echo "<meta http-equiv=\"refresh\" content=\"2;URL=main2.php\">";
            echo '<center><span class=true_text>Danke für die Registrierung, Sie können sich nun mit Ihren Logindaten einloggen.<br></span></center>'; 
			
         } 
?>
 
Zuletzt bearbeitet:
Ja klar;)
So simpel da hätt ich auch selbst drauf komemn können:)
Thx an dich(und gleich deinen ersten Beitrag erwischt hehe)
 
danke für dein danke :) ..
jo, ich dachte auch zuerst... , wie mach ich dass denn jetzt?

Is aber wirklich ziemlich simple....dabei schreib ich php erst seit letzten samstag.

kannst ja mal ne page angucken, die ich grade mache...

http://rg.newmediacontrol.de/wego

naja, ich geh penne, muss morgen(heute) zur schule..
 
Also ich hab das jetzt mal ausprobiert aber bei mir wird weder geprüft ob man die AGBs anerkannt hat noch obs den Benutzer schon gibt. :(
Ich weiss ich soll keinen Zeilenlangen Quelltext kopieren aber in diesem Flal muss es einfach sein:) Ich sitze nun seit 3 Stunden hier und suche den Fehler, finde aber nichts:(
Vielleicht findet ihr ja was...Thx schonmal!
PHP:
if ($gelesen==''){
$page= "Sie müssen die Regeln anerkennen.";
}


$verspass = md5($Kennwort);

$connection_db = mysql_connect ("localhost", "root", "");

if (!mysql_select_db ("bbbr", $connection_db))
{
   die ("Keine Verbindung zur DB möglich, wenden sie sich bitte umgehend an <a href=mailto:dakilla3@freenet.de>Bremer19</a>!");
}

$pruef = "SELECT FROM benutzerdaten WHERE Nickname='$Nickname'";
$result = mysql_query($pruef);

$count = mysql_num_rows($result);
	if ($count == 1)
{
$page = "Dieser Benutzername existiert bereits. Bitte wählen sie einen anderen.";
}
else
{

$sql = "INSERT INTO benutzerdaten (Nickname, Kennwort, Email, Rang) VALUES ('$Nickname', '$verspass', '$Email', '$Rang') ";

mysql_query($sql);

//und schauen ob alles glatt gegangen ist


if (mysql_affected_rows ($connection_db) > 0)
{

$page= 'Benutzer wurde erfolgreich eingetragen.<br>';
}

else
{
$page = 'Fehler beim hinzufügen des Benutzers.<br>';
}
}
EDIT: Der Benutzer wird übrigens erfolgreich angelegt...als würde er alle andren Abfragen einfach umgehen!
 
Zuletzt bearbeitet:
Wie sieht denn dein forumlar aus?

und versuch mal
PHP:
if ($gelesen = "") {  // ich weiß nicht ob das was bringt, aber versuchen 

oder

(!isset($gelesen)) { //weis jetzt nicht genau, ob mit oder ohne !
  Dein inhalt
} else {
Dein Inhalt
}

Ich glaube isset prüft, ob diese Variable vorhanden ist und !isset ob sie einen Wert hat. Musst mal ausprobieren.

und mach mal das ! bei dem einen mysql befehl weg

if (!mysql_select_db ("bbbr", $connection_db))
oder erklär mir mal was das ! da bedeutet, weiß ich nämlich nicht. :)

Gruß rengos
 
Zuletzt bearbeitet:
Bleibt leider immer das selbe:(
PHP:
$page = "

<p align=center>Bitte geben Sie hier ihre Daten ein welche zur vollständigen Registration notwendig sind.<br>
Ihre Daten werden natürlich vertraulich behandelt. Sie erhalten nach der Registration eine Email mit ihren Benutzerdaten.
Sollten Sie sich als Clanmember registrieren müssen Sie auf die Freischaltung durch einen Leader warten.
<form method='post' action=$PHP_SELF?page=registrieren2>

Benutzername: <input type=text name='Nickname' maxlenght=15><br>

Passwort: <input type=text name=Kennwort maxlenght=15><br>

Email: <input type=text name=Email maxlenght=30><br>

<p align=left>Nutzung von:<br> <input type=radio name=Rang>Kompletter Inhalt der Homepage(nur für Clanmember)
				<br><input type=radio name=Rang>Downloads und Forum(nur für nicht Clanmember)
				<br><br>
				<input type=checkbox name=gelesen>Ich habe die <a href=index.php?page=reg_regeln>Regeln</a> zur Nutzung dieses Angebotes gelesen
und erkläre &nbsp;&nbsp;&nbsp;&nbsp; mich damit einverstanden.
<br>

<input type=submit value='Regsitrieren'>

     ";

Das ist mein gesamtes Formular welches auch funktioniert insofern das wenn ich etwas eintrage. Dann schreibt er alles ohne anstand in die DB....Aber selbst wenn ich alle Felder leerlasse schreibt er ne neue Zeile in die DB:(

EDIT: Du mienst das ausrufezeichen ind er Fehlermeldung? Das störte bisher nicht. Aber auch wnen ichs weglasse habe ich das selbe Problem:(
 
also zumindestesn habe ich schonmal den fehler wegen dem $gelesen gefunden.

<input type=checkbox name=gelesen>Ich habe die <a href=index.php?page=reg_regeln>Regeln</a>

da hast du zwar einen namen vergeben, aber bei checkboxen und bei radiobuttons ist das ein bischen anders.
du musst noch den befehl value setzten

PHP:
<input type="checkbox" name="gelesen" value="true">Ich habe die <a href=index.php?page=reg_regeln>Regeln</a>

anstatt true kannst du da jeden beliebigen wert reinschreiben,
In diesem Fall wird die value "true" als $gelesen, oder auch $_POST["gelesen"]
bewertet, probier das mal.

aber bei dem rest weis ich auch nicht wirklich, ich guck nochmal ein bischen.
aber vielleicht schreibt ja schon früher einer.
ansonsten zerleg den code doch erstmal, also erstmal mit einer if anweisung anfangen, wenn das geht dann nimm die nächste mit rein.
so würde ich das noch machen.

rengos
 
Ich hab noch ein Verbesserungsvorschlag.

setzt die ganzen if an weisungen mal in die else anweisung der $gelesen abfrage, da sonst die benuzer immer in die datenbank eingetragen werden, auch wenn sie die $gelesen nicht akzeptiert haben.

und das ist ja nicht der sinn der sache :)
 
Das ganze wuerde aber auch etwas kuerzer und wesentlich einfacher funktionieren, indem man gewisse Felder einfach 'UNIQUE' setzt und somit waere ein doppelter Eintrag mit zb dem gleichen Loginnamen etc 'unmöglich' ..

aber das nur so am spaeten Freitag Abend ;) .... natuerlich waere Rengos variante ebenfalls in Ordnung, nur finde ich es ein wenig umstaendlich, oder hab ich irgendwas ueberlesen? .. mhh.. :)
 

Neue Beiträge

Zurück