Bekijk Volledige Versie : Form-variabele opslaan in sessie-variabele (PHP)
Paul van der Vlis
16/10/03, 19:15
Hoi,
Ik ben aan het experimenteren met sessies in PHP. Ik wil graag een
variabele die ik in een form intik in een sessie-variabele bewaren.
Dit probeer ik in eerste instantie met POST, maar op de volgende pagina
na een session_start() geeft hij opeens niet meer de inhoud van de
POST-variabele, dus kan ik niets toewijzen...
Wie weet de juiste manier om variabelen uit een form op te slaan in een
sessie-variabele?
Groet,
Paul van der Vlis.
Daniel Tryba
16/10/03, 19:30
Paul van der Vlis <paul@vandervlis.nl> wrote:
> Ik ben aan het experimenteren met sessies in PHP. Ik wil graag een
> variabele die ik in een form intik in een sessie-variabele bewaren.
>
> Dit probeer ik in eerste instantie met POST, maar op de volgende pagina
> na een session_start() geeft hij opeens niet meer de inhoud van de
> POST-variabele, dus kan ik niets toewijzen...
Sorry maar ik begrijp hier helemaal niets van...... code?
--
Daniel Tryba
Paul van der Vlis
16/10/03, 20:15
Daniel Tryba wrote:
> Paul van der Vlis <paul@vandervlis.nl> wrote:
>
>>Ik ben aan het experimenteren met sessies in PHP. Ik wil graag een
>>variabele die ik in een form intik in een sessie-variabele bewaren.
>>
>>Dit probeer ik in eerste instantie met POST, maar op de volgende pagina
>>na een session_start() geeft hij opeens niet meer de inhoud van de
>>POST-variabele, dus kan ik niets toewijzen...
>
>
> Sorry maar ik begrijp hier helemaal niets van...... code?
Het is waarschijnlijk een probleem waar een heel andere oplossing voor
bestaat. Dit is mijn code:
-------
<?php
if ($submit=="OK"){
session_start();
$_SESSION['user'] = $username;
}
?>
<html>
<?php
if ($submit=="OK"){
echo $_SESSION['user'];
}
?>
<form method="post" action="">
Mijn gebruikersnaam:
<input type="text" name="username" size="25" maxlength="25">
<br />
Mijn wachtwoord:
<input type="password" name="password" size="25" maxlength="25">
<br />
<input type="submit" name="submit" value="OK">
</form>
</html>
--------
Ik krijg als output de naam van de variabele "$username" in plaats van
de inhoud van de variabele.
Ik heb speciaal een andere variabelenaam gebruikt, ik las dat dat beter
was, maar dat helpt niet.
Groet,
Paul.
Toni Van Remortel
16/10/03, 20:30
On Thu, 16 Oct 2003 19:14:41 +0200, Paul van der Vlis wrote:
> Hoi,
>
> Ik ben aan het experimenteren met sessies in PHP. Ik wil graag een
> variabele die ik in een form intik in een sessie-variabele bewaren.
>
> Dit probeer ik in eerste instantie met POST, maar op de volgende pagina
> na een session_start() geeft hij opeens niet meer de inhoud van de
> POST-variabele, dus kan ik niets toewijzen...
>
> Wie weet de juiste manier om variabelen uit een form op te slaan in een
> sessie-variabele?
Let's go for a quick tutorial :)
Je form:
<form method="post" action="<?=$SERVER["PHP_SELF"]?>">
Mijn gebruikersnaam:
<input type="text" name="username" size="25" maxlength="25"><br />
Mijn wachtwoord:
<input type="password" name="password" size="25" maxlength="25"><br />
<input type="submit" name="submit" value="OK">
</form>
De PHP opvraging:
Je pagina moet BEGINNEN met session_start();
Dan kan je de $_POST-array doorlopen en in de sessie steken:
$_SESSION["username"] = $_POST["username"];
Om dat weer te geven zet je:
echo $_SESSION["username"];
Dit alles staat dus in 1 pagina:
session_start()
if ( isset($_POST["submit"]) )
{ // data verzonden
$_SESSION["username"] = $_POST["username"];
echo $_SESSION["username"];
}
else
{ // toon het formulier
<form method="post" action="<?=$SERVER["PHP_SELF"]?>">
Mijn gebruikersnaam:
<input type="text" name="username" size="25" maxlength="25"><br />
Mijn wachtwoord:
<input type="password" name="password" size="25" maxlength="25"><br />
<input type="submit" name="submit" value="OK">
</form>
}
Een eenvoudig voorbeeldje, dat werkt.
--
Groeten, Toni
Nokelu - NoorderKempense Linux users
http://www.nokelu.be
Daniel Tryba
16/10/03, 20:30
Paul van der Vlis <paul@vandervlis.nl> wrote:
> Het is waarschijnlijk een probleem waar een heel andere oplossing voor
> bestaat. Dit is mijn code:
>
> -------
> <?php
> if ($submit=="OK"){
Waar komt $submit vandaan?
> session_start();
Een conditionele session_start(), dat is zeer onwenselijk IMHO.
> $_SESSION['user'] = $username;
Waar komt $username vandaan?
[knip]
> Ik krijg als output de naam van de variabele "$username" in plaats van
> de inhoud van de variabele.
??? Voorbeeld van wat jij ziet!
--
Daniel Tryba
Paul van der Vlis
16/10/03, 20:30
Toni Van Remortel wrote:
> On Thu, 16 Oct 2003 19:14:41 +0200, Paul van der Vlis wrote:
>
>>Hoi,
>>
>>Ik ben aan het experimenteren met sessies in PHP. Ik wil graag een
>>variabele die ik in een form intik in een sessie-variabele bewaren.
>>
>>Dit probeer ik in eerste instantie met POST, maar op de volgende pagina
>>na een session_start() geeft hij opeens niet meer de inhoud van de
>>POST-variabele, dus kan ik niets toewijzen...
>>
>>Wie weet de juiste manier om variabelen uit een form op te slaan in een
>>sessie-variabele?
>
> Let's go for a quick tutorial :)
Het werkt nu ook bij mij, bedankt ;-)
Groet,
Paul.
Paul van der Vlis
17/10/03, 14:00
Daniel Tryba wrote:
> Paul van der Vlis <paul@vandervlis.nl> wrote:
>
>>Het is waarschijnlijk een probleem waar een heel andere oplossing voor
>>bestaat. Dit is mijn code:
>>
>>-------
>><?php
>>if ($submit=="OK"){
>
> Waar komt $submit vandaan?
Van POST.
Ik weet ondertussen dat dat in een sessie $_POST["submit"] moet zijn.
Zonder sessie kun je dat soort variabelen direct gebruiken.
>> session_start();
>
> Een conditionele session_start(), dat is zeer onwenselijk IMHO.
Daar zit wat in.
>> $_SESSION['user'] = $username;
>
> Waar komt $username vandaan?
> [knip]
>
>>Ik krijg als output de naam van de variabele "$username" in plaats van
>>de inhoud van de variabele.
>
> ??? Voorbeeld van wat jij ziet!
Ik zag dus zoiets:
--------
$username
Mijn gebruikersnaam:
Mijn wachtwoord:
--------
Maar het probleem is al opgelost ;-)
Groet,
Paul.
Maarten Wierda
17/10/03, 14:00
Paul van der Vlis wrote:
> >>if ($submit=="OK"){
> >
> > Waar komt $submit vandaan?
>
> Van POST.
>
> Ik weet ondertussen dat dat in een sessie $_POST["submit"] moet zijn.
> Zonder sessie kun je dat soort variabelen direct gebruiken.
Dat heeft niks met sessies te maken. $_POST["submit"] is de enige juiste
manier. Zie ook <http://www.phpfreakz.nl/artikelen.php?aid=88>.
--
Cheers, Maarten Wierda
"Music is first, lyrics are secondary."
Paul van der Vlis
17/10/03, 15:15
Maarten Wierda wrote:
> Paul van der Vlis wrote:
>
>
>>>>if ($submit=="OK"){
>>>
>>>Waar komt $submit vandaan?
>>
>>Van POST.
>>
>>Ik weet ondertussen dat dat in een sessie $_POST["submit"] moet zijn.
>>Zonder sessie kun je dat soort variabelen direct gebruiken.
>
> Dat heeft niks met sessies te maken.
Jawel, want als je geen "session_start()" geeft werken de POST
variabelen bij mij gewoon als voorheen. Dat kun je ook zien aan het feit
dat $submit (wat voor de start van de sessie staat), gewoon werkt.
> $_POST["submit"] is de enige juiste
> manier. Zie ook <http://www.phpfreakz.nl/artikelen.php?aid=88>.
Interessant artikel ;-)
Groet,
Paul.
Maarten Wierda
17/10/03, 15:15
Paul van der Vlis wrote:
> >>Ik weet ondertussen dat dat in een sessie $_POST["submit"] moet zijn.
> >>Zonder sessie kun je dat soort variabelen direct gebruiken.
> >
> > Dat heeft niks met sessies te maken.
>
> Jawel, want als je geen "session_start()" geeft werken de POST
> variabelen bij mij gewoon als voorheen. Dat kun je ook zien aan het feit
> dat $submit (wat voor de start van de sessie staat), gewoon werkt.
Vreemd, de logica hiervan ontgaat mij.
> > $_POST["submit"] is de enige juiste
> > manier. Zie ook <http://www.phpfreakz.nl/artikelen.php?aid=88>.
>
> Interessant artikel ;-)
Zeker. En ik zou me er maar aan houden, bespaart je een hoop ellende :-)
--
Cheers, Maarten Wierda
"Music is first, lyrics are secondary."