PHP Sesion wird mal gespeichert und mal nicht

Searinox

Lt. Junior Grade
Registriert
Juni 2008
Beiträge
259
Moin moin,

wie in der Überschrift bereits zu lesen, werden bei meiner session nicht alle variablen gespeichert oder werden wieder gelöscht und überschrieben und was weiss ich. sitze seit gestern abend schon dadran und kann den fehler nicht finde.

Kurz zu den vorherigen seiten:

1. Kontaktdaten (name, vorname usw.) werden in der session gespeichert

2. Ein Formular soll ausgefüllt werden (die variablen werden auch in der session gespeichert)

3. man kann sich noch aus der dropdown liste zwei weitere optionen holen. die namen der optionen sollen in der session gespeichert werden

4. ein ähnliches formular wie bei 2 wird geöffnet. mit der gewählten option von 3 soll in ein textfeld geschrieben werden.

der fehler muss irgendwo bei punkt 3 liegen, weil die anderen session variablen noch drin stehen.

Code:
<?php
if(isset($_POST["button"]))
{
	$_SESSION["tasche2"] = $drop1;
	$_SESSION["tasche3"] = $drop2;
}
echo '<img src="'.$path.'/m/schritt3.png" />';

if($_POST["button"] == "Zurück zu Schritt 2")
	echo '<meta http-equiv="refresh" content="1; URL=http://cottonbagjoe.de/anfrage">';

if($_POST["button"] == "Ja, weitere Taschen anfragen")
{	
	$_SESSION["tasche2"] = $_POST[drop1];
	$_SESSION["tasche3"] = $_POST[drop2];
	
	$true = true;
	
	if($_POST[drop1] == "" && $_POST[drop2] == "")
	{
		$true = false;	
		$error = "<span class='error'>Sie müssen mindestens eine Tasche auswählen!</span>";
	}
	#echo nl2br(print_r($_SESSION,true));
	if($true == "true")
	{
		if($_SESSION["tasche2"] != "" && $_SESSION["tasche3"] == "")
			echo '<meta http-equiv="refresh" content="1; URL=http://domain.de/taschendruck-1t">';
		if($_SESSION["tasche3"] != "" && $_SESSION["tasche2"] == "")
			echo '<meta http-equiv="refresh" content="1; URL=http://domain.de/taschendruck-1t">';
		if($_SESSION["tasche2"] != "" && $_SESSION["tasche3"] != "")
			echo '<meta http-equiv="refresh" content="1; URL=http://domain.de/taschendruck-2t">';
	}
}

if($_POST["button"] == "Nein, mein Anfrage abschicken")
	echo '<meta http-equiv="refresh" content="1; URL=http://domain.de/anfrage-bestaetigung">';
?>

<form name="taschenauswahl" method="post" action="http://www.domain.de/weiteretaschen" enctype="multipart/form-data">
<div class="weta">
	<h1>Optionale Tasche</h1>
    <br />
    <br />
    Möchten Sie noch weitere Taschenpreise abfragen?<br />
    <br />

	[...]Hier werden zwei dropdowns mit daten aus der datenbank geüllt[...]


<input type="submit" name="button" value="Zurück zu Schritt 2" />&nbsp;&nbsp;
<input type="submit" name="button" value="Ja, weitere Taschen anfragen" />&nbsp;&nbsp;
<input type="submit" name="button" value="Nein, mein Anfrage abschicken" />
</div>
</form>


Wenn ich auf abschicken gehe, werden alle session variablen mit der php mail-funktion verschickt. das funktioniert auch.

aber wenn ich etwas aus dropdown auswähle und auf "weitere tasche" gehe, werden werden die vars $POST[drop1] und $_POST[drop2] auch in den jeweiligen vorgesehen session vars gespeichert aber sie kommen NIE an.

könnte das vllt. am server liegen? bin bei alfahosting.


bevor einer sagt, dass session_start(); fehlt. diese seite wird in die index.php includiert. und in der index.php steht als aller erstes natürlich session_start();

ich hoffe ihr könnt mir weiter helfen. springe hier schon im dreieck...
 
<form name="taschenauswahl" method="post" action="http://www.domain.de/weiteretaschen" enctype="multipart/form-data">

probier mal direkt die datei in der action anzugeben also

action="http://www.domain.de/weiteretaschen/blabla.php"
 
normaler weise würde die url index.php?page=weiteretaschen heissen aber durch mod_rewrite wird das dann zu weiteretaschen. das hat so schon sein richtigkeit.

das script wird auch richtig ausgeführt. habe jeweil am anfang und ende ein "echo $_SESSION["tasche2/3"]" gesetzt, mit dem ergebnis, dass die sessio vars mit dem dopdown values gefüllt sind.

aber sobald es auf die andere seite springt sind die session variablen leer. :freak:
 
Zurück
Oben