Cookies werken niet goed

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Vincent

Vincent

01/04/2004 21:10:00
Quote Anchor link
Ik heb de volgende scripts om in- en uit te loggen:

inlog:
-------
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
<?
// Verwijder deze comment en de onderstaande regel als je een eigen stylesheet gebruikt...
echo "<link rel=\"stylesheet\" content=\"text/css\" href=\"style.css\">";
require("config.php");

if ($submit == "submit")
{

$query = mysql_query("SELECT * FROM members WHERE gebruikersnaam = '$gebruikersnaam' AND wachtwoord = '$wachtwoord' AND geactiveerd = '1'");
$result = mysql_num_rows($query);
$row = mysql_fetch_object($query);
setcookie("gebruikersnaam", $gebruikersnaam, time() + 90 * 86400);
 
if (isset($gebruikersnaam))
{

echo "U bent ingelogt als: $gebruikersnaam<br>";
echo "<a href=\"loguit2.php\">Log Uit!</a>";
}
}


else{

echo "<form method=\"POST\" action=\"$PHP_SELF\">
<input type=\"hidden\" name=\"submit\" value=\"submit\">
Naam:<br>
<input type=\"text\" name=\"gebruikersnaam\" size=\"20\"><br>
Wachtwoord:<br>
<input type=\"password\" name=\"wachtwoord\" size=\"20\"><br>
<input type=\"submit\" value=\"Login\"> <input type=\"reset\" value=\"Aanmelden\"
onclick=\"document.location.href=('aanmelden.php')\">
</form>"
;

}

?>


uitlog:
--------
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?
setcookie("login");
header("Location: login.php");
?>


Als ik uitlog keer in weer naar login en dat is goed. Maar als ik dan probeer in te loggen krijg ik dus die error dat er al gegevens naar gestuurd zijn. Ik weet niet waar het aan ligt want ene keer krijg ik ze wel en als ik iets verander krijg ik ze niet, zonder nou te weten wat reden tot die fout er voor is, want krijg eronder wel gewoon te zien ingelogd als:

Maar het grootste probleem, het inloggen/cookie systeem werkt nog niet goed. Want ik krijg vaak te zien dat ik ingelogd ben als test, terwijl ik dat helemaal niet ben (en dat schijnbaar nog wel in cookie ofzo staat). Soms krijg ik wel goede inloggegevens, maar wanneer ik weer naar login.php ga moet/kan ik dus opnieuw inloggen.

Op een of andere manier werkt het login/cookie systeem zoals ik hem nu heb en op verschillende manieren heb geprobeerd gewoon niet of niet goed.
 
PHP hulp

PHP hulp

27/04/2024 17:54:21
 
Arend a

Arend a

02/04/2004 00:47:00
Quote Anchor link
Denk je dat het een goed plan is om cookies hiervoor te gebruiken?!

Cookies zijn stukjes informatie op de computer van de client worden opgeslagen. Dit betekend dat bij het gebruik van cookies je deze informatie wanneer je het opvraagt je aan de user vraagt om een username. Wat als ik zelf een cookie installeer voor jouw site met de username van de admin?

Veiligheid van likmevestje. Nul, Nada, Noppes.

Je zoekt sessies. Hierbij wordt de informatie op de server opgeslagen, en aan de hand van een ip van een gebruiker en een sessienummer wat in een cookie bij de gebruiker wordt opgeslagen.

Vervolgens vraagt php om het cookie en zoekt zelf de bijbehorende sessie weer op. Resultaat: gebruiker geeft een geldige of ongeldige sessie op. Wanneer niet op ip gechecked wordt bestaat er ook nog iets als 'session hijacking' ook session fixation genoemd, waarbij deze sessie id wordt opgespoort en gebruikt op listige wijze.

Maar het komt er op neer dat dit per definitie een veiligere manier is dan dit gewoonweg via cookies te doen.

Kortom: google: php session tutorial login
(je mag ook zelf varieren) maar dit zou je redelijk op weg moeten helpen.
 
Vincent

Vincent

02/04/2004 12:51:00
Quote Anchor link
Ik had eerst sessions en werkte prima, maar ik vond het niks dat je steeds opnieuw moet inloggen als je explorer hebt gesloten waardoor ik dus met cookies wil werken, zodat je niet steeds opnieuw hoeft in te loggen.
 
Arend a

Arend a

02/04/2004 15:58:00
Quote Anchor link
Als je het goed doet hoef je niet steeds opnieuw in te loggen als je explorer hebt gesloten.

PHPHulp.nl gebruikt ook sessies, hier hoef je toch ook niet steeds opnieuw in te loggen? Sessies gebruiken van zichzelf ook cookies.
 
Vincent

Vincent

02/04/2004 18:15:00
Quote Anchor link
Ok, dan ga ik gewoon proberen te zorgen dat sessions beter werken dan nu.
 
Vincent

Vincent

02/04/2004 20:03:00
Quote Anchor link
Ik heb deze session van het standaard script bij login.php en hoe kan ik er dan voor zorgen dat je ingelogd blijft?

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
<?
session_start();

require("config.php");

