|
|
User gesamt
|
:
|
2386691
|
User online
|
:
|
3
|
|
KubaSeoTräume, PHP Forum, PHP Community and more ... MyWebsolution.de!
|
|
|
|
MyWebsolution.de Foren » Anfängerfragen PHP und MYSQL » Problem mit Link um Session weiterzugeben
Seite:
|
1
|
Posts pro Seite: 5
10
20
|
Autor
|
Thread
|
05.12.2008 02:38 Uhr
|
Problem mit Link um Session weiterzugeben
|
roadrunner
|
User
|
|
registriert
|
05.12.2008
|
wohnt in
|
|
Beiträge
|
2
|
|
Guten morgen liebe Leute,
Ich habe mit Hilfe des Sessiontutorials (was ich für eine sehr gute Arbeit halte) eine Session gebastelt. Ich möchte kurz mal ein paar Zeilen zeigen.
PHP:
<?php
//SessionID integrieren
ini_set('session.use_trans_sid', 1);
//Session name und id setzen
session_name();
session_id();
// Session starten
//Cookie wird gesetzt
//Datei wird auf dem Server erzeugt
session_start();
// Cookie vernichten
setcookie(session_name(), "", time()-3600);
?>
dann werden die einzelnen Forminhalte an in Sessions abgelegt
PHP:
<?php
//Sessionvariablen aufarbeiten
$_SESSION['anfrage'] = $anfrage;
$_SESSION['anrede'] = $anrede;
$_SESSION['name'] = $name;
$_SESSION['nachname'] = $nachname;
$_SESSION['email'] = $email;
$_SESSION['telefon'] = $tel;
$_SESSION['strasse'] = $strasse;
$_SESSION['PLZ'] = $plz;
$_SESSION['stadt'] = $stadt;
$_SESSION['land'] = $land;
?>
und dann möchte ich die ganze Session an die nächste Seite zu schicken.
PHP:
<?php
if(isset($_POST['submit']))
{
//hier werden die Usereingaben validiert
//Wenn Kontrollvariable 1 ist liegt keine Fehler vor
//und die Inhalt können gesendet werden
if($weiter == 1)
{
echo "<a href=\"reise_form_2.php?".SID."\">\n";
}
}
?>
$weiter ist in diesem Fall eine Kontrollvariable die aus einem input hidden kommt.
Wenn ich nun den Sumbitbuttom betätige wird das ganze Formular zu einem riesen grossen Hyperlink (Text erhält andere Farbe und underline). Ich muss dann irgendwo in das Formular reinklicken damit es auf die nächste Seite geht. Die Daten werden alle übergeben, das passt soweit. Nachdem dann zweimal geklickt wurde geht es auf die nächste Seite wobei hier in der URL noch die SID angezeigt wird. Dann wieder das selbe. Klick auf Buttom, Form wird zu Link und SID verschwindet in der URL, nochmal Klick irgendwo im Form, Ausgabe, alles da.
Ich habe schon so ziemlich alle Formen durchforstet, aber es scheint das noch niemand das Problem hatte.
Dieser Beitrag wurde am 05.12.2008 um 02:39:27 Uhr von runner zum 1. Mal editiert.
|
|
|
07.12.2008 00:13 Uhr
|
|
Flitze
|
Administrator
|
|
registriert
|
17.10.2006
|
wohnt in
|
Eschwege
|
Beiträge
|
332
|
|
Hallo roadrunner,
ich versteh den ersten Teil von deinem Code nicht so ganz...
PHP:
<?php
session_name();
session_id();
?>
Kannste dir erstma sparen, die initialisierung läuft automatisch bei dem Aufruf von session_start() mit ab.
Warum vernichest du das Cookie? Es gibt einen Parameter, mit dem man das Setzen von Session Cookies deaktivieren kann.. musst mal googln, hab ich nich im Kopf.
Ich versteh dein Problem auch nicht, wenn ich ehrlich sein soll^^ Also ich verstehe die Beschreibung 'logisch' nicht..
Generell würde ich vermuten, dass der Fehler damit zusammenhängt, dass du die Konstante SID benutzt. Soweit ich weiß wird diese nur genau dann befüllt, wenn kein Cookie gesetzt werden kann (weil im Browser des Users deaktiviert oder so). In deinem Fall kann aber (vielleicht) ein Cookie gesetzt werden, du vernichtest es danach zwar, SID wird dadurch aber nicht befüllt. Wie gesagt, ist jetzt ins Blaue hinein geraten, weil ich dein Problem nicht wirklich verstehe
Lösungsvorschläge hätte ich 2:
1. Benutz den Parameter, der das Setzen von SessionCookies von vornherein verhindert.
Wenn das nicht funktioniert, erzeuge dir
2. deine eigene SID durch z.B.
PHP:
<?php
$mySID = session_name()."=".session_id();
?>
Halt uns auf dem laufenden
Gruß
Flitze
Dieser Beitrag wurde am 07.12.2008 um 00:15:44 Uhr von Flitze zum 1. Mal editiert.
|
|
|
10.12.2008 04:53 Uhr
|
|
roadrunner
|
User
|
|
registriert
|
05.12.2008
|
wohnt in
|
|
Beiträge
|
2
|
|
Ich habe nun mal folgende Zeilen
PHP:
<?php
if(isset($_POST['submit']))
{
//hier werden die Usereingaben validiert
//Wenn Kontrollvariable 1 ist liegt keine Fehler vor
//und die Inhalt können gesendet werden
if($weiter == 1)
{
echo "<a href=\"reise_form_2.php?".SID."\">\n";
}
}
?>
durch diese hier ersetzt.
PHP:
<?php
if(isset{$_POST['submit']))
{
header('location: reise_form_2.php')
exit;
}
?>
Und nun scheint es soweit mal zu funktionieren.
Mir war die ganze Sache mit dem Link nicht klar. Ich habe dabei nicht verstanden wie ich Formularinhalte über einen Link weitergeben kann. Nun hat sich wahrscheinlich deshalb das ganze Form in einen riesen grossen Hyperlink verwandelt wiel ich ihm ja gesagt habe wenn isset($_POST['submit'])) dann <a> ausgeben.
|
|
|
Seite:
|
1
|
|
|
Powered by
|
Pascal Landau
|
© 2006
|
MyWebsolution.de
|
Designed by
|
Pascal Landau
|
© 2006
|
MyWebsolution.de
|
|
|
|
|
|