PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [PHP] Session bei Form- Tag übergeben? Wie?


Lokadamus
2005-09-17, 04:15:11
mmm...

Ich hab keine Idee, wie ich eine Session weitergeben kann.
Zur Zeit habe ich ein Formular (darum das FORM- Tag), allerdings wird die Session nie weitergegeben. Hat jemand eine Idee, wie es klappen könnte? Die Sache mit dem "hidden"- input hat nicht funktioniert, ebensowenig der Versuch, die Session hinter action anzufügen. Dabei wird einfach "datei.php?<?php '.SID.'?>" zurückgegeben, anstatt die Session einzufügen ...

5tyle
2005-09-17, 07:06:59
bin mir nicht mehr sicher, aber kann es sein, dass auf der seite, die dann aufgerufen wird (sofern es nicht diesselbe ist) wieder ein session_start() gemacht werden muss?

Binaermensch
2005-09-17, 09:30:06
Wenn die Session in 1.php gestartet wurde, muss sie auch in 2.php wieder geladen werden.

Lokadamus
2005-09-17, 11:19:35
mmm...

Session_start(); ist auf beiden Seiten drinne, es zeigt aber nur bei der 1. Seite eine Session_ID an :(. Vielleicht klappt es, wenn ich die Zeile nicht mit echo anfange, muss ich später mal testen ...

darph
2005-09-17, 14:31:42
session_start() muß als aller aller aller aller erstes vor irgendeiner Ausgabe geschickt werden.

Ist eine Einschränkung in HTTP - Cookies müssen zuerst behandelt werden.

Lokadamus
2005-09-17, 14:58:34
mmm...

Ich hab kein Prob mit Session_start(); ich hab ein Prob mit der Übergabe der Session_Daten. Ich hab auf der Seite ein <FORM action="blabla.php" und will wissen, wie ich hierbei Session_Daten übergeben kann. Die Vorschläge von einigen Seiten ala action="blabla.php?<?php echo .SID.?> ... funktionieren nicht ...

darph
2005-09-17, 15:04:02
Brauchst du doch nicht.

Einfach in jeder PHP Datei, die die Sessiondaten verwenden soll ganz oben session_start() eintragen. Um den Rest kümmern sich Browser und Server.

Und dann kannst du einfach

<?php
//a.php
session_start();
$_SESSION["bla"] = "fasel";
?>

<a href="b.php">klück müch</a>



<?php
//b.php
session_start();
echo("Achtung: ".$_SESSION["bla"]);
?>


Mehr brauchst du gar nicht machen. Dem Server ist es dann egal, ob du von einem Link, einem Formular oder einer Direkteingabe von a auf b kommst.

Lokadamus
2005-09-17, 22:53:36
mmm...

Nicht ganz, wenn du es so haben willst, must du eine bestimmte Option einschalten, die ist bei mir aber nicht eingeschaltet und ich weiss auch nicht, wie die Option heisst :(. Mit dieser Option erweitert PHP selber die Ausgabe um die relevanten Informationen ...

ravage
2005-09-18, 21:30:42
in der php.ini die Option session.use_trans_sid auf 1 setzen, dann wird die Session ID automatisch in jeden Link und in jedes Formular eingefügt. Mit url_rewriter.tags kann man einstellen, wo überall die Session ID angehängt werden soll. Bei mir sieht das ganze so aus (ist aber deaktiviert):

url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=,fieldset="

Im Formular würde die Weitergabe der Session ID dann so aussehen: (denk ich mal)

<input type="hidden" name="SessionID" value="<?php echo $_REQUEST['SessionID'] ?>">

Oder so ähnlich ;)
SessionID ist dann der name deiner Session