Tha_Zaynt Skrevet 9. november 2004 Del Skrevet 9. november 2004 Hvordan kan jeg sjekke om et brukernavn er opptatt i en mysql database? Lenke til kommentar
LoS Skrevet 9. november 2004 Del Skrevet 9. november 2004 SELECT * FROM tabell WHERE username = '$username' Lenke til kommentar
Tha_Zaynt Skrevet 9. november 2004 Forfatter Del Skrevet 9. november 2004 hva er galt her da mon tro?; <?php include("config.php"); echo <<< end <form name='reg' method= '$formMethod' action= '$regScript'> <p>Fornavn: <input type='text' name='fornavn' size='30'>* <p>Etternavn: <input type='text' name='etternavn' size='30'>* <p>Alder: <input type='text' name='alder' size='2'>* <p>Telefonnr.: <input type='text' name='tlf' size='30'>* <p>Ønsket brukernavn: <input type='text' name='brukernavn' size='30'>* <p>Ønsket passord: <input type='password' name='passord' size='30'>* <p>Bekreft passord: <input type='password' name='pass' size='30'>* <p>E-mail: <input type='text' name='email' size='30'>* <p>URL: <input type='text' name='url' size='30'> <p><input name='send' type='submit' value='Registrer!'> <input type='reset' value='Reset!'> </form> end; echo '<p>Alle felter merket med * MÅ fylles ut</p>'; if ($_POST['send'] == 'Registrer!'){ if($formMethod == "post") { $fornavn = $_POST['fornavn']; $etternavn = $_POST['etternavn']; $alder = $_POST['alder']; $tlf = $_POST['tlf']; $brukernavn = $_POST['brukernavn']; $passord = $_POST['passord']; $pass = $_POST['pass']; $email = $_POST['email']; $url = $_POST['url']; $dato = date ("d/m/Y, H:i:s"); } $fornavn = trim(addslashes(strtolower($fornavn))); $etternavn = trim(addslashes(strtolower($etternavn))); $alder = trim(addslashes(strtolower($alder))); $tlf = trim(addslashes(strtolower($tlf))); $brukernavn = trim(addslashes(strtolower($brukernavn))); $passord = trim(addslashes(strtolower(md5($passord)))); $pass = trim(addslashes(strtolower(md5($pass)))); $email = trim(addslashes(strtolower($email))); $url = trim(addslashes(strtolower($url))); $uid = md5(uniqid(rand(), true)); if (empty($fornavn) || empty($etternavn) || empty($alder) || empty($tlf) || empty($brukernavn) || empty($passord) || empty($pass) || empty($email)) { echo "<p><b>Et eller flere felt mangler nødvendig informasjon!</b></p>"; } else { mysql_connect($mySQLhost, $mySQLuser, $mySQLpass) or die("Could not connect: " . mysql_error()); mysql_select_db($mySQLdb); $query = ("SELECT * FROM $mySQLtable WHERE brukernavn = '$brukernavn'"); $result = mysql_query($query); $brukernavnsjekk = mysql_fetch_array($result); if($brukernavnsjekk[0] == $brukernavn){ echo"<p>Brukernavnet $brukernavn er opptatt!</p>"; } if (mysql_query("INSERT INTO $mySQLtable (fornavn,etternavn,alder,tlf,brukernavn,passord,email,url,dato,uid) VALUES ('$fornavn','$etternavn','$alder','$tlf','$brukernavn','$passord','$email','$url','$dato','$uid')")) { echo "Du vil nå motta en mail med en link du må trykke på for å fullføre registreringen"; } else { echo "Noe gikk galt, prøv igjen senere". mysql_error(); } } } ?> Lenke til kommentar
LoS Skrevet 9. november 2004 Del Skrevet 9. november 2004 Du har glemt exit; eller å bruke else. Lenke til kommentar
Tha_Zaynt Skrevet 10. november 2004 Forfatter Del Skrevet 10. november 2004 nå ser koden slik ut, men funker fortsatt ikke.. <?php include("config.php"); echo <<< end <form name='reg' method= '$formMethod' action= '$regScript'> <p>Fornavn: <input type='text' name='fornavn' size='30'>* <p>Etternavn: <input type='text' name='etternavn' size='30'>* <p>Alder: <input type='text' name='alder' size='2'>* <p>Telefonnr.: <input type='text' name='tlf' size='30'>* <p>Ønsket brukernavn: <input type='text' name='brukernavn' size='30'>* <p>Ønsket passord: <input type='password' name='passord' size='30'>* <p>Bekreft passord: <input type='password' name='pass' size='30'>* <p>E-mail: <input type='text' name='email' size='30'>* <p>URL: <input type='text' name='url' size='30'> <p><input name='send' type='submit' value='Registrer!'> <input type='reset' value='Reset!'> </form> end; echo '<p>Alle felter merket med * MÅ fylles ut</p>'; if ($_POST['send'] == 'Registrer!'){ if($formMethod == "post") { $fornavn = $_POST['fornavn']; $etternavn = $_POST['etternavn']; $alder = $_POST['alder']; $tlf = $_POST['tlf']; $brukernavn = $_POST['brukernavn']; $passord = $_POST['passord']; $pass = $_POST['pass']; $email = $_POST['email']; $url = $_POST['url']; $dato = date ("d/m/Y, H:i:s"); } $fornavn = trim(addslashes(strtolower($fornavn))); $etternavn = trim(addslashes(strtolower($etternavn))); $alder = trim(addslashes(strtolower($alder))); $tlf = trim(addslashes(strtolower($tlf))); $brukernavn = trim(addslashes(strtolower($brukernavn))); $passord = trim(addslashes(strtolower(md5($passord)))); $pass = trim(addslashes(strtolower(md5($pass)))); $email = trim(addslashes(strtolower($email))); $url = trim(addslashes(strtolower($url))); $uid = md5(uniqid(rand(), true)); if ($passord == $pass){ $passord = $pass; } else{ $passord = "False"; } if (empty($fornavn) || empty($etternavn) || empty($alder) || empty($tlf) || empty($brukernavn) || empty($passord) || empty($pass)) { echo "<p><b>Et eller flere felt mangler nødvendig informasjon!</b></p>"; } elseif (!empty($email) && !ereg("^[^@ ()$#><;%*?&+='\{}æøåÆØÅ]+@[^@ ()$#><;%*?&+='\{}æøåÆØÅ]+\.[^@ ()$#><;*%?&+='\{}æøåÆØÅ\.]+$", $email)) echo "<p><b>ERROR! Feil format på mailadresse!</b></p>"; elseif (is_numeric($tlf)==false) echo "<p>Telefonnr. må skrives i tallformat eks: 72483293</p>"; elseif (is_numeric($alder)==false) echo "<p><b>Alderen må skrives i tallformat!</p></b>"; elseif ($passord == "False") echo "<p><b>Passordene må være like!<b></p>"; elseif ($alder < 12) echo "<p><b>Du må være minst 12 år for å være med på nisselink dataparty</b></p>"; elseif ($alder > 25) echo "<p><b>Nisselink er bare for ungdommer mellom 12-25år.</b></p>"; else { mysql_connect($mySQLhost, $mySQLuser, $mySQLpass) or die("Could not connect: " . mysql_error()); mysql_select_db($mySQLdb); $query = ("SELECT * FROM users WHERE brukernavn = '$brukernavn'"); $result = mysql_query($query); $brukernavnsjekk = mysql_fetch_array($result); if($brukernavnsjekk[0] == $brukernavn) echo"<p>Brukernavnet $brukernavn er opptatt!</p>"; else{ if (mysql_query("INSERT INTO $mySQLtable (fornavn,etternavn,alder,tlf,brukernavn,passord,email,url,dato,uid) VALUES ('$fornavn','$etternavn','$alder','$tlf','$brukernavn','$passord','$email','$url','$dato','$uid')")) { echo "Du vil nå motta en mail med en link du må trykke på for å fullføre registreringen"; } else { echo "Noe gikk galt, prøv igjen senere". mysql_error(); } } } } ?> Lenke til kommentar
LoS Skrevet 10. november 2004 Del Skrevet 10. november 2004 (endret) Er 0 brukernavn kolonnen da? Jeg hadde tippa at det var id eller noe ihvertfall, sjekk hva det står i $brukernavnsjekk[0] ved å skrive den ut. Endret 10. november 2004 av LoS Lenke til kommentar
msolberg Skrevet 10. november 2004 Del Skrevet 10. november 2004 Hei. Kan du ikke bare gjøre sql spørringen litt enklere for deg selv ved å gjøre slik: $query = ("SELECT brukernavn FROM $mySQLtable WHERE brukernavn = '$brukernavn'"); $result = mysql_query($query); $brukernavnsjekk = mysql_fetch_row($result); $harfaattresultat = mysql_num_rows(); if($harfaattresultat > 0){ echo"<p>Brukernavnet $brukernavn er opptatt!</p>"; } bare velg ut 1 verdi, sjekk om du får et resultat, hvis antall rader returnert er større enn 0, så finnes brukernavnet fra før.... Lenke til kommentar
kakkle Skrevet 10. november 2004 Del Skrevet 10. november 2004 $harfaattresultat = mysql_num_rows($result); Også trengs vel egentlig ikke denne linjen: $brukernavnsjekk = mysql_fetch_row($result); /kakkle Lenke til kommentar
Gilbert Skrevet 10. november 2004 Del Skrevet 10. november 2004 har alltid trodd at denne er den beste og ryddigste: mysql_result(mysql_query("SELECT count(*) as count FROM tabell WHERE brukernavn = '".$brukernavn."' LIMIT 1"),0,"count"); Da kan man f.eks. gjøre det slik: if (mysql_result(mysql_query("SELECT count(*) as count FROM tabell WHERE brukernavn = '".$brukernavn."' LIMIT 1"),0,"count") == "1") { echo "Brukernavnet eksisterer"; exit(); } Men vi er vel forskjellige Lenke til kommentar
Tha_Zaynt Skrevet 10. november 2004 Forfatter Del Skrevet 10. november 2004 har alltid trodd at denne er den beste og ryddigste: mysql_result(mysql_query("SELECT count(*) as count FROM tabell WHERE brukernavn = '".$brukernavn."' LIMIT 1"),0,"count"); Da kan man f.eks. gjøre det slik: if (mysql_result(mysql_query("SELECT count(*) as count FROM tabell WHERE brukernavn = '".$brukernavn."' LIMIT 1"),0,"count") == "1") { echo "Brukernavnet eksisterer"; exit(); } Men vi er vel forskjellige brukte denne jeg, fungerte ypperlig! Lenke til kommentar
???????? Skrevet 11. november 2004 Del Skrevet 11. november 2004 I de fleste tilfeller så vil vel brukernavnet være unikt, og det er vel derfor bedre å bare gjør feltet unikt. Lenke til kommentar
Frank2004 Skrevet 11. november 2004 Del Skrevet 11. november 2004 I de fleste tilfeller så vil vel brukernavnet være unikt, og det er vel derfor bedre å bare gjør feltet unikt. Støtter den. Mindre kode, mer effektivt, og du er 100% sikker på at det samme brukernavnet ikke registreres flere ganger. Lenke til kommentar
Tha_Zaynt Skrevet 11. november 2004 Forfatter Del Skrevet 11. november 2004 skal tenke på å sette unique på den ja, men ingen somm har peiling på dette? Jeg har lagd en registrer.php som slik ut: <?php include ("config.php"); $uid = $_GET['uid']; if (isset($uid)){ mysql_connect($mySQLhost, $mySQLuser, $mySQLpass) or die("Could not connect: " . mysql_error()); mysql_select_db($mySQLdb); if (mysql_query("UPDATE $mySQLtable SET uid = '' WHERE uid = '$uid'")){ echo "Du er nå registrert, velkommen til Nisselink! Logg deg inn her."; } else{ echo "Noe gikk galt og du ble ikke registrert. Hvis du opplever dette flere ganger, vennligst ta kontakt med webmaster"; } } ?> Den henter uid fra url'en og oppdaterer så kolonnen der uid = $uid, men noe er galt fordi jeg får beskjed om at det funker selv om uid'n jeg skriver inn ikke eksisterer i databasen. Jeg vil gjerne ha opp en feilmelding som sier at $uid er ukjent hvis den ikke finnes i databasen...hvordan fikser jeg det? Lenke til kommentar
LoS Skrevet 11. november 2004 Del Skrevet 11. november 2004 www.php.net/mysql_affected_rows Lenke til kommentar
Tha_Zaynt Skrevet 12. november 2004 Forfatter Del Skrevet 12. november 2004 fikk det til med mysql_affected_rows. takker for tipset! Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå