Werte $_SESSION['wert'] verloren

quidnovi

Erfahrenes Mitglied
Hi folks,

welche Umstände kann man festmachen, wenn man den Wert einer Session verliert?

Ich kann problemlos Werte über 4 Scripts behalten - im 5. ist sie verschwunden.

Demnach verliere ich sie bei der Übergabe vom 4. - auf das 5.Script. Bei der Fehlerausgabe erscheint plötzlich: "Undefined index: varianteBoden "

Ich kann aber keinen Fehler entdecken, vielleicht seid Ihr so gut und schaut den Quellcode mal an.

Script 4:
PHP:
<?PHP
	session_start();

	// includes
	include'../../include/functions.php';

	// Übergebene Variablen in Session speichern

	$_SESSION['yBoden']		= $_POST['yBoden'];
	$_SESSION['yLiSeite']	= $_POST['yLiSeite'];
	$_SESSION['yOben']		= $_POST['yOben'];
	$_SESSION['yReSeite']	= $_POST['yReSeite'];

	// Ausgabe der Session
	echo $_SESSION['varianteBoden']." varianteBoden<br />";
	echo $_SESSION['profilBoden']." profilBoden<br />";
	echo $_SESSION['varianteLiSeite']." varianteLiSeite<br />";
	echo $_SESSION['profilLiSeite']." profilLiSeite<br />";
	echo $_SESSION['xLiSeite']." xLiSeite<br />";
	echo $_SESSION['varianteOben']." varianteOben<br />";
	echo $_SESSION['profilOben']." profilOben<br />";
	echo $_SESSION['xOben']." xOben<br />";
	echo $_SESSION['varianteReSeite']." varianteReSeite<br />";
	echo $_SESSION['profilReSeite']." profilReSeite<br />";
	echo $_SESSION['xReSeite']." xReSeite<br />";

	
?>
<html>
<head>



</head>

<body>

<body bgcolor="#66839d">

<?php
	
	if((($_SESSION['profilBoden'] == 20) && ($_SESSION['yBoden'] > 20))||(($_SESSION['profilLiSeite'] == 20) && ($_SESSION['yLiSeite'] > 20))||(($_SESSION['profilOben'] == 20) && ($_SESSION['yOben'] > 20))||(($_SESSION['profilReSeite'] == 20) && ($_SESSION['yReSeite'] > 20))){
		echo '<table width="500" height="300" align="center" cellpadding="0" cellspacing="0" bgcolor="#F4E3D3" valign="middle">'.
			 '<tr><td align="center" bgcolor="#F4E3D3">'.
			 '<font color="red"><b>Der Einstand der Schiene in die Wand, &uuml;bersteigt die Schenkell&auml;nge</b></font>'.
			 '<br /><a href="./profil_1.php">zur&uuml;ck</a>'.
			 '</td></tr></table>';
	}
	else{
?>

 <table width="500" height="50" align="center" cellpadding="0" cellspacing="0" bgcolor="#F4E3D3">
	 <td>
	  <td align="center" valign="bottom">
	   <font size="4"><b>Anlagentyp 2</b></font>
	   <hr />
	 </td>
	</tr>
   </table>

   <!-- Anlagen Bild -->
   <table width="500" align="center" cellpadding="0" cellspacing="0" bgcolor="#F4E3D3" border="0">
    <tr>
	 <td>
	<?php htmlTableZeigeAnlagen_1('Anlagentyp2','../../images/gif/anlage_2.gif','','','../../infoZeich/info_1.php','../../infoZeich/zeich_1.php',''); ?>
  </td></tr></table>

 
	<table width="500" height="" align="center"bgcolor="#F4E3D3">
	<tr><form action="eingabe_2_2.php" method="POST">
	     <td>
		     
                  <hr />
			      <br />
				      <input text="30" name="mlb" value="<? echo $_SESSION['mlb']; ?>"> Mauerlichte Breite (min: 1400 / max.: 3300)<br />
					  <input text="30" name="mlh" value="<? echo $_SESSION['mlh']; ?>"> Mauerlichte H&ouml;he (min.: 2200 / max.: 3000)<br /><br />
					  
					  Die <b>Maximale Durchgangsbreite</b> wird <b>automatisch</b> berechnet<br /><br />
					  
					  Die <b>Maximale Durchgangsh&ouml;he</b> wird <b>automatisch</b> berechnet<br /><br />
					  <select name="gdt">
	                  <option selected value="10">Glasst&auml;rke 10 mm</option>
					  <option value="12">Glasst&auml;rke 12 mm</option></select>
					  <p><p><p>
					  <? print date('d.m.Y');?><br />
					  
					  <p><center><input type="submit" value="berechnen" name="send"></form>
					  <input type="reset" value="Neueingabe"></center>

					  <p>

					  <?
							echo '<form action="../../manet_schiebetueren.php"><center><input type="submit" value="Auswahl Anlagentyp" name="send"></center></form>';
							session_destroy();
					  ?>

   </td>
  </tr>
 </table>

<?php } ?>

