14. august 2003 - 22:52
Der er
22 kommentarer og 1 løsning
Tjek om bruger eksistere.
Hej alle. Det er ved at være sent, og jeg har noget PHP som driller. Jeg skulle tjekke, om en bruger allerede eksistere. Er det i øvrigt dumt, at bruge CaseSensitive i den forbindelse (til brugernavn) ? Mit script : $tmp_usr = strtoupper($user); # Omdanner brugerens brugernavn til STORE BOGSTAVER $tmp_mail = strtoupper($mail); # Omdanner brugerens email adresse til STORE BOGSTAVER $dta = mysql_query("select * from users") or die(mysql_error()); while ($data = mysql_fetch_array($dta)) { $dbuser = strtoupper($data["user"]); $dbmail = strtoupper($data["mail"]); if ($dbuser != $tmp_usr) { if ($maildb != $tmp_mail) { # Hvis alt gik godt, lagres data i databasen } else { $fejl = true; $uds = "E-mail adresse i brug"; } } else { $fejl = true; $uds = "Brugernavn optaget"; } } # afslutning på while
Annonceindlæg fra Jysk IT
Sikkerhed skal være en del af driften
Skal virksomheder stå stærkere mod angreb og kunne udvikle sig, skal sikkerhed, drift og forretning tænkes sammen. Det er tanken bag Jysk IT’s ambition om at skabe en “sikker fremtid” for kunderne.
14. august 2003 - 22:54
#1
Hm, sikkert fordi jeg skal stoppe WHILE'en. Prøver lige med break.
14. august 2003 - 22:57
#2
mere sandsynligt du skal putte en WHERE på din SELECT. Der er ingen grund til at løbe databasen igennem i PHP, når SQL kan gøre det for dig.
14. august 2003 - 22:57
#3
Virkede ski :)
14. august 2003 - 22:58
#4
ja. Jeg er ikke lige helt med hvad det var du ville der, men jeg ville ikke lave brugernavne til casesensitive. Jeg ved hvor irriterende det er, et brugernavn enten kun kan være med stort eller småt, og at det skal være cs... især når man rammer forkert af og til .. Desuden.. hvilke fordele ville det give, udover at være til gene for visse brugere ? :)
14. august 2003 - 22:58
#5
Erik > Har jeg også tænkt på. Men feltet "user" er binary. Så hvordan tages der højde for det ? Hvis jeg bruger : $dta = mysql_query("select * from users where user = '$user' OR mail = '$mail") or die(mysql_error()); Så tages der ikke højte for, at brugernavnet teST kan registreres, hvis test allerede eksistere.
14. august 2003 - 22:59
#6
Jara > Kan du måske have ret i. Ok, tror jeg laver det om så. Skifter mit user-felt ud med et ikke-binary. Det gør det hele meget nemmere :)
14. august 2003 - 23:04
#7
Ah, det hele er meget nemmere nu, ja :-)
14. august 2003 - 23:05
#8
hehe. Jeg ville bruge: $dta = mysql_query("select * from users where user = '". $user ."' OR mail = '". $mail ."") or die(mysql_error()); men det har nok også en relation til dét, at folk siger jeg til tider kan være ". mærkelig ." ;-)
14. august 2003 - 23:07
#9
Hehe, jo tak. Kan ikke se hvad "opbremsningen" skal gøre godt for :-D
14. august 2003 - 23:16
#10
tja, det er bare mig $bla = "php"; $txt = "her er html og her er ". $php .". <- punktum tilsidst og to gange gåseøjne: \"<- | ->\" \n og linieskift ^^ :)"; sådan har jeg altid gjort, ved ikke helt hvorfor :D
14. august 2003 - 23:18
#11
Jeg er vist stødt på et mindre problem : Bør flg. ikke KUN give noget, hvis en post eksistere med kriterierne opfyldt ? $dta = mysql_query("select * from users WHERE user = '$user'") or die(mysql_error());
14. august 2003 - 23:18
#12
Hehe :)
14. august 2003 - 23:19
#13
Hvis jeg skriver : $dbuser = $data["user"]; Så hentes den indholdet af $user (og denne værdi eksistere ikke i DBen)
14. august 2003 - 23:20
#14
jo, det bør kun give noget i det tilfælde
14. august 2003 - 23:21
#15
.. og jeg bruger flg. fetch : $data = mysql_fetch_array($dta);
14. august 2003 - 23:21
#16
Det er skummelt.
14. august 2003 - 23:21
#17
if ($dbuser == "") { echo "PASSED"; } $dbuser burde altså være tom. Men den skriver passed.
14. august 2003 - 23:27
#18
Hrfm. Man skal ikke bytte om på maildb og dbmail, vel :-) Mindre fejl i mine variabler.
14. august 2003 - 23:30
#19
Sig mig engang - duer flg. ikke : $dta = mysql_query("select * from users WHERE user = '$user' OR mail = '$mail'") or die(mysql_error()); På jævnt dansk vil jeg tjekke, om der er en post, som allerede optager enten det indtastede eller mail adresse.
14. august 2003 - 23:39
#20
Bør password ikke være CaseSensitive ? Det øger mig bekendt sikkerheden pænt.
14. august 2003 - 23:40
#21
(Jeg lavede ovenstående MySQL query om til 2 i stedet. Sig endelig til, hvis det kan gøres smartere :)
16. august 2003 - 10:45
#22
Ok. Vil gerne lukke. Smid lidt svar. Så lever jeg med to query'er
28. august 2003 - 22:03
#23
.
Vi tilbyder markedets bedste kurser inden for webudvikling