08. maj 2008 - 09:30
Der er
28 kommentarer og 1 løsning
problemer med user_login.php
hej jeg er ved at lave en login og har en fejl i min user_login.php og kan ikke finde fejlen kan i hjælpe mig ? <?php session_start(); include "conn.inc.php"; if (isset($_POST['submit'])) { $query ="SELECT username, password FROM user_info " . "WHERE username ='" . $_POST['username'] . "' " . "AND Password = (PASSWORD('" . $_POST['password'] . "'))"; $result = mysql_query($query) or die(mysql_error()); if (mysql_num_rows($_result) == 1) { $_SESSION['user_logged'] = $_POST['username']; $_SESSION['user_password'] = $_POST['password']; header ("Refresh: 5; URL=" . $_POST['redirect'] . ""); echo "You are being redrected to your orignal page request!<br>"; echo "(If your browser doesn´t support this, " . "<a href=\"" . $_POST['redirect']. "\">Click here</a>"; } } else { ?> <html> <head> <title>Beginning PHP5, Apache and MySQL</title> </head> <body> <p> Invalid Username and/or Password<br> Not registered? <a href="register.php">click here</a> to register.<br> <Form action="user_login.php" method="post"> <input type="hidden" name="redirect" value="<?php echo $_post['redirect']; ?>"> Username: <input type="text" name="username"><br> Password: <input type="password" name="password"><br><br> <input type="submit" name="submit" value="Login"> </form> </p> </body> </html> <?php } ?>
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
glemte fejlen : Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /volume1/web/test/cms-6/user_login.php on line 10
Prøv $query ="SELECT username, password FROM user_info WHERE username ='".$_POST['username']."' AND Password = (PASSWORD('".$_POST['password']."'))"; $result = mysql_query($query) or die(mysql_error());
så får jeg denne fejl : Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /volume1/web/test/cms-6/user_login.php on line 12
hov, du bruger jo mysql_num_rows($_result) men skal være mysql_num_rows($result)
ja nu melder den ikek fejl mere men jeg kan stadig ikke komem ind på siden selv om koden og bruger navn er rigtig !
har måtte lave en ny bruger så virker det ;-) ved ikke helt hvorfor ?
men hvis du laver et svar får du point !
Nu bruger du PASSWORD(), hvordan har du gemt password'et i mysql? Selv bruger jeg et varchar felt i db til password, 32 tegn langt, og så f.eks. AND Password = '".md5($_POST["password"])."'
? Så har dit password vel været forkert ? :O)
jeg bruger den her $query = "INSERT INTO user_info (username, password, email, " . "first_name, last_name, city, state, hobbies) " . "VALUES ('" . $_POST['username'] . "', " . "(PASSWORD('" . $_POST['password'] . "')), '" . $_POST['email'] . "', '" . $_POST['first_name'] . "', '" . $_POST['last_name'] . "', '" . $_POST['city'] . "', '" . $_POST['state'] . "', '" . implode(", ", $_POST['hobbies']) . "');"; $result = mysql_query($query) or die(mysql_error()); $_SESSION['user_logged'] = $_POST['username']; $_SESSION['user_password'] = $_POST['password']; ?>
og nej problemer er det stadig jeg tror det er noget med hvordan jeg får den til at sætte min kode ind !
kan du ikke se det i filen ?eller såkan jeg poste dem jeg har her
for skal jeg være helt ærlig så ved jeg ikke hvad PASSWORD() gør :-(men vil godt vide det for så har jeg lært lidt !
PASSWORD() er en mysql funktion $p = mysql_query("SELECT PASSWORD('juhu')") or die (mysql_error()); echo mysql_result($p,0);
ok det var da godt at vide men hvad gør jeg fejl i det for den vil ikke loge mig ind !
Efter lidt søgning på mysql.com:
http://dev.mysql.com/doc/refman/5.1/en/encryption-functions.html#function_password Og er står bl.a.:
The PASSWORD() function is used by the authentication system in MySQL Server; you should not use it in your own applications. For that purpose, consider MD5() or SHA1() instead.
Så jeg tror det er en meget dårlig ide at bruge PASSWORD() i din kode. Du kan i stedet bruge md5 eller sha1 eller sha256.
ok så skal jeg bare lige finde ud af hvordan man bruger dem og hvilken der er bedst! takker
har i en ide til hvordan og hvilken det er bedst ?
Tror det er ligegodt begge, men har læst at en del password kombinationer som er krypteret med md5 er gemt af hackere. Jeg ville råde dig til, hvis du skal gemme password for brugere, at du salter de password du gemmer, inden du kryptere dem.
ok det lyder som en godt ide men hvor man jeg finde noget om det ??? kender ikke til salt ( ud over det der kommer på mad )
Har lige fundet en lille artikel om det:
http://www.aspheute.com/english/20040105.asp Har dog ikke lige læst den igennem.
Men princippet er at, inden du kryptere brugerens password lægger du et kendt ord (salt) til passwordet. Derefter kryptere du passwordet med saltet og den krypterede værdi gemmer du i databasen sammen med dit salt.
Du bør lave et nyt salt hvor hver kodeord du gemmer.
Når du så skal sammenligne et indtastet password med et password i databasen, så henter du dit salt fra databasen, lægger det til det indtastet password og kryptere det, så kan du sammenligne det med din værdi som du har liggende i databasen.
Håber det gav lidt mening.
24. juni 2008 - 14:36
#26
det er noget je gvil se på ( undskyl for at jeg ikke har være her i lang tid men give et svar og du får point
04. juli 2008 - 10:46
#27
dkfire vil du lave et svar så du kan få point ?? eller så tager ejg dem selv !!
04. juli 2008 - 11:15
#28
Jamen så kommer der et svar :-)
08. juli 2008 - 21:50
#29
tak så kunen jeg få den lukket
Vi tilbyder markedets bedste kurser inden for webudvikling