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>
de eenvoudigste manier is maar 1 keer je output echo-en...
Je maakt bijvoorbeeld een serie bestanden aan, die allemaal de output opslaan in een variabele $output, en die output je dan via:
<?php
echo $output;
?>
helemaal onderin je bestand, dus na alle includes...
Eerst logische acties afhandelen en dan pas output naar de browser. Verder klopt in jouw voorbeeld de html niet omdat je een complete html-pagina include midden in een andere complete html-pagina.
Verder klopt in jouw voorbeeld de html niet omdat je een complete html-pagina include midden in een andere complete html-pagina.
De pagina staat nog als "stand alone". Ik moet de pagina inderdaad nog aanpassen.
Rens Admiraal schreef op 29.09.2008 12:39
de eenvoudigste manier is maar 1 keer je output echo-en...
Je maakt bijvoorbeeld een serie bestanden aan, die allemaal de output opslaan in een variabele $output, en die output je dan via:
<?php
echo $output;
?>
helemaal onderin je bestand, dus na alle includes...
SanThe schreef op 29.09.2008 12:44
Eerst logische acties afhandelen en dan pas output naar de browser.
Uhm... Kunnen jullie dat misschien met een klein voorbeeld toelichten, please? Ik ben nog niet helemaal thuis in (het principe) van PHP. ^_^
Ik heb het even uit zitten proberen i.c.m. COOKIES. Maar het wil nog niet echt werken. Misschien zie ik iets simpel over het hoofd. Maar hoe krijg ik dit nu werkend met COOKIES? Alvast bedankt.
Niet Bumpen:
Twee of meer keer achter elkaar in een topic posten heet bumpen. Bumpen is pas na 24 uur toegestaan en kan een reden zijn voor de admins en moderators om een topic te sluiten. Gebruik indien nodig de knop om je tekst aan te passen.
Als ik het onderstaande uitvoer, dan werkt dat wel. Maar de header wordt nog steeds verzonden voordat ik mijn COOKIES kan plaatsen. Waarschijnlijk begrijp ik het principe niet achter het onderstaande idee.
Hoofdpagina:
<?php
// Header zaken
// Start content
$output = "Dit is de start output\n";
// Includes
echo $output;
?>
Include:
<?php
$output .= "En dit is een volgende regel";
?>
Waar/hoe moet ik mijn COOKIES plaatsen (declareren) in het bovenstaande voorbeeld?
Bovenaan de pagina het volgende plaatsen kan ook helpen:
<?php session_start(); ?>
Uitleg:
session_start() creates a session or resumes the current one based on the current session id that's being passed via a request, such as GET, POST, or a cookie.
If you want to use a named session, you must call session_name() before calling session_start().