php wist automaties sessions? (ik word zomaar uitgelogt)

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Christian k

christian k

14/02/2014 17:32:22
Quote Anchor link
hallo allemaal,
ik heb een loginscript waar ik na het inloggen dit in een session stop:
- je gesalte ip
- een random session_id
- je user_id
- je gesalte voornaam
- een Key die met de get van pagina naar pagina word gestuurd

vervolgens controleer ik of dit ook in de database staat en dan blijf je op de pagina
dit werkte prima in apache2 onder ubuntu via localhost
maar nu ik het heb gehost word ik zomaar uitgelogd
soms word ik als ik mijn inlog gegevens invul en op submit klik gelijk weer uitgelogd
met de melding je moet ingelogd zijn om deze pagina te bekijken
maar het rare is als ik de volgende dag weer probeer in te loggen lukt het gewoon
(ik heb dan niks aan het script verandert)
en als ik dan ben ingelogd word ik na een tijdje gewoon uitgelogd dat is eigenlijk altijd het geval

dat is dus het probleem dus ik het de controle pagina eerst eens helemaal
weggehaald toen had ik geen problemen
maar toen ik de pagina weer toevoegde had ik hetzelfde weer
dus toen heb ik het script verandert naar een script die alleen
controleert of de sessions bestaan en die niet controleert of de sessions
kloppen met die in de database
dit is mijn script nu:
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
<?php
session_start();
include_once 'uwx3g.php';
include_once 'connect.php';
$ipj     = sha1(salt($_SERVER['REMOTE_ADDR']));
$ips     = mysqli_real_escape_string($con, $_SESSION['ip']);

if($ipj == $ips  && isset($_SESSION['email']) && isset($_SESSION['session_id']) && isset($_SESSION['user_id']) && isset($_SESSION['key']))
{

     // hier moet de database controle komen
     session_regenerate_id(true);
}

else
{
     header('Refresh: 0; url=index.php?error=001');
}

?>

weet iemand wat ik fout doe?
of ligt het aan mijn host wat ik eigenlijk wel denk
want in ubuntu werkt het zonder problemen
want daar werkt het script (met database controle) zonder problemen.

sorry voor dit lange verhaal,
ik wist niet hoe ik het kort kon uitleggen.

alvast bedankt!
 
PHP hulp

PHP hulp

17/11/2024 19:53:10
 
Obelix Idefix

Obelix Idefix

15/02/2014 09:52:17
Quote Anchor link
Hoe betrouwbaar is het om een IP-adres te gebruiken?
Heb je al eens gekeken wat er in $ipj en $ips zit (als je wordt uitgelogd)?
Na hoeveel tijd word je (automatisch) ingelogd?
 
Christian k

christian k

15/02/2014 09:58:14
Quote Anchor link
Dat verschild maar ik blijf nooit langer dan 1 uur ingelogd
meestal naar een minuut of 10 20 maar soms word ik direct al uitgelogd
Na het inloggen als ik op submit geklikt heb maar dat komt niet heel vaak voor maar toch
 
Obelix Idefix

Obelix Idefix

15/02/2014 10:45:40
Quote Anchor link
Obelix en Idefix op 15/02/2014 09:52:17:
Hoe betrouwbaar is het om een IP-adres te gebruiken?
Heb je al eens gekeken wat er in $ipj en $ips zit (als je wordt uitgelogd)?
Gewijzigd op 15/02/2014 11:05:42 door Obelix Idefix
 
Christian k

christian k

15/02/2014 10:53:21
Quote Anchor link
Ja dat is ook sha1(salt($_SERVER['REMOTE_ADDR']));
 
Obelix Idefix

Obelix Idefix

15/02/2014 11:05:22
Quote Anchor link
Nee, niet wat je er in stopt, maar wat is de waarde van de variabelen op het moment dat je wordt uitgelogd? Die worden immers vergeleken en mogelijk dat het daar fout gaat.

Obelix en Idefix op 15/02/2014 09:52:17:
Hoe betrouwbaar is het om een IP-adres te gebruiken?
 
Ivo P

Ivo P

15/02/2014 11:39:07
Quote Anchor link
Verandert jouw ip adres?
Zit er een soort van proxy voor de server die in feite de REMOTE_ADDR vult?

Wat zegt echo $_SERVER['REMOTE_ADDR'] en lijkt dat op http://watismijnip.nl/ ?
 
Christian k

christian k

15/02/2014 12:15:19
Quote Anchor link
@ivop volgende mij verandert mijn ip niet ik gebruik geen tor en ik kan me ook niet herinneren
dat ik daar voor heb gezorgt

maar $_SERVER['REMOTE_ADDR'] zegt hetzelfde als http://watismijnip.nl/


@Obelix en Idefix
ik heb mijn script verandert naar:
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
<?php
session_start();
include_once 'uwx3g.php';    // pagina voor de functie salt
include_once 'connect.php';  // pagina voor de connectie met de database ($con)    

$ipj     = sha1(salt($_SERVER['REMOTE_ADDR']));
$ips     = mysqli_real_escape_string($con, $_SESSION['ip']);

if($ipj == $ips  && isset($_SESSION['email']) && isset($_SESSION['session_id']) && isset($_SESSION['user_id']) && isset($_SESSION['key']))
{

     session_regenerate_id(true);
}

else
{
     echo 'Je bent uitgelogt!<br>je ip nu: ' . $ipj . ' <br> je ip in de session: ' . $ips;
}

?>

en na een tijdje op knopen op mijn site druken kreeg ik dit te zien:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
Je bent uitgelogt!
je ip is nu: c0671ac54b7000168092e1b96979795009b28503
je ip in de session:


de sessie is leeg
en alle andere sessions ook
Gewijzigd op 15/02/2014 12:17:06 door christian k
 



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.