[php] form variabele wordt pas na 2e submit in sessie gezet

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hallo,
ik zit met het volgende:
Ik heb een form nodig waarin na invoer van een textfield, deze waarde in een sessie wordt gezet ( ik moet nl. "halvewege het invullen van het form" even naar een andere pagina en vervolgens weer terug naar het form.. en dus het liefst met de al ingevulde waarden)

Onderstaande code werkt...
echter 1 probleem
Wanneer ik het eerste invoerveld van een waarde voorzie moet de onchange deze waarde in de sessie zetten...... helaas er gebeurt niets
Voer ik nog een keer een waarde in..... dan wordt die laatste waarde WEL in de sessie gezet!

Heeft iemand enig idee hoe ik dit kan verhelpen?
thanks!


PHP:
1
2
3
4
5
6
7
8
9
<? session_start();
if (isset ($_POST['titel'])  ) { $tktitel = $titel; }
session_register("tktitel");
?>
        
<form method="post" action="test2.php" name="form1">
<tr><td width="100" class="text">Titel:</td><td>
<input type="Text" name="titel" size="50" value="<? echo $_SESSION["tktitel"]  ?>" OnChange="this.form.submit();"></td></tr>
</form>

Acties:
  • 0 Henk 'm!

Verwijderd

Je moet ook geen session_register gebruiken als je gebruik maakt van $_SESSION. Dat staat duidelijk in de manual.
Je gebruikt blijkbaar ook nog de register_globals instelling, maar dat kun je beter niet doen. Als je een request variabele nodig hebt, roep deze dan aan via de superglobal array ($_POST in dit geval). Dan ben je niet afhankelijk van de configuratie van de server namelijk, en je scripts zijn minder gevoelig voor veiligheidslekken.
PHP:
1
2
3
4
session_start ();
if ( isset ( $_POST['titel'] ) ) {
   $_SESSION['tktitel'] = $_POST['titel'];
}

De rest van jouw script levert overigens ook een notice op als die POST variabele niet bestaat, en je error_reporting hebt ingesteld op E_ALL (wat een goede gewoonte is voor een developer).

[ Voor 31% gewijzigd door Verwijderd op 21-02-2004 12:16 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
ik wist dat ik iets niet goed gelezen had!! :?
thanks!!