PEAR::HTML_Quickform zerschießt Session???
am 13.06.2006 11:14:04 von christoph.soellner
Hi *,
ich bin am Verzweifeln. Ich hab PHP 5 und Pear mit Quickform.
- Zwei Html Text Elemente (fxxxvorname, fxxxnachname).
- Meine Session hat drei Variablen:
logged_in,
vorname,
nachname
JEDESMAL, wenn ich die form->validate() mache, steht in
meiner Session nix mehr drin. Nenne ich die Form-Variablen
um in vorname und nachname, stehen in der Session die Werte
dieser Textfelder.
Auch hat das Quickform noch nie gesponnen (habs erst heute
mit Sessions zusammen verwendet).
Kann das wer bestaetigten??
Danke,
Christoph
Re: PEAR::HTML_Quickform zerschießtSession???
am 13.06.2006 11:57:22 von Sven Drieling
Christoph Söllner wrote:
Hallo,
> JEDESMAL, wenn ich die form->validate() mache, steht in
> meiner Session nix mehr drin.
Ich weiß nicht, was form->validate() aber es klingt nach dem
Seiteneffekt bei Sessions wenn register_globals on ist. Dann
überschreibt ein $name =3D 'john' den Session-Wert $_SESSION['name']=
und ähnliches.
=20
Lösung: Die Session-Indices mit einem Prefix versehen, der sonst nic=
ht
für Variablennamen benutzt wird z.B. $_SESSION['sesName']. Das
funktioniert dann überall unabhängig von der register_globals
Einstellung.
Nebenwirkung bei Sessions wenn register_globals =3D on
(Cookies an, Seite aufrufen, Seite noch mal aufrufen 'Reload')
session_start();
$_SESSION['name'] =3D 'john';
// Variable $name existiert, obwohl nicht
// direkt gesetzt
echo $name, "
\n";
// $name =3D ändert auch $_SESSION-Wert
$name =3D 'new john doe';
var_dump($_SESSION);
?>
==>
john
array(1) { ["name"]=3D> &string(12) "new john doe" }
tschuess
[|8:)