sessie of global

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Puntapuisomos

puntapuisomos

06/12/2007 20:16:00
Quote Anchor link
Kan iemand me helpen met het volgende:
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!
 
PHP hulp

PHP hulp

07/05/2024 21:56:48
 
Joren de Wit

Joren de Wit

06/12/2007 20:19:00
Quote Anchor link
Hoe bedoel je 'valt hij dood'? Stukje script?

In ieder geval ga je geen gebruik maken van global variabelen. Dit is juist iets waarvoor je sessievariabelen wilt gebruiken.
 
Joep

Joep

06/12/2007 20:25:00
Quote Anchor link
Sessie, url toevoeging, POST...
maar NOOIT meer aan globals denken, ALT-F4 uit je hoofd ;)
 
Puntapuisomos

puntapuisomos

06/12/2007 20:36:00
Quote Anchor link
Vanuit het eerste script krijgt de variabele 1 mee. Ik heb op de tweede pagina het volgende:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4

$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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
session_start();
?>

<html>
<head>
</head>
<body>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
echo $sessie;
?>


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.
 
Joep

Joep

06/12/2007 21:07:00
Quote Anchor link
Eehm zijn wat kleine dingetjes vreemd hier:
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
 
Joren de Wit

Joren de Wit

06/12/2007 21:13:00
Quote Anchor link
Joep schreef op 06.12.2007 21:07:
Daarnaast zie ik je nergens de variabale daadwerkelijk in je sessie zetten op pagina 1 zo snel
Hij gebruikt session_register() maar dat stamt nog uit de middeleeuwen. Weggooien die troep dus!

Aanmaken van een sessievariabele doe je zo:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
session_start();
$_SESSION['var'] = 'waarde';
?>

Uitlezen op welke willekeurige pagina dan ook:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
session_start();
echo $_SESSION['var'];
?>
 
Puntapuisomos

puntapuisomos

06/12/2007 21:50:00
Quote Anchor link
Mijn dank! Ik ben ook een oude man, dus scripts uit de middeleeuwen zijn me niet vreemd. Maar ik leer er weer van. Wat nu inderdaad werkt is de echo van de variabele, maar als ik dan het volgende gebruik:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?PHP
session_start();
echo $_SESSION['var'];
$var=$var+1;
echo $var;
?>

of
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?PHP
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();
 
Puntapuisomos

puntapuisomos

06/12/2007 21:52:00
Quote Anchor link
Sorry, natuurlijk staat er geen $_session['var']=$_session['va']+1; maar $_session['var']=$_session['var']+1;
 
Joren de Wit

Joren de Wit

06/12/2007 21:55:00
Quote Anchor link
1e geval: $var bestaat nog niet, dus wat je daar eigenlijk doet is NULL+1 en dat is 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)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
// Pagina 1
session_start();
$_SESSION['var'] = 1;

echo $_SESSION['var']; // Output: 1
?>

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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
?>


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
 
Puntapuisomos

puntapuisomos

06/12/2007 22:01:00
Quote Anchor link
Heel erg bedankt! Ik ben weer bij de tijd! Hier kan ik weer mee vooruit, want het werkt inderdaad!
 
Joren de Wit

Joren de Wit

06/12/2007 22:03:00
Quote Anchor link
Graag gedaan ;)
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.