Avatar billede diablo925 Nybegynder
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
Avatar billede repox Seniormester
23. juli 2009 - 15:23 #1
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?
Avatar billede riversen Nybegynder
23. juli 2009 - 15:28 #2
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.
Avatar billede diablo925 Nybegynder
23. juli 2009 - 15:53 #3
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
Avatar billede repox Seniormester
23. juli 2009 - 15:58 #4
if(isset($_COOKIE["username"]) && isset($_COOKIE["password"]))
{
    $username = $_COOKIE["username"];
    $password = $_COOKIE["password"];
    // kode til at logge ind med
}
Avatar billede diablo925 Nybegynder
23. juli 2009 - 15:59 #5
md5($password)
Avatar billede repox Seniormester
23. juli 2009 - 16:01 #6
Øhh?
Avatar billede diablo925 Nybegynder
23. juli 2009 - 16:06 #7
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
Avatar billede diablo925 Nybegynder
23. juli 2009 - 16:08 #8
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>"; }
Avatar billede repox Seniormester
23. juli 2009 - 16:11 #9
Hvordan vil du normalt gå ind og tjekke om brugernavn og kodeord findes i databasen?
Avatar billede diablo925 Nybegynder
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");
}
?>
Avatar billede repox Seniormester
23. juli 2009 - 16:22 #11
Med andre ord; du ved det ikke, du har bare et script der gør det for dig?
Avatar billede diablo925 Nybegynder
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
Avatar billede repox Seniormester
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
Avatar billede diablo925 Nybegynder
07. juni 2010 - 15:52 #14
lukker igen
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester