PDA

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