04. november 2005 - 15:08
Der er
7 kommentarer og 1 løsning
PHP autologin hjælp
Hej vil gerne have sat autologin på dette script... Nogen der kan hjælpe?? Login scriptet virker fint... På forhånd tak ReneDK <style type="text/css"> <!-- a:link { text-decoration: none; color: #808080; } a:visited { text-decoration: none; color: #808080; } a:hover { text-decoration: underline; color: #FF9900; } a:active { text-decoration: none; color: #808080; </style> <?php ob_start(); //hent header.php require("login_top.php"); echo "<center>"; ?> <form method=post action=login.php?action=check> <div align="center"> <table cellspacing="1" width="428"> <tr><td align="right"> <font size=1 face=verdana color=808080>Brugernavn:</font></td><td> <input type="text" class="but" name="Uname" style="color: #FF9900; font-size: 8pt; font-family: Verdana" size="17"></td></tr><tr> <td align="right"> <font size=1 face=verdana color=808080>Password:</font></td><td> <input type="password" class="but" name="Pword" style="color: #FF9900; font-size: 8pt; font-family: Verdana" size="17"></td></tr><tr> <td rowspan="2" align="right"> <tr><td> <input type="checkbox" name="C1" value="ON"><font face="Verdana" size="1" color="#808080">autologin</font><br> <input type="submit" class="button" value="login" name="send" style="font-family: Verdana; font-size: 8pt"></td></tr> </td> </tr> <tr><td align="right"> <a href=forgotpassword.php><font size=1 face=verdana>Glemt password</font></a></td><td> <font size=2 face=verdana>| <font size=1 face=verdana> <a href=register.php>Registrer</a> </font></td></tr> </table> </div> </form> <?php //check input if($_GET['action'] == 'check') { //find bruger $result = mysql_query("SELECT * FROM easystart_brugere WHERE Uname='{$_POST['Uname']}'") or die(mysql_error()); $row = mysql_fetch_array( $result ); if($row['Uname'] == "") { echo error(); } else { //$enc = md5($_POST['Pword']); $enc = $_POST['Pword']; if($row['Pword'] == $enc) { $_SESSION['Uname'] = $_POST['Uname']; $_SESSION['lp'] = 'pl'; header("Location: main.php"); exit; } else { echo error(); } } } if($_GET['action'] == 'registered') { echo "<font size=1 face=verdana color=ff9900>Du er nu registreret!"; } function error() { echo "<font size=1 face=verdana color=red>Dit brugernavn/password er forkert!"; } ?>
Annonceindlæg fra Lenovo
04. november 2005 - 22:33
#1
Rene, har vi ikke kigget på dette før?
05. november 2005 - 13:20
#2
jo... men jeg fandt aldrig ud af det... :( , så jeg prøvede lige at poste det igen.. jeg skal bare bruge noget hjælp til at få sat en cookie, så den husker det login..
06. november 2005 - 17:16
#3
Du sætter en cookie med setcookie() Jeg vil anbefale dig at gemme brugernavn i plaintext og password som md5(). Du laver en checkbox som angiver om autologin skal bruges eller ej. Når en bruger kommer på din side, tjekker du først cookie, og derefter viser du ellers loginboksen.
10. november 2005 - 17:36
#4
Det kan godt være det er lidt flad af mig, men kan simpelthen ikke få noget til at virke... Vil du ikke være sød at hjælpe mig lidt mere?.. :)
10. november 2005 - 18:48
#5
Jeg har ikke ændret dit "slamkode" så det er ikke kønt, med det virker måske! :o) <style type="text/css"> a:link { text-decoration: none; color: #808080; } a:visited { text-decoration: none; color: #808080; } a:hover { text-decoration: underline; color: #FF9900; } a:active { text-decoration: none; color: #808080; } </style> <?php ob_start(); //hent header.php require("login_top.php"); //Vi tjekker om cookien er sat og tjekker den mod db. if(isset($_COOKIE["Uname"]) && isset($_COOKIE["Pword"])) { $user = mysql_escape_string($_COOKIE["Uname"]); $pass = mysql_escape_string($_COOKIE["Pword"]); $result = mysql_query("SELECT * FROM easystart_brugere WHERE Uname='".$user."' AND Pword = '".$pass."' LIMIT 1") or die(mysql_error()); if(mysql_num_rows($result)>0) { $_SESSION['Uname'] = $user; $_SESSION['lp'] = 'pl'; header("Location: main.php"); exit; } } echo "<center>"; ?> <form method=post action=login.php?action=check> <div align="center"> <table cellspacing="1" width="428"> <tr> <td align="right"> <font size=1 face=verdana color=808080>Brugernavn:</font> </td> <td> <input type="text" class="but" name="Uname" style="color: #FF9900; font-size: 8pt; font-family: Verdana" size="17"> </td> </tr> <tr> <td align="right"> <font size=1 face=verdana color=808080>Password:</font> </td> <td> <input type="password" class="but" name="Pword" style="color: #FF9900; font-size: 8pt; font-family: Verdana" size="17"> </td> </tr> <tr> <td rowspan="2" align="right"> <input type="checkbox" name="C1" value="ON"><font face="Verdana" size="1" color="#808080">autologin</font><br> <input type="submit" class="button" value="login" name="send" style="font-family: Verdana; font-size: 8pt"> </td> </tr> <tr> <td align="right"> <a href=forgotpassword.php><font size=1 face=verdana>Glemt password</font></a> </td> <td> <font size=2 face=verdana>| <font size=1 face=verdana> <a href=register.php>Registrer</a></font> </td> </tr> </table> </div> </form> <?php //check input if($_GET['action'] == 'check') { //find bruger $user = mysql_escape_string($_POST['Uname']); $pass = md5($_POST['Pword']); $result = mysql_query("SELECT * FROM easystart_brugere WHERE Uname='".$user."' AND Pword = '".$pass."' LIMIT 1") or die(mysql_error()); if(mysql_num_rows($result)>0) { if(isset($_POST["C1"])) { //Brugeren ønsker autologin (vi gemmer den 1 år) setcookie("Uname", $user, time()+(60*60*24*365)); setcookie("Pword", $pass, time()+(60*60*24*365)); } else { setcookie ("Uname", "", time() - 3600); setcookie ("Pword", "", time() - 3600); } $_SESSION['Uname'] = $user; $_SESSION['lp'] = 'pl'; header("Location: main.php"); exit; } else { echo error(); } } if($_GET['action'] == 'registered') { echo "<font size=1 face=verdana color=ff9900>Du er nu registreret!"; } function error() { echo "<font size=1 face=verdana color=red>Dit brugernavn/password er forkert!"; } ob_end_flush(); ?>
11. november 2005 - 13:02
#6
Så fungerer det sQ lige på nær denne streng $user = mysql_escape_string($_POST['Uname']); $pass = md5($_POST['Pword']); Sådan her så virker det.. $user = mysql_escape_string($_POST['Uname']); $pass = mysql_escape_string($_POST['Pword']);
12. november 2005 - 23:26
#7
Ahh, men du må ikke gemme brugernavn og kodeord i en cookie i plaintext. Overvej at brug noget kryptering eller hashing som md5 er. Og et svar! :o)
13. november 2005 - 17:03
#8
Takker for point!
Vi tilbyder markedets bedste kurser inden for webudvikling