variablen verloren..?..

analogbernd

Mitglied
hallo, ich habe einen login ( welcher funktioniert ) abreiten möchte ich mit sessions, eben ohne keks ;)

der benutzer loggt sich ein, kommt auf eine interne seite. dort gibt es verschiedene links welche zu anderen internen seiten führen.
bis hierhin funktioniert auch alles. die session id und die variable die ich immer wieder mit übergeben möchte, hängen immer an der url.
der login sieht wie folgt aus.

login2.php

PHP:
<?PHP
session_start();



      $usr = $txt_user;
      $pass = $txt_pass;
      $cpass = md5($pass);

      require("db.php");

      $SQL = "SELECT usr_name FROM Login WHERE usr_name = '$usr' and passwort = '$cpass'";
      $rs = mysql_query($SQL);

      if(mysql_num_rows($rs) == 1) {
         $session_id = session_id();
         $_SESSION["session_id"] = session_id();
         $_SESSION["usr"] = $txt_user;
       
                 $login = 1;
         session_register("login");


      } else {
        if (!isset($_SESSION['login'])) {
// Variable nicht registriert
@header("Location:index.php");
exit;
}

      }

      mysql_close();

	?>

ich habe in jeder aufrufbaren seite folgenden schnipsel required

login_pruefen.php

PHP:
<?php
session_start();

if (!isset($_SESSION['login'])) {
// Variable nicht registriert
@header("Location:index.php");
exit;
}

?>

diesen teil habe ich später nur mal in die login2.php eingefügt, um eben ne lösung für mein problem zu finden.

so, nun mal zu meinem problem.

ich logg mich ein, interne seite alles klar.
klicke auf nen link, die sid und meine variable werden ordnungsgemäß übergeben und landen auf der nächsten seite. dort lasse ich sie mir anzeigen, ab jetzt sind die links aber nur noch ohne sid und die variable, warum das?
meine links mache ich so:

PHP:
<?php echo "<a href='chat.php?sid=$session_id&benutzer=$usr'>Chat<br></a>";?

warum habe ich meine daten nur auf den ersten 2 seiten und ab der dritten sind sie verloren?

habe auch schon einige dinge durchprobiert, wie zb.
$usr = $HTTP_SESSION_VARS[usr];

denn
$HTTP_SESSION_VARS[usr];

ist auf der dritten seite vorhanden. so wie es sein soll...ich mein, ich könnt ja ab dort diese vari nutzen, aber ich will es eben per url haben.


wo habe ich den denkfehler?

dank euch für die vielen antworten ;)

zur login2.php noch was: ich weiß, session_register ist veraltet., sollte aber nicht das problem sein. ;)

ach ja und die login_pruefen wird immer am anfang required ;)
 
Hast du es mal mit den $_GET['varname'] probiert?

In deinem Fall könnte es etwa so aussehen:
PHP:
<?php
echo "<a href='chat.php?sid=".$_GET['session_id']."&benutzer=".$_GET['usr'].">Chat<br></a>";
?>
 
nein leider gibt das auch keinen erfolg.

ich überprüfe auf den folgeseiten die varis mit
PHP:
      print("<pre>");
print_r($_REQUEST);
print("</pre>");

ich erhalte dann folgendes ergebnis:

Array
(
[sid] => 2d6667bf17fba52113acbb53b780ad20
[benutzer] => benutzername
[PHPSESSID] => 2d6667bf17fba52113acbb53b780ad20
)



also könnte man schon meinen, es kommt alles an so wie es soll, aber leider gehen die links ab dann nicht mehr, wie oben beschrieben.

danke
 
Okay, ich versuche mal zu begründen warum es nicht geht:
Deine Variablen sind nicht "verloren" wenn du sie per URL übergibst.

Auf der ersten Seite muss es gehen da hier ja die Variablen entstehen, sprich erstellt werden. Von dort aus kannst du direkt auf die Variablen zugreifen.

Auf anderen (Unter-)Seiten sind sie nicht verfügbar da sie auf der Seite nicht direkt verfügbar sind sondern übergeben werden.
(Hoffe ich hab mich hier nicht irgendwie verpeilt ;))

Kannst ja auch eine andere Möglichkeit benutzen die du am Anfang jeder anderen Seite außer der Hauptseite (also eine andere Datei wie z.B. seite2.php, seite3.php etc.) einfügst:
PHP:
$session_id = $_REQUEST['sid'];
$usr = $_REQUEST['usr'];
Danach solltest du auch auf die Variablen $session_id und $usr wieder Zugriff haben da sie ja wieder vorhanden/neu erstellt sind.

Was mir aber grade noch einfällt, auch wenn es eine eventuell beleidigende Frage ist:
Hast du auch auf all deinen Seiten ein
PHP:
session_start();
und vor allem irgendwie die Session ID mit übergeben?
 
Was mir aber grade noch einfällt, auch wenn es eine eventuell beleidigende Frage ist:
Hast du auch auf all deinen Seiten ein
PHP:
session_start();
und vor allem irgendwie die Session ID mit übergeben?

ähm ja, eigentlich schon. aber da du so fragst. meine seiten sind wie folgt aufgebaut.
z.B.
chat.php ensteht wie folgt:

inlude der login_pruefen.php
include einer header.inhc.php ( html bis zum inhalt )

inhalt ( chat )

include einer footer.inc.php ( html nach dem inhalt )

das session_start(); wird ja in der login_pruefen.php gestartet. da es auch der erste include ist, dürfte das soweit passen.

ähm und wie meinst du, das mit der session id übergeben? ( per link !)

danke

NACHTRAG
ich habe jetzt mal verschiedenen linkmöglichkeiten ausprobiert. keine jedoch :(

PHP:
<?php echo "<a href='meine_daten.php?sid=$session_id&benutzer=".$HTTP_SESSION_VARS[usr]."'>Meine Daten<br></a>";?>

hier auch mal ne kombination ;)

PHP:
<?php echo "<a href='profil.php?sid=".$_REQUEST['sid']."&benutzer=".$HTTP_GET_VARS["benutzer"]."'>Mein Profil<br></a>";?>

der mist an der sache ist jedoch, wenn ich genau dies dinge per echo anzeige funktionierts :(
also :

PHP:
echo $HTTP_SESSION_VARS[usr];

oder


PHP:
echo $_REQUEST['sid'];

ich weiß auch nicht mehr weiter...
 
Zuletzt bearbeitet:
Zurück