</body>
</html>

Vielen Dank
 
Zuletzt bearbeitet:
Ich versuche es mit einer globalen Frage: Warum kann man überhaupt einen Wert einer Variablen verlieren, außer man überschreibt ihn?
 
Hi,

das was ich gepostet habe ist Script4

mit print_r($_SESSION); sehe ich die Werte, wenn ich nun aber in dieses File die Eingaben tätige, sind die Werte im Script 5 - außer den neu eingegebenen verschwunden.

Ich weiß aber nicht warum.

Das Script 5:
PHP:
<?php
       session_start();

	   // includes
	   include'../../include/functions.php';

	   $_SESSION['mlb'] = $_POST['mlb'];
	   $_SESSION['mlh'] = $_POST['mlh'];
	   $_SESSION['gdt'] = $_POST['gdt'];

	   // Ausgabe der SessionWerte
	   echo $_SESSION['mlb']." mlb<br />";
	   echo $_SESSION['mlh']." mlh<br />";
	   echo $_SESSION['gdt']." gdt<br />";
	   echo $_SESSION['dlb_2']." dlb_2<br />";
	   echo $_SESSION['dlh_2']." dlh_2<br />";

	   echo $_SESSION['varianteBoden']." varianteBoden<br />";
	   echo $_SESSION['profilBoden']." profilBoden<br />";
	   echo $_SESSION['xBoden']." xBoden<br />";
	   echo $_SESSION['yBoden']." yBoden<br />";

	   echo $_SESSION['varianteLiSeite']." varianteLiSeite<br />";
	   echo $_SESSION['profilLiSeite']." profilLiSeite<br />";
	   echo $_SESSION['xLiSeite']." xLiSeite<br />";
	   echo $_SESSION['yLiSeite']." yLiSeite<br />";

	   echo $_SESSION['varianteOben']." varianteOben<br />";
	   echo $_SESSION['profilOben']." profilOben<br />";
	   echo $_SESSION['xOben']." xOben<br />";
	   echo $_SESSION['yOben']." yOben<br />";

	   echo $_SESSION['varianteReSeite']." varianteReSeite<br />";
	   echo $_SESSION['profilReSeite']." profilReSeite<br />";
	   echo $_SESSION['xReSeite']." xReSeite<br />";
	   echo $_SESSION['yReSeite']." yReSeite<br />";

	   $dlb = round((($_SESSION['mlb'] / 2) - 95));
	   $dlh = round(($_SESSION['mlh'] - 200));
	   
	   if ($_SESSION['mlb'] < 1400 || $_SESSION['mlb'] > 3500){
		   header("Location:fehlerscript_anlagentyp_2.php"); 
	   }

	   if ($_SESSION['mlh'] < 2200 || $_SESSION['mlh'] > 3000){
		   header("Location:fehlerscript_anlagentyp_2.php"); 
	   }
?>
<html>
<head>
</head>
		


