Fout? Cookie? Snap het niet..

Status
Niet open voor verdere reacties.

XenomX

Gebruiker
Lid geworden
27 apr 2002
Berichten
822
Ik heb een login op mijn website mbv cookies, als ik nu wil uitloggen blijft de pagina maar laden, ik kan dan ook nergens meer komen, bijvoorbeeld index.php?content=Login doet het dan niet meer, hij blijft de pagina maar laden, doe ik gewoon login.php dan opent hij de pagina, log ik in, en doet alles het weer.

Dit is de code om uit te loggen.
PHP:
setcookie("session", "", time()+9999999);

en deze voor het inloggen.
PHP:
$sql = "SELECT * FROM users WHERE username='$username' AND password='$password'";

$query = mysql_query($sql);
$result = mysql_num_rows($query);

	if ($result=="1"){
	$session = session_id();
	$session = md5(microtime($session));

setcookie("session", $session, time()+9999999);

Ook heb ik vaak het probleem dat ik ingelogd ben als niemand, gebruikersnaam, user_id etc. zijn dan allemaal leeg, maar hij zegt wel dat ik ingelogd ben en kan dan gewoon op alle pagina's komen ook op de admin pagina's.

Ik snap het probleem zelf ook niet helemaal dus ik weet niet of jullie aan deze informatie genoeg hebben, anders roep je maar.

Bij voorbaat dank, :thumb:
 
Ik heb ook eens geprobeerd om met cookies beveiligde pagina te maken, maar dit gaat in mijn ogen heel erg moeilijk. Probeer het eens met sessie variabelen.

Voorbeeld:

PHP:
session_start() ;
$sql = "SELECT * FROM users WHERE username='$username' AND password='$password'";

$query = mysql_query($sql);
$result = mysql_num_rows($query);

    if ($result=="1"){
      $_SESSION['username'] == $username ;
      $_SESSION['password'] == $password ;
      $_SESSION['ingelogd'] == true ;
    }

Dan kan je op de andere pagina's kijken via de $_SESSION['ingelogd'] variabel of er een gebruiker ingelogd is.

Als je dan een gebruiker af wil melden dan doe je:

PHP:
  $session_destroy();

Suc6, Cotje
 
Is dit niet onveiliger?

En volgens mij komt dit een beetje op het zelfde neer, of niet?

:thumb:
 
Geplaatst door XenomX
Is dit niet onveiliger?
Juist niet. Zie ook mijn handleiding in de Tips en Handleidingen sectie over een veilig login systeem met sessies.
En volgens mij komt dit een beetje op het zelfde neer, of niet?
Ongeveer, met het verschil dat sessies op de server worden opgeslagen en cookies op de cliënt's pc. Dit houdt dus in dat sessies niet (zonder de server te hacken enzo) wijzigbaar zijn zonder dat er een script o.i.d. wordt gebruikt.
 
PHP:
setcookie("session", "", time()+9999999);

Volgens mij moet je 'n tijd in het verleden geven wil je de cookie verwijdert hebben.

PHP:
setcookie ( 'session', '', time () - 10 );
 
setcookie ( 'session', '', time () - 10 );

Nee, hetzelfde probleem.

Ik heb nu een iets oudere versie van de site gedownload, die ik nog online had staan, hierbij werkt de login wel prima, alleen ik kan niks vinden wat er anders is dan de nieuwere site.

* Update

Fout gevonden, hij bleef in een loop hangen door de pagina die de hits, ip-adres etc. van de gebruiker opslaat in de database, maar als je dan niet ingelogt bent blijft hij het x keren proberen.

:thumb:
 
PHP:
    if ($result=="1"){

      $_SESSION['username'] == $username ;

      $_SESSION['password'] == $password ;

      $_SESSION['ingelogd'] == true ;

    }

Dat werkt btw ook niet
 
PHP:
if ($result==1){

      $_SESSION['username'] == $username ;

      $_SESSION['password'] == $password ;

      $_SESSION['ingelogd'] == true ;

    }

Moet inderdaad zonder de "" om de 1. Is namelijk geen string variabel..

Dan zou t moeten werken, zo beveilig ik ook mijn pagina's via PHP.

Cotje
 
Geplaatst door Cotje
PHP:
if ($result==1){

      $_SESSION['username'] == $username ;

      $_SESSION['password'] == $password ;

      $_SESSION['ingelogd'] == true ;

    }

Moet inderdaad zonder de "" om de 1. Is namelijk geen string variabel..

Dan zou t moeten werken, zo beveilig ik ook mijn pagina's via PHP.

Cotje
Sommige mensen.. echt..

Edit: Goed, ten eerste zal het waarschijnlijk wel werken. Ten tweede, wat heeft 'n / jou beveiliging met iets als dit te maken. Ten derde doelde ik op wat er IN de if lus staat. Niet meteen stoppen met zoeken zodra je denkt de fout gevonden te hebben :confused:
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan