Ik heb een pagina met COOKIES en die werkt goed. Nu wil ik die pagina includen in een andere pagina en dan werken de COOKIES niet meer. Ik weet dat COOKIES altijd moeten worden geplaatst voordat de header verzonden wordt en dat dat dus problemen geeft met include. Maar wat is nu de goede manier om COOKIES te kunnen gebruiken in een included pagina? Als ik alle COOKIES op de hoofdpagina moet gaan zetten met IF-statements en variables (via GET) in de link om de info door te geven, lijkt mij geen mooie oplossing.

Dan nog even de code ter illustratie...

Hoofdpagina:

<html>
<head>....</head>
<body>
...Hier staat een menu en wat andere dingen...
<?php include("eenpaginametcookies.php"); ?>
</body>
</html>


eenpaginametcookies:

<?php
if ($submit) {
setcookie ("Naam", "$var1", time() + 18748800);
setcookie ("Code", "$var2", time() + 18748800);
}
?>
<html>
<head>....</head>
<body>
...Hier staat een formulier die cookies gebruikt en wat andere dingen...
</body>
</html>
Bedankt voor alle reacties, maar dit werkt nog niet allemaal. Misschien begrijp ik jullie verkeerd, of misschien begrijpen jullie mijn gedachtegang niet. Waarschijnlijk begrijp ik jullie gewoon verkeerd en ligt het aan mij dat ik nog te weinig ervaring heb met PHP om het principe te begrijpen. Dus dan moet de uitleg echt expliciet neergezet worden. Anyhow, om verdere miscommunicatie te verhelpen, heb ik het hele probleem uitgeschreven.

**************************
*Oude situatie (die niet werkt)*
**************************

Hoofdpagina:

<html>
<head>
<title>test</title>
</head>

<body>
<?php
include("included.php");
?>
</body>
</html>

Included:
<?php
$Naam = $_COOKIE['Naam'];
$Code = $_COOKIE['Code'];

$var1 = $_POST['var1'];
$var2 = $_POST['var2'];
$submit = $_POST['submit'];

if ($submit)
{
setcookie ("Naam", "$var1", time() + 18748800);
setcookie ("Code", "$var2", time() + 18748800);

echo "<br>Naam: $var1, Code: $var2<p>";
}
?>

<form action="<?php echo "$php_self"; ?>" method="post">
Naam: <input name="var1" type="text"><br>
Code: <input name="var2" type="text"><br>
<input name="submit" type="submit" value="Submit">
</form>
<p>
<?php
echo "<br>Naam: $Naam, Code: $Code";
?>

***************************
*Nieuwe situatie (die wel werkt)*
***************************

Hoofdpagina:
<?php
$Naam = $_COOKIE['Naam'];
$Code = $_COOKIE['Code'];

$var1 = $_POST['var1'];
$var2 = $_POST['var2'];
$submit = $_POST['submit'];

if ($submit)
{
setcookie ("Naam", "$var1", time() + 18748800);
setcookie ("Code", "$var2", time() + 18748800);

echo "<br>Naam: $var1, Code: $var2<p>";
}
?>

<html>
<head>
<title>test</title>
</head>

<body>
<?php
include("included.php");
?>
</body>
</html>

Included:

<form action="<?php echo "$php_self"; ?>" method="post">
Naam: <input name="var1" type="text"><br>
Code: <input name="var2" type="text"><br>
<input name="submit" type="submit" value="Submit">
</form>
<p>
<?php
echo "<br>Naam: $Naam, Code: $Code";
?>

*************
*Het probleem*
*************

Bij de nieuwe situatie heb ik het onderstaande op de hoofdpagina gezet:
<?php
$Naam = $_COOKIE['Naam'];
$Code = $_COOKIE['Code'];

$var1 = $_POST['var1'];
$var2 = $_POST['var2'];
$submit = $_POST['submit'];

if ($submit)
{
setcookie ("Naam", "$var1", time() + 18748800);
setcookie ("Code", "$var2", time() + 18748800);

echo "<br>Naam: $var1, Code: $var2<p>";
}
?>

Maar dit wil ik niet op de hoofdpagina. Dit wil ik in mijn include hebben.

Dus...

Hoe kan ik met zo min mogelijk code mijn OUDE situatie aanpassen, zodat die wel werkt, zonder hele lappen code van mijn include naar mijn hoofdpagina te kopiƫren?

EDIT:
Hier is de link voor het bovenstaande voorbeeld: http://www.alternativecreation.net/test.php

Reageren