cookies kunnen niet gecombineerd worden?

Status
Niet open voor verdere reacties.

Martijn31

Gebruiker
Lid geworden
6 sep 2009
Berichten
362
Hallo,

Ik heb een log in systeem van internet gehaald en deze aangepast er zat geen uit log pagina bij dus die heb ik er zelf bij gemaakt alleen nu komt het belangrijkste log ik in met naam: klaas pw:123 dan ben ik succesvol ingelogd dan ga ik naar beveiligd.php en dan staat er: de cookies konden niet worden gecombineerd. dan ga ik na mijn zelf gemaakte uitlog pagina om uit te loggen en vervolgens weer naar beveiligd.php dan staat er: klik om in te loggen maar bij alles wat ik doe zegt hij: de cookies konden niet gecombineerd worden.

Beveiligd.php:

PHP:
<?php

// sql connectie includen
include('contactdb.php');

// inlogpagina
$login_pagina = "login.php";

$sql = "SELECT * FROM members WHERE inlognaam='".$_COOKIE['inlognaam']."'";
$resultaat = mysql_query($sql) OR die ("Kon geen verbinding maken met MySQL");
$aantal = mysql_num_rows($resultaat);
	if ($aantal == '0') {
	// de waarde van de aanwezige inlognaam-cookie bij de bezoeker komt niet overeen met een waarde uit de database
		echo "Klik <a href=\"".$login_pagina."\"></a> om in te kunnen loggen.";
	} else {
		$login = mysql_fetch_object($resultaat);
		if ($_COOKIE['passwoord'] != $login->passwoord || $_COOKIE['inlognaam'] != $login->inlognaam) {
			echo "De cookies konden niet gecombineerd worden.";
		} else {
			hier hoort normaal de beveiligde tekst te komen?			
		}
	}

?>

loguit.php:

PHP:
<?php
include('contactdb.php');



setcookie("inlognaam", $_POST['inlognaam'], time() - 3600); 
				setcookie("passwoord", $_POST['wachtwoord'], time() - 3600);
			echo "U bent succesvol uitgelogd";
?>

weet iemand het probleem? of betekend: de cookies konden niet gecombineerd worden dat ik gewoon ben ingelogd? want als ik uit log en weer naar beveiligd.php ga dan geeft hij aan dat ik in moet loggen maar log ik in dan kunnen de cookies niet gecombineerd worden.
 
of betekend: de cookies konden niet gecombineerd worden dat ik gewoon ben ingelogd?

je kent je eigen script niet? :-)

zoals je in de code kunt zien komt die melding als aan deze IF wordt voldaan:
if ($_COOKIE['passwoord'] != $login->passwoord || $_COOKIE['inlognaam'] != $login->inlognaam) {

dus als de gegevens uit het cookie niet overeenkomen met wat er in de database staat. Dus, als je niet bent ingelogd.

Maar, je moet nooit zomaar "inlogsystemen" van het interent halen want er staan heel veel slechte tussen en dit is er een van.
Wachtwoorden zet je *NOOIT* in cookies, gewon helemaal nooit, onder geen enkele voorwaarde, helemaal nooit.

De juiste manier, en dat is ook meteen zo'n beetje de enige juiste manier, is dit:
- toon het inlog formulier
- submit het formulier met een username en wachtwoord.
- haal de userdata op uit de datbase
- controleer of het opgegeven wachtwoord overeenkomt met wat er in het formulier is meegegeven.
-- als het wachtwoord niet overeenkomt; toon een bericht dat de gegevens niet kloppen (vertel niet wat er niet klopt, alleen dat het niet klopt)
-- als het wachtwoord wel klopt, zet dan in de session een variabele genaamd "ingelogd" op 1.

- bij het uitloggen zet je in de session de variabele "ingelogd" op 0. (En dus niet een session_destroy())

In de session hoef je dus in principe, voor low-security zaken, helemaal geen verwijzing naar de user te maken. het kan, en het is handig, maar het hoeft niet. het feit dat de user het sessionid heeft is al genoeg.
Voor zaken die veiliger moeten zijn moet je je echt even verdiepen in beveiliging want er zijn duizend dingen om rekening mee te houden.
 
Heb het inlogscript van internet geplukt bij nader inzien ook erg onveilig.
ben met dat hele script gestopt

Toch hartelijk bedankt

p.s sorry voor de late reactie.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan