login systeem met sessie werkt niet goed
simpel een gebruikers naam en wachtwoord, geen aanpassingen mogelijk voor de gebruikers, alleen hun statistieken toevoegen via een formulier en uitlezen .
de gegevens staan in een database.
ik maak gebruik van sessies om een aantal gegevens mee te nemen naar een andere pagina.
nu krijg ik van velen de klacht dat ze steeds terug gaan naar de inlog pagina ( ze worden dus uitgelogd)
het gebeurt niet altijd en niet altijd bij dezelfde handeling.
is dit een nadeel van het gebruik van sessies? is het beter om gebruik te maken van cookies?
hoe zou ik de sessies moeten om zetten naar cookies?
alvast dank voor het meedenken.
Een cookie en een sessie zijn vrijwel het zelfde, echter een sessie word verwijderd bij het sluiten van de browser, en een cookie blijft bestaan zolang als je aangeeft.
Ik zou eens kijken of er misschien ergens een sessie timeout ingesteld/verlengt kan worden, of dat je misschien ergens een session_start(); bent vergeten.
Gr. Robert
Robert Wazzaa op 22/04/2013 22:29:14:
Beste Pascal,
Een cookie en een sessie zijn vrijwel het zelfde, echter een sessie word verwijderd bij het sluiten van de browser, en een cookie blijft bestaan zolang als je aangeeft.
Een cookie en een sessie zijn vrijwel het zelfde, echter een sessie word verwijderd bij het sluiten van de browser, en een cookie blijft bestaan zolang als je aangeeft.
Met als belangrijk detail dat cookies opgeslagen worden bij de bezoeker, en de data in sessies op de server, welke met een cookie bij de bezoeker is gekoppeld.
Een sessie wordt ook bij een inactiviteit van 28 minuten ook weer verwijderd.
Gewijzigd op 22/04/2013 23:17:59 door - Ariën -
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?php
// session.inc.php
session_start();
ini_set('session.save_path', 'localhost');
ini_set('session.name', 'hash'); # try to hide the session name..
if (!isset($_SESSION['ip']))
$_SESSION['ip'] = $_SERVER['REMOTE_ADDR'];
if ($_SESSION['ip'] != $_SERVER['REMOTE_ADDR']);
trigger_error("Session Hijacking detected!", E_USER_WARNING);
?>
// session.inc.php
session_start();
ini_set('session.save_path', 'localhost');
ini_set('session.name', 'hash'); # try to hide the session name..
if (!isset($_SESSION['ip']))
$_SESSION['ip'] = $_SERVER['REMOTE_ADDR'];
if ($_SESSION['ip'] != $_SERVER['REMOTE_ADDR']);
trigger_error("Session Hijacking detected!", E_USER_WARNING);
?>
mijn index pagina kijkt of gebruiker is ingelogd,
als dat niet zo is wordt ie doorgestuurd naar de login pagina,
is de gebruiker wel ingelogd, dan laat ie de gegevens van de gebruiker zien en kan de gebruike middels een knop naar de invoerpagina gaan om de gegevens toe te voegen.
de gebruiker kan wel inloggen, maar daarna is het verschillend, of bij het opvragen van de gegevens wordt hij er al uit gegooid, of na het opvragen van de toevoeg pagina, of na het invoeren van de gegevens en het drukkern op de knop om naar de database te schrijven, en soms gaat het ook helemaal goed en werkt alles zoals het hoort.
een timeout kan ik niet vinden. en het gebeurt binnen enkele seconden tot minuten, er gaat geen half uur over heen
Pascal Wetzels op 23/04/2013 13:10:26:
Code (php)
1
2
3
4
2
3
4
<?php
if ($_SESSION['ip'] != $_SERVER['REMOTE_ADDR']);
trigger_error("Session Hijacking detected!", E_USER_WARNING);
?>
if ($_SESSION['ip'] != $_SERVER['REMOTE_ADDR']);
trigger_error("Session Hijacking detected!", E_USER_WARNING);
?>
Deze check zal op mobieltjes dus (bijna) altijd een error geven.
Mobieltjes wisselen van ip-nummers tijdens connecties met internet.
ik gebruikt thuis gewoon mijn laptop
mijn provider (net als vele anderen) heeft een dynamisch ip adres.
maar ik krijg geen error, ik kom weer op de inlog pagina uit en moet opnieuw inloggen
Gewijzigd op 23/04/2013 15:14:45 door - SanThe -