<body bgcolor="#66839d">

 <table width="500" height="50" align="center" cellpadding="0" cellspacing="0" bgcolor="#F4E3D3">
	 <td>
	  <td align="center" valign="bottom">
	   <font size="4"><b>Anlagentyp 1</b></font>
	   <hr />
	 </td>
	</tr>
   </table>

   <!-- Anlagen Bild -->
   <table width="500" align="center" cellpadding="0" cellspacing="0" bgcolor="#F4E3D3" border="0">
    <tr>
	 <td>
		<?php 		htmlTableZeigeAnlagen_1('Anlagentyp2','../../images/gif/anlage_2.gif','','','../../infoZeich/info_2.php','../../infoZeich/zeich_2.php',''); 
		?>
  </td></tr></table>

	<table width="500" height="" align="center"bgcolor="#F4E3D3">
	 <tr><form action="berechnung_anlagentyp_2.php" method="POST">
	     <td>
		     
                  <hr />
			      <br />
				  
				      <input text="30" name="mlb" value="<? echo $_SESSION['mlb']; ?>"> Mauerlichte Breite (min: 1400 / max.: 3300)<br />
					  <input text="30" name="mlh" value="<? echo $_SESSION['mlh']; ?>"> Mauerlichte H&ouml;he (min.: 2200 / max.: 3000)<br />
					  
					  <input text="30" name="dlb_2"><font color="red"> <b>Maximale Durchgangsbreite: <? echo $dlb; ?> mm</b></font><br />
					  
					  <input text="30" name="dlh_2"><font color="red"> <b>Maximale Durchgangsh&ouml;he: <? echo $dlh; ?> mm</font></b><br />
					  <input type="field" name="gdt" value="<? echo $_SESSION['gdt']; ?>" readonly> Glasst&auml;rke</b>

					  <p><p><p>
					  <? print date('d.m.Y');?><br />
					  
					  <p><center><input type="submit" value="berechnen" name="send"></form>

					  <b>Wenn Sie die Eingabedaten &auml;ndern wollen, bet&auml;tigen Sie bitte den "Neueingabe" - Button.</b>
					  
					  <form action="eingabe_2_1.php" method="post">
					  <input type="submit" value="Neueingabe" name="send"></form></center>
				
		</td>
	 </tr>
	</table>

   </td>
  </tr>
 </table>


</body>
</html>

Siehst Du einen Fehler? Mir scheint langsam, ich verstehe das Ganze nicht mehr.
 
Zuletzt bearbeitet:
Noch eine Frage:

Wie verhält es sich mit $_SESSION['];, wenn aus den angegebenen Werten etwas berechnet wird?

Also z.B.:
PHP:
$erg = ($_SESSION['mlb'] * 2);  // "mlb" hat den Wert: 1400

Wenn ich die nun mittels POST an ein nächstes Script übergebe, dann habe ich keinen Wert.

Wie kann ich diese Werte speichern?

Im nächsten Sript definiere ich folgend:
PHP:
$_SESSION['erg'] = $_POST['erg'];

mit
PHP:
echo $_SESSION['erg'];

ist nüscht. Why?
 
Zuletzt bearbeitet:
Wo wird den $erg überhaupt mit POST versendet Übergibts Du den errechneten Wert an irgendein Textfeld?

Außerdem kannst Du doch auch gleich

PHP:
$_SESSION["erg"] = ($_SESSION['mlb'] * 2);

schreiben.
 
Nein, dieser Wert wird innerhalb des Scripts errechnet. Also kein Textfeld, oder derartiges.

Dann versuche ich dieses $erg; mittels POST an ein nächstes Script zu schicken.

Das ist der falsche Weg, weils nicht funktioniert, welcher wäre der Richtige?
 
Habe nun versucht, den Wert mittels HIDDEN Field zu übergeben - geht auch nicht.

HTML:
<input type="text" name="erg" value="<? echo $erg; ?>">

Mir fällt keine weitere Übergabemöglichkeit mehr ein.
 
Zurück