Session-Variablen werden nicht übergeben

borish

Mitglied
Hallo zusammen,
ich stosse leider momentan an meine Programmiergrenzen.
Folgendes Problem bekomme ich einfach nicht geregelt.

Ich starte eine Session mit folgendem Aufruf:
PHP:
<?php  
session_start();
session_name("angebot");
$_SESSION['strasse']  = $strasse;
$_SESSION['beschreibung'] = $beschreibung;
$_SESSION['miete'] = $miete;
$_SESSION['nebenkosten'] = $nebenkosten;
$_SESSION['heizkosten'] = $heizkosten;
$_SESSION['verkauf'] = $verkauf;
$_SESSION['bezug'] = $bezug;
$_SESSION['bild'] = $bild;
?>

Die über GET gesendeten Variablen werden folgendermaßen an eine neue Seite gesendete.
PHP:
<form class="maintxt" method = "post" action="index2.php?page=angebot">
  <select name="jump_menu" class="maintxt" onChange="jumpMenu('parent',this,0)">
<option selected>Unsere aktuelle Angebote  >>  </option>
<option><?
while($row = mysql_fetch_row($res)){
	//urlencode($row[0]);
    echo "<option value='index2.php?page=angebot&strasse=$row[0]'>".$row[0]."</option>"; 
}
?></option>

  </select>
</form>

Beim ersten Aufruf von angebot.php werden alle Variablen korrekt dargestellt und mit dem richtigen Datenbank-Content ausgestattet.

Nun möchte ich aber Blättern und somit dazugehörige Bilder, die aus einem Ordner ausgelesen werden darstellen.

Da soll so ablaufen.
PHP:
  <div id="picdesc" style="position:absolute; width:175px; height:37px; z-index:2; left: 447px; top: 168px;">
	
		<?php if ($i == 0) { ?>
		<img src="img/etc/arrow_back_grey.gif" width="29" height="32" border="0"> <?php } else { ?>
		<a href="<?php $_SERVER['PHP_SELF']?>?arr_id=<?php echo $i-1;?>&page=angebot&$_SESSION">
		<img src="img/etc/arrow_back.gif" width="29" height="32" border="0"></a> 
		<?php }

		//echo $filenames[$i];
		echo $i+1;
		echo "/";
		echo count($filenames); ?>

        
	<?php if ($i+1 == count($filenames)) { ?>
		<img src="img/etc/arrow_forward_grey.gif" width="29" height="32" border="0"> <?php } else { ?>
		<a href="<?php $_SERVER['PHP_SELF']?>?arr_id=<?php echo $i+1;?>&page=angebot&$_SESSION>
		<img src="img/etc/arrow_forward.gif" width="29" height="32" border="0"></a> 
		<?php } ?>
	 </div>

Die Session-Variablen werden aber nicht übergeben :confused: :confused:

Was mache ich falsch ?

Gruss Boris
 
Warum willst du denn Die $_SESSION Variable über die URL mitübergeben? Sobald du auf einer Seite session_stert() stehen hast, ist die Variable doch verfügbar. Das einzigste, was du mitübergeben kannst, ist die SESSION ID. Das ist manchmal nötig.
 
Habe ein ganz ähnliches Problem mit meinem User- Login:



  1. In eine HTML- Seite werden die Userdaten eingegeben, Weiterleitung zur Login.php.
  2. In der Login.php werden die Daten überprüft und wenn sie richtig sind in einer Session gespeichert. Danach wird zu Inhalt.php weitergeleitet.
  3. Inhalt.php sagt aber "Undefined variable: SESSION_USER in Inhalt.php on line 3".
Auf allen Seiten habe ich gleich zu Anfang einen "session_start();" gesetzt.

Hier der Code von Login.php:
PHP:
      if ($userok==true && $passwordok==true)
      {
       session_start();
       session_register("SESSION_User"); 
       session_register("SESSION_Password");
      
       $SESSION_User=$user;
       $SESSION_Password=$zugangspasswort;
      
       echo "<meta http-equiv='refresh' content='2; URL=Inhalt.php'>";
       echo "Sie wurden erfolgreich eingeloggt! Sie werden weitergeleitet...";
      }

Hier der Code von Inhalt.php:
PHP:
      $zugangspasswort="test";
      $userliste=array("honk","dude");
      
      session_start();
      
      //Hier ist ein Fehler! Er hat den Inhalt der Session- Variablen nicht weitergegeben! 
      
      if (in_array($SESSION_User,$userliste) && $SESSION_Password==$zugangspasswort)
      {
       $html='
       <html>
       <body>
      
       <u><h2>Willkommen im Member Bereich</h2></u>
      
       <a href="logout.php">Logout</a>
      
       </body>
       </html> ';
      
       echo $html;
      }


*****Ergänzung*****
Vorläufig verzichte ich auf eine MySQL- Datenbank und lege User und Passwort gleich zu Beginn der Seite fest (wird in einer späteren Version noch verbessert).
 
Zuletzt bearbeitet:
deion code
Code:
if ($userok==true && $passwordok==true)
   {
    session_start();
    session_register("SESSION_User"); 
    session_register("SESSION_Password");
   
    $SESSION_User=$user;
    $SESSION_Password=$zugangspasswort;
   
    echo "<meta http-equiv='refresh' content='2; URL=Inhalt.php'>";
    echo "Sie wurden erfolgreich eingeloggt! Sie werden weitergeleitet...";
   }
müsste
Code:
if ($userok==true && $passwordok==true)
   {
    session_start();
    session_register("SESSION_User"); 
    session_register("SESSION_Password");
   
    $_SESSION['SESSION_User']=$user;
    $_SESSION['SESSION_Password']=$zugangspasswort;
   
    echo "<meta http-equiv='refresh' content='2; URL=Inhalt.php'>";
    echo "Sie wurden erfolgreich eingeloggt! Sie werden weitergeleitet...";
   }

heissen weil die sessionvariabeln soweit ich weiss selbst bei angestelltem register globals eintrag nicht einfach so ansprechbar sind.
Von daher solltest du versuchen sie über $_SESSION['var_name'] anzusprechen

hey borisch
Code:
<?php $_SERVER['PHP_SELF']?>?arr_id=<?php echo $i+1;?>&page=angebot&$_SESSION>
kann doch garnicht gehen oder verstehe ich den Sinn darin nicht?
Wenn nicht bitte ich um Erklärung.
Wenn du auf die Sessionvariabelnzugreifen willst dann wie oben gesagt $_SESSION['var_name'] oder les alle mit foreach() aus. Aber wenn du nur so $_SESSION ausgibts und dir anzeigen lässt, sollte nach deinem code "array" darstehen
greetz xErY
 
Zuletzt bearbeitet:
Zurück