problemen met cookies

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Cygio

cygio

19/01/2009 09:31:00
Quote Anchor link
Beste,

ik heb problemen met een login scriptje, wat ik als opdracht moet maken voor school.

ik heb een login gemaakt met een functie die kijkt of je ingelogd bent of niet
op de ene manier werkt het niet en is het mogelijk oneigenlijk in te loggen bv. door de pagina aan te roepen zonder via de login pagina te gaan ,dus door bv je browswer geschiedenis te gebruiken of door directe aanroep.

Ik heb al op alle denkbare manieren gekeken of de functies onderling de juiste waardes doorgeven ,dit is het geval.
de cookies bestaan gewoon.

Kan iemand de onderstaande code bekijken en kijken of er fouten in zitten
en zo ja welke en/of waarom de ene expresie wel werkt en de andere niet .
Ik zal proberen duidelijk commentaar in te voegen.

*****LOGIN PHP***************
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<?php
//voegt de htmlfunctie libary toe
include_once ("../libarys/html_functions.inc.php");
//voegt libary toe
include_once ("../libarys/login_functions.inc.php");


if (isSet($_POST['login_submit'])&& isSet($_POST['naam'])&&($_POST['naam']!="")&& isSet($_POST['password'])&& ($_POST['password']!=""))
{

    
        
        setcookie("login",$_POST['naam'],0,"/");
        setcookie("pass",$_POST['password'],0,"/");
        
}



//stelt html header samen
htmlheader("login");

//steldt simpele navigatie samen
navigatie("login","login:cookies","week4","html_functions","login_functions");
echo "<div class=\"oefening\">\n";


if (!isSet($_POST['login_submit']))
{

    ShowLoginForm();
}
else
{
    HandleLoginForm($_POST['naam']);
}


echo "</div>";
//sluit html
htmlfooter();

?>


*************BEDANKT.PHP**********************
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?php
//voegt de htmlfunctie libary toe
include_once ("../libarys/html_functions.inc.php");

//voegt de login libary toe
include_once ("../libarys/login_functions.inc.php");

//voegt de shop libary toe
include_once ("../libarys/shop_functions.inc.php");

//stelt html header samen
htmlheader("bedankt");

//steldt simpele navigatie samen
navigatie("bedankt","bedankt","week4","html_functions","login_functions");
echo "<div class=\"oefening\">\n";



$login=check_logged_in();
if ($login)
{

    bedankt();
}
else
{
    echo "binnen";
    Error();
}


echo "</div>";
//sluit html
htmlfooter();

?>

*************DE FUNCTIES***************************
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?
//kijkt in de databasefile of de gebruiker bestaat en geeft het bijhorende wachtwoord terug
function getPassword($username)
{

$pass="";
//passwordfile in array zetten
$users=file("login.dat");

    for($i=0;$i<count($users);$i++)
    {

      $gegevens=explode(";",$users[$i]);
      
      if ($username==$gegevens[0])
      {

          
     //als usename bestaat wachtwoord terug geven
          
          $pass=$gegevens[1];
          return $pass;
      }
    
    }



}    

function
check_logged_in()
{

    $correct_pass=getPassword($_COOKIE['login']);
               //if (($_COOKIE['pass'])==trim($correct_pass))
               //als ik bovenstaande expressie gebruik dan werkt het niet
               //een combinatie van ook niet.
                //VRAAG:waarom werkt het niet de functie check_logged_in
                 //werkt corect anders zou het met onderstaande  de   expressie   ook niet werken de functie getPassword werkt ook, anders konden we niet inloggen toch??  

              
    if (isSet($_COOKIE['login'])&& (isSet($_COOKIE['pass'])))
    {

        $login=TRUE;
        return $login;
    }
else
    {
        $login=FALSE;
        return $login;
    }
    
    
}

?>

ik hoop dat iemand een antwoord heeft .
En oh ja het is simpele code ben nog aan het leren he het .

alvast bedankt
Gewijzigd op 01/01/1970 01:00:00 door Cygio
 
PHP hulp

PHP hulp

17/11/2024 08:27:45
 
Menno Ridder

Menno Ridder

19/01/2009 11:52:00
Quote Anchor link
Hoi Kurt,

Er zijn niet veel mensen die zin hebben om een hele strook code door te
spitten om te kijken of er een foutje in zit. Kun je ons vertellen wat er precies fout gaat?

Het is ook niet erg veilig om met cookies te werken. Ten eerste zijn er veel mensen die cookies automatisch blokkeren (zelf ingesteld of standaard optie in firewall / virusscanner). Daarnaast is het ook nog eens makkelijk te traceren en veranderen omdat het opgeslagen wordt op de computer van de gebruiker. Een login systeem kun je daarom het beste maken met sessions.
 
RvW Of toch niet

RvW Of toch niet

19/01/2009 12:20:00
Quote Anchor link
en waarom gebruik je geen database ??
 
Cygio

cygio

19/01/2009 14:12:00
Quote Anchor link
Hoi menno,
dat sommige geen zin hebben om zo'n lap telezen begrijp ik eigenlijk wel, maar ik lees hier best wel vaak opmerkingen dat er geen of te weinig code is bijgevoegd, dus vandaar.

over de cookies ben ik het gelijk helemaal met je eens, maar het is een opdracht voor school en we zijn nog niet bij sessies geariveerd, dus vandaar .
Dit geldt trouwens ook voor het niet gebruiken van een database rvw.

Maar goed wat gaat er mis ik zal het ff inkorten:
het gaat om dit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?
function check_logged_in()
{

    $correct_pass=getPassword($_COOKIE['login']);
               //if (($_COOKIE['pass'])==trim($correct_pass))
               //als ik bovenstaande expressie gebruik dan werkt het niet
               //een combinatie van ook niet.
                //VRAAG:waarom werkt het niet de functie check_logged_in
                 //werkt corect anders zou het met onderstaande  de   expressie   ook niet werken de functie getPassword werkt ook, anders konden we niet inloggen toch??  

              
    if (isSet($_COOKIE['login'])&& (isSet($_COOKIE['pass'])))
    {

        $login=TRUE;
        return $login;
    }
else
    {
        $login=FALSE;
        return $login;
    }
    
    
}

?>

als ik deze functie aanroep moet die true or false geven.
dat werkt als ik deze expressie gebruik.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?
if (isSet($_COOKIE['login'])&& (isSet($_COOKIE['pass'])))

?>

nu wordt er gekeken of de cookies login & pass bestaan, als ze bestaan dan is het true en anders false.

maar als ik dit gebruik
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?
 $correct_pass
=getPassword($_COOKIE['login']);
if (($_COOKIE['pass'])==trim($correct_pass))
?>

Dan geeft dat niet het gewenste resultaat, terwijl de cookies bestaan
en de output van getPassword de juiste is(heb ik getest namelijk met test echoos etc)
 
- SanThe -

- SanThe -

19/01/2009 14:25:00
Quote Anchor link
Dus
echo trim(getPassword($_COOKIE['login']));
is exact hetzelfde als
echo $_COOKIE['pass'];
 
Cygio

cygio

19/01/2009 18:59:00
Quote Anchor link
hoi,
die zijn exact hetzelfde ja ,daarom snap ik er niets meer van .
wat zou het kunnen zijn .
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.