if($submit){
$query = mysql_query("SELECT * FROM x WHERE gebruikersnaam = '$gebruikersnaam' AND wachtwoord = '$wachtwoord' AND geactiveerd = '1'");
$result = mysql_num_rows($query);

if(!$result){

$a = "Gebruikersnaam en/of Wachtwoord is/zijn incorrect. Of je bent vergeten om je account te activeren...<br><br><a href=\"?gebruikersnaam=$gebruikersnaam\">Ga terug</a>";
}

else{
while($object = mysql_fetch_object($query)){
$memberid = $object->memberid;
}

$login = 1;
session_register("login");
session_register("memberid");
header("Location: index.php");
}

?>


en op index.php
-------------------
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?
session_start();

require("config.php");

if(!$login){
?>


Niet ingelogd<br><br>
> <a href="login.php">Log in</a><br>
> <a href="aanmelden.php">Meld aan</a>

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?
}
if($login AND session_is_registered('memberid')){
?>


en dan nog een stuk code waaronder het bekijken wat voor functie gebruiker heeft en weergeven van aantal links
 
Vincent

Vincent

29/04/2004 14:11:00
Quote Anchor link
niemand die weet hoe ik kan zorgen hoe ik ingelogd blijf met bovenstaande sessions/inlog systeem?
 
Mitch X

Mitch X

29/04/2004 15:31:00
Quote Anchor link
Je zet $login in een andere pagina ... dus logisch dat je die niet kan opvragen ...
 
Vincent

Vincent

29/04/2004 16:31:00
Quote Anchor link
En hoe kan ik dat verhelpen? Login en index in 1 pagina maken? Maar als je browser sluit en opnieuw opstart moet je ook weer inloggen, is dat er dan mee verholpen?
 
Mitch X

Mitch X

29/04/2004 17:57:00
Quote Anchor link
Das ook logisch .. de sessie bestaat alleen in je browser zolang die open is. Het sluiten van de browser vernietigd de sessie.
Probeer het eens zo:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?
if($_SESSION['id'] && $_SESSION['gebruiker'])
{

// Stuff voor ingelogde ppl laten zien
}
else
{
// Inlogmenutje
}
?>
 

29/04/2004 19:09:00
Quote Anchor link
ik had mijn inlogsysteem ook gemaakt met sessies maar als ik me uitlogde en daarna terug wou inloggen kon hij de sessie niet aanmaken ofzo... (ik kwam altijd terug op login.php uit en de eerste keer werkte wel alles)

kent iemand hier een verklaring voor?
 
Rick

Rick

29/04/2004 20:56:00
Quote Anchor link
sessie niet goed weggehaald?
 

29/04/2004 21:04:00
Quote Anchor link
toch wel
(heb de code nu wel niet meer maar toch..)
ik had eerst alle velden van de sessie leeggemaakt en dan sessie gedestroyd...

in ieder geval nu werk ik enkel met database maar heeft er iemand een script zodat er na een tijd de gebruiker automatisch word afgemeld in de database (zonder sessies dus)
 
Vincent

Vincent

29/04/2004 22:41:00
Quote Anchor link
@mitch:
Een session wordt dus altijd vernietigd als browser wordt gesloten, dan is een inlogsysteem toch niet goed te maken met sessions, (op phphulp wordt dacht ik ook met sessions gewerkt en werkt prima),
of heb ik het nu mis?
 

30/04/2004 00:13:00
Quote Anchor link
PHPhulp set een cookie zodat je 90 dagen inglogt blijft. Denk jij dat een sessie dan zelfs blijft als je PC uitstaat?
Dus ja een sessie wordt dan vernietigd...
 
Vincent

Vincent

30/04/2004 11:28:00
Quote Anchor link
Maar dan heeft een inlogsysteem met sessies eigenlijk geen nut en kan ik beter overstappen op cookies.
 
Mitch X

Mitch X

30/04/2004 13:24:00
Quote Anchor link
Nee sessies vindt ik persoonlijk beter dan cookies hoor.
Mede omdat sessie serverside bewaard worden en cookies clientside waardoor iemand ze handmatig kan editen ...
 
Vincent

Vincent

30/04/2004 17:04:00
Quote Anchor link
Ja, maar als sessies steets gedestroyed worden heeft het naar mijn mening geen zin om een login systeem met cookies te hebben, omdat je dan steeds opnieuw moet inloggen.
 
Arend a

Arend a

01/05/2004 15:26:00
Quote Anchor link
Kijk eens naar de sessie manual van php.net. Er is een instelling dat een sessie na het verlaten van een sessie ook gedestroyed wordt/ of het cookie dat bij de sessie hoort verloopt op het moment dat de sessie beeindigd wordt (browser sluit). Hierdoor wordt sessies op deze manier niet handig, maar moet je even de juiste instellingen vinden.

http://www.php.net/sessions

Cookies is totaal onzinnig: sessies gebruiken ook zelf al een cookie om het sessie_id te onthouden.

Grtz,

Adje
 
Vincent

Vincent

01/05/2004 17:11:00
Quote Anchor link
Ga het nog eens proberen op :
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?
if($_SESSION['id'] && $_SESSION['gebruiker'])
{

// Stuff voor ingelogde ppl laten zien
}
else
{
// Inlogmenutje
}
?>

wat aantal posts hierboven staat. php site nog even bekeken maar werd er zo snel niet duidelijker op.
 



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.