23. juli 2009 - 15:17
Der er
13 kommentarer og 1 løsning
Cookies for dummis
nogle der kan forklar mig hvordan cookies virker så det er til at forstå med login script så hvis man vægler "husk mig" og så næste gang man åbner siden husker den en :) har fået den til at gemme i cooike men ikke logge en ind automatisk giver hvad som helst for nogle der kan hjælpe mig
Annonceindlæg fra Academic Work Denmark A/S
Hvis du har fået gemt en cookie er problemet jo kun at du ikke kan finde ud af bruge den. Hvad med at komme med noget kode så vi kan hjælpe dig? Eventuelt den stump hvor du sætter cookien og den stump hvor du gerne ville bruge den?
brugeren har udfyldt en loginformular med brugernavn og kode går jeg ud fra. Du validerer brugeren til at være OK. Hvis der er sat kryds i "husk mig" gemmer du en cookie fx ved navn "brugernavn" med værdien af feltet brugernavn. Det samme mht. koden som du evt. lige hash'er (sha1). Når brugeren næste gang besøger din side, skal du så lige lave et tjek på om de 2 cookies eksisterer. Gør de de og den nuværende kode passer til den der ligger i cookien så validerer du brugeren til at være OK ligesom ved alm. login.
så hvis vi leger at at en bruger har sat x i husk mig så en if($_POST["husk"]) { setcookie("username", "$username", time()+3600); setcookie("password", "md5($username)", time()+3600); } så er der lavet en cookie men hvordan for jeg den til at se om cookie findes og så logge ind
if(isset($_COOKIE["username"]) && isset($_COOKIE["password"])) { $username = $_COOKIE["username"]; $password = $_COOKIE["password"]; // kode til at logge ind med }
havde ikke se du havde skrevet var bare jeg så en fejl i det jeg har lavet men til dit hvordan går den ind og ser om $username og $password findes i mysql og logger en ind
echo" <form action=\"login/login.php\" method=\"post\"> Brugernavn:<br /> <input name=\"username\" type=\"text\" size=\"30\" /> Kodeord:<br /> <input name=\"password\" type=\"password\" size=\"30\" /><br /> <input name=\"submit\" type=\"submit\" value=\"Login\" /><br /> <input name=\"husk\" type=\"checkbox\" value=\"ja\" /><br /> <center><a href=\"login/nykonto.php\">Opret ny konto</a> | <a href=\"login/glemt.php\">Glemt kodeord</a></center> </form> </ul>"; }
Hvordan vil du normalt gå ind og tjekke om brugernavn og kodeord findes i databasen?
23. juli 2009 - 16:16
#10
<?php session_start (); include("../SQL/config.php"); // Define $myusername and $mypassword $myusername=$_POST['username']; $mypassword=$_POST['password']; // encrypt password $encrypted_mypassword=md5($mypassword); // To protect MySQL injection (more detail about MySQL injection) $myusername = stripslashes($myusername); $mypassword = stripslashes($mypassword); $myusername = mysql_real_escape_string($myusername); $mypassword = mysql_real_escape_string($mypassword); $sql="SELECT * FROM members WHERE username='$myusername' AND password='$encrypted_mypassword'"; $result=mysql_query($sql); // Mysql_num_row is counting table row $count=mysql_num_rows($result); // If result matched $myusername and $mypassword, table row must be 1 row if($count==1){ // Register $myusername, $mypassword and redirect to file "login_success.php" $level = mysql_fetch_assoc($result); $_SESSION['level'] = $level['level']; session_register("myusername"); session_register("mypassword"); header("location:../index.php"); } if($count==0){ // Register $myusername, $mypassword and redirect to file "login_success.php" header("location: forkert.php"); } ?>
23. juli 2009 - 16:22
#11
Med andre ord; du ved det ikke, du har bare et script der gør det for dig?
23. juli 2009 - 16:30
#12
den ser om det man har skrevet passer sammen $myusername=$_POST['username']; $mypassword=$_POST['password']; $sql="SELECT * FROM members WHERE username='$myusername' AND password='$encrypted_mypassword'"; hvis test og koden test passer sammen går vi til count== 1 if($count==1){ // Register $myusername, $mypassword and redirect to file "login_success.php" $level = mysql_fetch_assoc($result); $_SESSION['level'] = $level['level']; session_register("myusername"); session_register("mypassword"); header("location:../index.php"); } og sender dig videre til index.php og laver en session med ens brugernavn og kode og ens level som står i mysql
23. juli 2009 - 17:55
#13
så gør du bare det samme i den linie hvor jeg skrev: //kode til at logge ind med
07. juni 2010 - 15:52
#14
lukker igen
Vi tilbyder markedets bedste kurser inden for webudvikling