Forum » Server-Side scripting » Sessies login
R. Jipping
Berichten: 1598
avatar
Offline Stuur privebericht
Beste leden,

Heb net een nieuwe login en register geschreven maar ik dacht ik doe inplaats van cookkies is een keer om goed te leren sessies. Maar, nu weet ik niet hoe ik kan controlleren op elke pagina als ze wel ingelogd zijn.

Onder de inlog staat dan wel:
$_SESSION['login']=$login;

Maar, hoe roep ik dat weer op in andere scripts om te kijken als het is ingevuld?

Groetjess
04-06-2010 22:05
Dit topic is 226 keer bekeken door 51 verschillende leden
Reacties op: "Sessies login"
1
Berichten: 158
avatar
Offline Stuur privébericht
Hier een simpel voorbeeld dat checkt of de Sessie login bestaat. En het script controleert of de Sessie login niet leeg is.

Code | Selecteer Alles
minimaliseren
1
2
3
4
5
6
7
8
if(!empty($_SESSION['login'])) 
{
  die(
'Fout, Je bent niet ingelogd');
}
else
{
 echo (
'U bent ingelogd');
}


Ik weet niet of het script helemaal klopt. Aangezien ik het eventjes snel schrijf.

Succes.
04-06-2010 22:30
R. Jipping
Berichten: 1598
avatar
Offline Stuur privébericht
Als ik ingelogd ben en uitgelogd krijg ik altijd de melding van Fout, je bent niet ingelogd.

zo logt hij uit:
Code | Selecteer Alles
minimaliseren
1
2
3
4
5
<?
session_start
();
unset(
$_SESSION['login']);
echo (
"u bent succesvol uitgelogd!");
?>

zo logt hij in:
Code | Selecteer Alles
minimaliseren
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
<?
session_start
();
require(
"config.php"); 

if(isset(
$_POST['login'], $_POST['wachtwoord']))
{   
    
$login mysql_real_escape_string($_POST['login']);
    
$wachtwoord sha1(mysql_real_escape_string($_POST['wachtwoord']));

    
$rows mysql_query("SELECT * FROM gebruiker WHERE gebruiker_naam = '".$login."' AND gebruiker_wachtwoord = '".$wachtwoord."' LIMIT 1");
    
$numrows mysql_num_rows($rows);

    if(
$numrows == '1')
    {
        
$row mysql_fetch_assoc($rows);
        
        
$login $row['login'];
        
$wachtwoord $row['wachtwoord'];
        
        echo 
"U bent succesvol ingelogd";
        
        
$_SESSION['login'] = $login;
    }
    else
    {
        die(
"Gebruikersnaam of wachtwoord is verkeerd!");
    }
}
?>


en boven genoemd script dus om na te kijken als het klopt. Maar, in welke status dan ook er blijft altijd staan dat die offline is.

Iemand idee?n?
04-06-2010 22:37
Berichten: 258
avatar
Offline Stuur privébericht
Bij uitloggen moet je geen session_start(); gebruiken, maar session_stop();

Code | Selecteer Alles
minimaliseren
1
2
3
4
5
<?
session_stop
();
unset(
$_SESSION['login']);
echo 
"U bent succesvol uitgelogd!";
?>
05-06-2010 10:29
R. Jipping
Berichten: 1598
avatar
Offline Stuur privébericht
was al opgelost.

Toch bedankt
05-06-2010 10:35
nyan nyan nyan nyan
Berichten: 2076
avatar
Offline Stuur privébericht
@Cruelty Er is - volgens mij - geen functie genaamd session_stop()... Wellicht dat je session_destroy bedoelde?
@RiiCky Op welke manier heb je het opgelost? Session_destroy of andere data unsetten?
05-06-2010 10:38
Vreemd
Berichten: 1246
avatar
Offline Stuur privébericht
Quote: RiiCky

Als ik ingelogd ben en uitgelogd krijg ik altijd de melding van Fout, je bent niet ingelogd.


Ik neem aan dat het "uitgelogd" "uitlog" moet zijn?
Ik zou niet weten hoe tegelijk in- en uitgelogd kan zijn namelijk...
Je moet ook alleen op de plaatsen controleren of iemand is ingelogd waar je wilt dat ze maar een van beiden mogen zijn om een bepaald iets te zien.

Quote: Cruelty

Bij uitloggen moet je geen session_start(); gebruiken, maar session_stop();


Nee, je moet eerst de session starten voordat je er dingen in kunt gaan wijzigen...
session_stop() bestaat ook niet eens.
05-06-2010 10:41
R. Jipping
Berichten: 1598
avatar
Offline Stuur privébericht
$login = $row['login'];
$wachtwoord = $row['wachtwoord'];

is veranderd naar post
05-06-2010 10:54
Berichten: 258
avatar
Offline Stuur privébericht
Ik bedoelde session_destroy() ik typte iets te snel, ik was namelijk bezig met iets .
05-06-2010 11:38
De causeur!
Berichten: 504
avatar
Offline Stuur privébericht
Tip voor de TS controleer ook of het IP nog steeds hetzelfde is, dus maak ook een sessie aan met het IP en controleer deze.
06-06-2010 19:31
Reageer op: "Sessies login"
1
Je kan niet reageren omdat je niet bent ingelogd. Inloggen of Aanmelden