php-file plaatst geen cookie

Status
Niet open voor verdere reacties.

mariannevanh

Terugkerende gebruiker
Lid geworden
14 dec 2004
Berichten
2.137
Ik heb de registratie-en-login-script van www.html-site.nl aangepast aan mijn eigen database. Ik kan prima inloggen, maar op de een of andere manier wordt er geen cookie geplaatst. De cookie-instellingen is mijn browser staan normaal ingesteld (accepteert alle cookies).
Wat kan er mis zijn? Hierbij het begin van de php-file.
Code:
<?php

/*
Inlog- & registratiescript door Erwin � 2005 -> www.html-site.nl
Voor uitgebreide uitleg, tips, uitbreidingen of hulp met dit script
en het complete downloadbare zip-bestand kun je kijken op http://www.html-site.nl/
*/


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

// waar moet de bezoeker heengestuurd worden nadat hij/zij succesvol ingelogd is ?
$redirect_pagina = "zoeken2.php";

if ($_GET['actie'] == 'inloggen') {
// als inlogformulier is verstuurd

	$sql = "SELECT * FROM users WHERE username='".$_POST['username']."'";
    $resultaat = mysql_query($sql) OR die ("Kon geen verbinding maken met MySQL");
	$aantal = mysql_num_rows($resultaat);
	if ($aantal == '0') {
	// als er geen resultaat is gevonden
		echo "De door u ingevulde username bestaat niet.";
	} else {
    $login = mysql_fetch_object($resultaat);
    $login->password;
    $login->username;
		if($_POST['password'] == $login->password) {
		// als gegevens kloppen met gegevens uit database, cookies setten en doorsturen!
				setcookie("username", $_POST['username'], time() + 60*60); // cookie blijft 60 keer 60 seconden bestaan
				setcookie("password", $_POST['passwoord'], time() + 60*60);
			echo "U bent succesvol ingelogd, een moment.. <META HTTP-EQUIV=\"REFRESH\" CONTENT=\"2; URL=".$redirect_pagina."\">";
		} else {
			echo "Uw inloggegevens kloppen niet, klik <a href=\"".$_SERVER['PHP_SELF']."\">hier</a> om nogmaals te proberen.";
		}
	}
} else if ($_GET['actie'] == 'registreren') {
 
Ik heb de registratie-en-login-script van www.html-site.nl aangepast aan mijn eigen database. Ik kan prima inloggen, maar op de een of andere manier wordt er geen cookie geplaatst. De cookie-instellingen is mijn browser staan normaal ingesteld (accepteert alle cookies).
Wat kan er mis zijn? Hierbij het begin van de php-file.
Code:
<?php

/*
Inlog- & registratiescript door Erwin � 2005 -> www.html-site.nl
Voor uitgebreide uitleg, tips, uitbreidingen of hulp met dit script
en het complete downloadbare zip-bestand kun je kijken op http://www.html-site.nl/
*/


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

// waar moet de bezoeker heengestuurd worden nadat hij/zij succesvol ingelogd is ?
$redirect_pagina = "zoeken2.php";

if ($_GET['actie'] == 'inloggen') {
// als inlogformulier is verstuurd

	$sql = "SELECT * FROM users WHERE username='".$_POST['username']."'";
    $resultaat = mysql_query($sql) OR die ("Kon geen verbinding maken met MySQL");
	$aantal = mysql_num_rows($resultaat);
	if ($aantal == '0') {
	// als er geen resultaat is gevonden
		echo "De door u ingevulde username bestaat niet.";
	} else {
    $login = mysql_fetch_object($resultaat);
    $login->password;
    $login->username;
		if($_POST['password'] == $login->password) {
		// als gegevens kloppen met gegevens uit database, cookies setten en doorsturen!
				setcookie("username", $_POST['username'], time() + 60*60); // cookie blijft 60 keer 60 seconden bestaan
				setcookie("password", $_POST['passwoord'], time() + 60*60);
			echo "U bent succesvol ingelogd, een moment.. <META HTTP-EQUIV=\"REFRESH\" CONTENT=\"2; URL=".$redirect_pagina."\">";
		} else {
			echo "Uw inloggegevens kloppen niet, klik <a href=\"".$_SERVER['PHP_SELF']."\">hier</a> om nogmaals te proberen.";
		}
	}
} else if ($_GET['actie'] == 'registreren') {

Hoe haal je de cookie op?
 
Ik kijk in de directory waar mijn systemen (zowel Windows als Linux) de cookies bewaart.
 
Huh?

Cookies opvragen doe je gewoon door $_COOKIE['cookie'];.
 
het kan ook zijn dat je gegevens niet helemaal kloppen waardoor je script niet komt aan het gedeelte van de cookies, het is trouwens geen veilig script, wachtwoorden in cookies zetten enz

dit is beter:
PHP:
<?php
session_start();

// als het formulier wordt verzonden
if (isset($_POST['login']))
{
$_SESSION['naam'] = $_POST['naam'];
$_SESSION['pass'] = $_POST['pass'];
}

// als men nog niet is ingelogd zijn deze waardes leeg en zal men het formulier zien
if ((!isset($_SESSION['naam'])) || (!isset($_SESSION['pass'])))
{
echo "<form method='POST'>
<input type='text' name='naam'>
<input type='password' name='pass'>
<input type='submit' name='login'></form>";
}

// als deze wel zijn ingevuld, controleren voor correcte gegevens
else
{
if ($_SESSION['naam'] == 'naam1' && $_SESSION['pass'] == 'pass1')
{
//pagina voor gebruiker1
echo "gebruiker1";
}
else if ($_SESSION['naam'] == 'naam2' && $_SESSION['pass'] == 'pass2')
{
//pagina voor gebruiker2
echo "gebruiker2";
}
else if ($_SESSION['naam'] == 'naam3' && $_SESSION['pass'] == 'pass3')
{
//pagina voor gebruiker3
echo "gebruiker3";
}

// als geen van de gegevens correct zijn wordt terug het formulier getoond
else
{
echo "u bent niet correct ingelogd<br>";
echo "<form method='POST'>
<input type='text' name='naam'>
<input type='password' name='pass'>
<input type='submit' name='login'></form>";
}
}
?>
naam1, pass 1 enz kan aangepast worden, en men kan op deze manier zoveel gebruikers toevoegen als men wil, om uit te loggen op de pagina een linkje zetten naar logout.php met de volgende code:
PHP:
<?php
session_start();
session_destroy();
?>
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan