Gå til innhold

Sjekke om brukernavn er opptatt


Anbefalte innlegg

Videoannonse
Annonse
Skrevet

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(); }
}
}
?>

Skrevet

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(); }
}
}
}
?>

Skrevet (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 av LoS
Skrevet

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....

Skrevet

$harfaattresultat = mysql_num_rows($result);

 

Også trengs vel egentlig ikke denne linjen:

$brukernavnsjekk = mysql_fetch_row($result);

 

/kakkle

Skrevet

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 :)

Skrevet
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!

Skrevet
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.

Skrevet

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?

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...