Avatar billede langkiller Nybegynder
18. august 2010 - 23:46 Der er 11 kommentarer og
1 løsning

cookie login, virker ikke

Ved ikke helt hvor problemet ligger.. Har ikke den store erfaring med cookies.

Har dette til min login (efter indtastning i html form):

if (isset($_POST['rememberme']))
    {
    setrawcookie('email', $_POST['email'], time()+60*60*24*365, '/projekt','www.clich.net/projekt');
    setrawcookie('password', md5($_POST['password']), time()+60*60*24*365, '/projekt','www.clich.net/projekt');
    }
    else
    {
    setrawcookie('email', $_POST['email'], false, '/projekt','www.clich.net/projekt');
    setrawcookie('password', md5($_POST['password']), false, '/projekt','www.clich.net/projekt');
    }   

    header('Location: index.php');

// Har kun taget det med der omhandler cookies da resten omkring "tjek om brugeren eksisterer" osv. ikke er relevant.





Fra index.php

  $email = $_COOKIE['email'];
  $password = $_COOKIE['password'];


if (isset($_COOKIE['email']) && isset($_COOKIE['password']))
{

  if (($_POST['email'] != $email) || ($_POST['password'] != md5($pass)))
  {

  //indhold som gæst / ikke logget ind

  }
  else
  {

  }

}
else
{

  //indhold som gæst / ikke logget ind

}





Den bliver ved med at vise indhold for "gæst/ikke logget ind"?
Avatar billede majbom Novice
19. august 2010 - 07:27 #1
i linje 2 smider du $_COOKIE['password'] i $password og længere nede hvor du tjekker, bruger du $pass:

$password = $_COOKIE['password'];
($_POST['password'] != md5($pass))
Avatar billede langkiller Nybegynder
19. august 2010 - 11:29 #2
ja du har ret.. hmm men stadig ingen forskel.
Avatar billede majbom Novice
19. august 2010 - 13:07 #3
du kan jo starte med at finde ud af hvilken af if-sætningergne der ikke gør som du forventer...

synes nu osse det er lidt mærkelig kode, først sætter du $email=$_COOKIE['email'] og bagefter tjekker du om $_COOKIE['email'] er sat :s ?
Avatar billede langkiller Nybegynder
19. august 2010 - 22:49 #4
tjaa den er ret mærkelig vil jeg godt give dig ret i.. Har prøvet mig lidt frem med cookies efter tutorials på nettet, men synes nu ikke at jeg kan finde nogle ordentlige tut's der forklarer det på en god måde.
Avatar billede langkiller Nybegynder
19. august 2010 - 22:50 #5
Har kun brugt SESSIONS, men det fungerer åbenbart ikke på samme måde med COOKIES
Avatar billede olsensweb.dk Ekspert
20. august 2010 - 00:18 #6
1) lav et afkryds felt på din loginform (hurtig lavet)
2) i login.php, ved korrekt logon aflæs om flueben er sat, og i givet fald, skriv cookies.
    test om disse cookies bliver sat, kan evt ses i browseren (FF -> Funktioner ->instillinger -> privatliv -> vis cookies)
3) ret index siden så den tester om cookien er på maskinen, og er det det logger på automatisk

>setrawcookie('email', $_POST['email'], false, '/projekt','www.clich.net/projekt');
>setrawcookie('password', md5($_POST['password']), false, '/projekt','www.clich.net/projekt');
hvorfor dette ??


hvor har du den code fra du visser ??
hvor maget af ovenstående har du lavet ??

tilfældige tut, jeg brugte selv Joe2Torials, men en lettere omskrivning, da jeg lavede det hele i index.php
http://www.joe2torials.com/view_tutorial.php?view=66
http://www.evolt.org/node/60265 her er en masse unødvendig code
Avatar billede langkiller Nybegynder
20. august 2010 - 00:43 #7
som sagt har jeg indtil nu ikke set nogle tut's der var særlig godt forklaret. Den jeg fulgte fortalte at jeg skulle gøre sådan når cookies skulle sættes:

