PDA

Bekijk Volledige Versie : [PHP] variabele uit een FORM in een $_session zetten



Haico
11/06/05, 13:15
Hallo,

ik wil dat de code in handler.php kijkt of een bepaalde variabele gepost is
en als dat het geval is dat een Session variable de waarde krijgt van die
geposte variabele. Maar ik kom er niet uit. Het lijkt erop dat Handler.php
niet goed functioneert maar er kunnen ook andere ( hier geen code van
bijgevoegd ) dingen fout zijn. Omdat ik er niet meer uitkom hierbij de
vraag welke van de 3 ( of een andere ) notities in handler.php goed is?

===== begin.php ===========
session_start() ;
// ik maak eerst die session variable maar aan
// geen idee of dat nodig is
$_SESSION['s_name] ='' ;

========== einde begin.php ==========


======== form.php ==========
session_start() ;
<form action='handler.php' method='post'>
<input type='text' name='f_name' size='20' maxlength='50'
value='".$_session['s_name']". '>
<submit>
</form>

========== einde form.php ============


============ handler.php ==========
session_start()
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
if ($_post['f_name'] ) {
$_SESSION['s_name] = $f_name ; // deze heb ik geprobeerd
$_SESSION['s_name] = $_POST['f_name'] ; // deze ook
$_SESSION['s_name] = $_POST['$f_name'] ; // deze ook
// en dan moet HTMLspecialchars etc ook nog gebeuren
}
}
// en weer terug naar form.php als de naam bijvoorbeeld niet lang genoeg is
oid
============= einde handler.php ==========

Bij voorbaat dank.

Haico Spaapen

Maarten Wierda
11/06/05, 13:35
Haico wrote:

> Hallo,

Hoi,

> ===== begin.php ===========
> session_start() ;
> // ik maak eerst die session variable maar aan
> // geen idee of dat nodig is
> $_SESSION['s_name] ='' ;

Maak daar eens $_SESSION['s_name'] van. Dus met een
afsluitend aanhalingsteken.

> ======== form.php ==========
> session_start() ;
> <form action='handler.php' method='post'>
> <input type='text' name='f_name' size='20' maxlength='50'
> value='".$_session['s_name']". '>
> <submit>
> </form>
>
> ========== einde form.php ============

Verander $_session['s_name'] eens in $_SESSION['s_name'].

> ============ handler.php ==========
> session_start()
> if($_SERVER['REQUEST_METHOD'] == 'POST')
> {
> if ($_post['f_name'] ) {

if (isset($_POST['f_name']))

> $_SESSION['s_name] = $f_name ; // deze heb ik geprobeerd
> $_SESSION['s_name] = $_POST['f_name'] ; // deze ook

Dit moet 'em zijn, alleen ga je hiervoor dus een aantal
keren de fout in.

Succes.


--
Cheers,
Maarten Wierda

Haico
11/06/05, 14:05
>> $_SESSION['s_name] ='' ;
>
> Maak daar eens $_SESSION['s_name'] van. Dus met een afsluitend
> aanhalingsteken.

Sorry, dat had ik staan, ik had even een voorbeeldcode getypt, niet zo
netjes dus.
>
>> ======== form.php ==========
>> session_start() ;
>> <form action='handler.php' method='post'>
>> <input type='text' name='f_name' size='20' maxlength='50'
>> value='".$_session['s_name']". '>
>> <submit>
>> </form>
>>
>> ========== einde form.php ============
>
> Verander $_session['s_name'] eens in $_SESSION['s_name'].

Klopt, $_SESSION in hoofdletters.... stom
>
>> ============ handler.php ==========
>> session_start()
>> if($_SERVER['REQUEST_METHOD'] == 'POST')
>> {
>> if ($_post['f_name'] ) {
>
> if (isset($_POST['f_name']))

Dit heb ik nu staan:

if (isset($_post['f_c_last_name'] )) {
$_SESSION['s_c_last_name'] = $f_c_last_name ;
}

maar omdat het nog niet werkte toch nog eens naar jouw advies gekeken en
'post' veranderd in 'POST' en nu heb ik:

if (isset($_POST['f_c_first_name'] )) {
$_SESSION['s_c_first_name'] = $f_c_first_name;
}

en dat werkt helemaal perfect.

Bedankt!

Haico

> Dit moet 'em zijn, alleen ga je hiervoor dus een aantal keren de fout in.
>
> Succes.
>
>
> --
> Cheers,
> Maarten Wierda

Jan Ehrhardt
11/06/05, 14:25
Haico in nl.internet.www.server-side (Sat, 11 Jun 2005 13:55:46 +0200):

>if (isset($_POST['f_c_first_name'] )) {
>$_SESSION['s_c_first_name'] = $f_c_first_name;
>}

Dit werkt alleen maar als register_globals aan staat. Beter is:

if (isset($_POST['f_c_first_name'] )) {
$_SESSION['s_c_first_name'] = $_POST['f_c_first_name'];
}

Jan
--
Look, Ma. No tables - http://enbio.steenbergen-stichting.nl/

Haico
14/06/05, 22:45
>>if (isset($_POST['f_c_first_name'] )) {
>>$_SESSION['s_c_first_name'] = $f_c_first_name;
>>}
>
> Dit werkt alleen maar als register_globals aan staat. Beter is:
>
> if (isset($_POST['f_c_first_name'] )) {
> $_SESSION['s_c_first_name'] = $_POST['f_c_first_name'];
> }
>
> Jan

Gelijk heb je. Kleine moeite, groot plezier.

Haico