sessie of global
Ik Heb geprobeerd een script te schrijven, waarin steeds op een volgende nieuwe pagina een nummer als variabele met een wordt opgeteld. Het mag eventueel steeds dezelfde pagina zijn, maar bij vernieuwing wordt de variabele steeds met 1 verhoogd. Met session krijg ik de variabele wel naar aan andere pagina, maar daarna valt hij "dood". Hoe kan ik het het beste aanpakken?
Met dank!
In ieder geval ga je geen gebruik maken van global variabelen. Dit is juist iets waarvoor je sessievariabelen wilt gebruiken.
maar NOOIT meer aan globals denken, ALT-F4 uit je hoofd ;)
$sessie= strip_tags($_POST['sessie']);
$sessie=$sessie+1;
session_register("sessie");
?>
<a href="login_reg2.php">hier</a> voor de volgende pagina";
Ga je daarna naar delogin_reg2.php dan is de variabele leeg en dus terug op 0.
Die pagina begint met:
<html>
<head>
</head>
<body>
Het vreemde is dat ik het zelfde script heb gebruikt om inloggers te registreren en er daarmee rechten aan te geven om delen van een database te bevragen, maar nu -in de ze simpele vorm- werkt het niet.
Je 2e pagina echo je alleen $sessie.
Op de 2e pagina bestaat die variabele niet.
echo $_SESSION['sessie']; gaat de betere kant op.
Daarnaast zie ik je nergens de variabale daadwerkelijk in je sessie zetten op pagina 1 zo snel
Joep schreef op 06.12.2007 21:07:
Hij gebruikt session_register() maar dat stamt nog uit de middeleeuwen. Weggooien die troep dus!Daarnaast zie ik je nergens de variabale daadwerkelijk in je sessie zetten op pagina 1 zo snel
Aanmaken van een sessievariabele doe je zo:
Uitlezen op welke willekeurige pagina dan ook:
of
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?PHP
session_start();
echo $_SESSION['var'];
$_session['var']=$_session['va']+1;
echo $_SESSION['var'];
?>
session_start();
echo $_SESSION['var'];
$_session['var']=$_session['va']+1;
echo $_SESSION['var'];
?>
dan blijft er steeds 1 staan in plaats van 2.
Ook krijg ik de volgende boodschap:
"Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\xampp\xampp\htdocs\eigen\scripts\session\session_2.php:12) in C:\xampp\xampp\htdocs\eigen\scripts\session\session_2.php on line 13"
In die regel staat dus: session_start();
Sorry, natuurlijk staat er geen $_session['var']=$_session['va']+1; maar $_session['var']=$_session['var']+1;
2e geval: $_SESSION['var'] bestaat niet, zelfde verhaal als hierboven. Kijk verder nog even naar de namen, dat gaat ook nog niet helemaal goed.
Dit werkt wel:
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
// Pagina 1
session_start();
$_SESSION['var'] = 1;
echo $_SESSION['var']; // Output: 1
?>
// Pagina 1
session_start();
$_SESSION['var'] = 1;
echo $_SESSION['var']; // Output: 1
?>
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
// Pagina 2
session_start();
$_SESSION['var']++; // Is hetzelfde als $_SESSION['var'] = $_SESSION['var'] + 1
echo $_SESSION['var']; // Output: 2
?>
// Pagina 2
session_start();
$_SESSION['var']++; // Is hetzelfde als $_SESSION['var'] = $_SESSION['var'] + 1
echo $_SESSION['var']; // Output: 2
?>
ps. Die foutmelding krijg je omdat er voor session_start(); nog helemaal geen output naar de browser plaatsgevonden mag hebben. Deze functie moet dus aan het begin van je script staan.
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
Heel erg bedankt! Ik ben weer bij de tijd! Hier kan ik weer mee vooruit, want het werkt inderdaad!
Graag gedaan ;)