>setrawcookie('email', $_POST['email'], false, '/projekt','www.clich.net/projekt');
>setrawcookie('password', md5($_POST['password']), false, '/projekt','www.clich.net/projekt');

Har ikke lavet særlig meget af det der omhandler cookies i min code.. Da det er meget nyt for mig

Jeg vil lige tage et kig på de links du har skrevet imorgen og vende tilbage med en ny code (forhåbentlig en jeg kan få til at virke) :)
Avatar billede langkiller Nybegynder
20. august 2010 - 13:53 #8
Har prøvet at tilpasse den ene tutorial (hvilket gav god mening) til min side, men den logger stadig ikke ind:


her er min login.php (bearbejdelse af data efter login formen, hvis data er gyldigt)

$email = $_POST["email"];
$password = $_POST["password"];
$error = "";

    $time = time();
    $_SESSION['loggedin'] = 1;

    if (isset($_POST['rememberme']))
        {
        setcookie("clichnet[email]", $username, $time + 60*60*24*365);
            setcookie("clichnet[password]", md5($password), $time + 60*60*24*365);
        }
        else
        {
        setcookie("clichnet[email]", $username, false);
            setcookie("clichnet[password]", md5($password), false);
        }   

        header('Location: index.php');
        exit();




Her er index.php der skal tjekke om man er logget ind osv:

session_start();
$conn = mysql_connect("******","*****","*******", true);
if (! $conn ) die( 'Could not connect: ' . mysql_error ());
mysql_select_db("*******")or die('Could not select database ');


$email = $_COOKIE['clichnet']['email'];
$password = $_COOKIE['clichnet']['password'];

$query = "SELECT email, password FROM users WHERE email = '$email' AND password = '$password'";

$result = mysql_query($query, $conn);

    if(mysql_num_rows($result))
    {
    $_SESSION['logged_in'] = 1;
    }



if($_SESSION["logged_in"] == 1)
{

// LOGGET IND

}
else
{
// IKKE LOGGET IND
}



Hvad er gjort galt
Avatar billede olsensweb.dk Ekspert
20. august 2010 - 13:59 #9
jeg skulle lige genopfriske det selv, så jeg lavede lige et test med din form som udgangs punkt.
jeg har dog byttet lidt rundt i coden.

du kan se det færdige resultat her http://olsensweb.dk/test/experten/spm/916705/916705.zip

tag hvad du kan bruge, og spørg hvis du er i tvivl
Avatar billede olsensweb.dk Ekspert
20. august 2010 - 15:49 #10
#8
login.php
if (isset($_POST['rememberme']))
{
    setcookie("clichnet[email]", $username, $time + 60*60*24*365);
    setcookie("clichnet[password]", md5($password), $time + 60*60*24*365);
}
else
{
    setcookie("clichnet[email]", $username, false);
    setcookie("clichnet[password]", md5($password), false);
}   
hvor er denne code placeret i forhold til resten af coden ??

en umildbart i ovenstående er $username, den hedder $email hos dig


får du sat en cookie ??, umildbart setter ovenstående en cookie, men har du kontrolleret det, står der det rigtige i den, hvis det bliver sat skal vi finde en fejl i index.php
det er jo en betingelse for at kunne komme vidre og logge ind med en cookie.

hvorfor setter du cookien i else ??, du setter i forvejen
$_SESSION['loggedin'] = 1 // i loginform.php
$_SESSION["user_id"] = $userArray["id"]; // i index.php
hvilke ligger sig på serveren, hvorimod cookies er på klienten, og nogle accepterer ikke cookies (afh sikkerhed)
Avatar billede langkiller Nybegynder
22. august 2010 - 20:54 #11
Har fået det med cookies op at køre nu, takket være dit eksempel.

Mange tak for hjælpen endnu en gang ronols :)
Du lægger bare et svar når du vil
Avatar billede olsensweb.dk Ekspert
23. august 2010 - 10:22 #12
svar
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