27. juni 2006 - 17:04Der er
3 kommentarer og 1 løsning
tjekke om bruger findes i forvejen..
Hey, jeg har en side hvor man kan oprette sig som brugere der virker, mit problem er at man ikke må kunne oprette samme brugernavne..
jeg har scriptet, men det virker ik.. den kommer ikke med fejlmeddelser eller noget, den submitter bare og lægger brugeren ind i databasen selv om brugernavnet eksisterer i forvejen..
mysql_connect ('localhost', 'root', ''); mysql_select_db ('pizza'); $query="INSERT INTO users VALUES('', '$fornavn', '$efternavn', '$vejnavn', '$bynavn', '$postnr', '$bruger', '$pass', '$telefon', NOW()) "; $result=mysql_query($query); echo "Hej" . $fornavn ."vi har nu indsat dine data i databasen"; exit();
} // submit slut ?> <?php
mysql_connect ('localhost','root', ''); mysql_select_db ('pizza'); $query="SELECT brugernavn FROM users WHERE brugernavn ='$bruger'"; $result=mysql_query($query); if (mysql_num_rows($result)==1){ $message .="Dette brugernavn er allerede i brug, prøv et nyt!"; $bn=FALSE; }else{ $bn=TRUE; }
if (isset ($_POST['Submit'])){ mysql_connect ('localhost', 'root', ''); mysql_select_db ('pizza'); $query="INSERT INTO users VALUES('', '$fornavn', '$efternavn', '$vejnavn', '$bynavn', '$postnr', '$bruger', '$pass', '$telefon', NOW()) "; $result=mysql_query($query); echo "Hej" . $fornavn ."vi har nu indsat dine data i databasen"; exit();
} // submit slut
til:
if (isset ($_POST['Submit'])){
mysql_connect ('localhost', 'root', ''); mysql_select_db ('pizza'); $query="INSERT IGNORE INTO users VALUES('', '$fornavn', '$efternavn', '$vejnavn', '$bynavn', '$postnr', '$bruger', '$pass', '$telefon', NOW()) "; $result=mysql_query($query); if ( mysql_affected_rows() > 0 ) { echo "Hej" . $fornavn ."vi har nu indsat dine data i databasen"; exit(); } else { echo "Brugeren findes i forvejen!"; exit; }
} // submit slut
Bemærk dog at det KUN vil virke, hvis du har en unique/primary constraint på brugernavnet :P
Ellers skal du ændre:
if (isset ($_POST['Submit'])){
mysql_connect ('localhost', 'root', ''); mysql_select_db ('pizza'); $query="INSERT INTO users VALUES('', '$fornavn', '$efternavn', '$vejnavn', '$bynavn', '$postnr', '$bruger', '$pass', '$telefon', NOW()) "; $result=mysql_query($query); echo "Hej" . $fornavn ."vi har nu indsat dine data i databasen"; exit();
} // submit slut ?> <?php
mysql_connect ('localhost','root', ''); mysql_select_db ('pizza'); $query="SELECT brugernavn FROM users WHERE brugernavn ='$bruger'"; $result=mysql_query($query); if (mysql_num_rows($result)==1){ $message .="Dette brugernavn er allerede i brug, prøv et nyt!"; $bn=FALSE; }else{ $bn=TRUE; }
til:
if (isset ($_POST['Submit'])){
mysql_connect ('localhost','root', ''); mysql_select_db ('pizza'); $query="SELECT brugernavn FROM users WHERE brugernavn ='$bruger'"; $result=mysql_query($query); if (mysql_num_rows($result)==1){ $message .="Dette brugernavn er allerede i brug, prøv et nyt!"; $bn=FALSE; }else{ $bn=TRUE; }
if ( $bn ) { mysql_connect ('localhost', 'root', ''); mysql_select_db ('pizza'); $query="INSERT INTO users VALUES('', '$fornavn', '$efternavn', '$vejnavn', '$bynavn', '$postnr', '$bruger', '$pass', '$telefon', NOW()) "; $result=mysql_query($query); echo "Hej" . $fornavn ."vi har nu indsat dine data i databasen"; exit(); } } // submit slut ?> <?php
Den skal selvfølgelig tjekke om navnet eksisterer før den submitter så den er jeg helt med på.. Og jeg var faktisk sikker på det var det da jeg prøvede.. men problemet er detsamme, den lægger den bare ind i databsen uden noget ellers.. jeg ved ikke hvordan man sætter den der primary constrain, eller om jeg kan.. sidder og bruger en wamp server.. har også prøvet at kopiere din ind, og det er desamme.. Irriterende at den ikke bare kan fortæle der er fejl..!!
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.