session problem/denkfehler?

therealcharlie

Erfahrenes Mitglied
also folgendes: zur vereinfachung habe ich 3 php-seiten. eine index.php, die eine session startet, und in die alle anderen dateien eingebunden sind (mit require)
dann hab ich ein login-script, dass eingaben aus einem formular überprüft und diverse daten aus einer mysql-tabelle holt. diese daten werden dann in einer session gespeichert und auch ausgegeben, um zu überprüfen, ob die session auch erstellt wurde. danach kommt man über einen link zu einer seite, wo nur die variablen der session ausgegeben werden sollen. nur wird auf der nichts angezeigt. ich setz euch mal index.php, login_script.php und die check.php rein, ist zwar einiges an code, aber ich weis ja nicht, wo der fehler liegt. ich kann mir vorstellen, dass ich die sessionid übergeben muss, nur hab ich keine ahnung wie und wo. danke schonmal im vorraus

index.php:
PHP:
<? ob_start (); 	

$config = file("../install/config.fdc");
$host =$config[0];
$host = trim($host);
$user =$config[1];
$user =trim($user);
$pw =$config[2];
$pw =trim($pw);
$datenbank =$config[3];
$datenbank =trim($datenbank);

$connection_data = mysql_connect($host,$user,$pw);
mysql_select_db($datenbank,$connection_data);

$result = mysql_query("SELECT * FROM passion_pics");
$pics = mysql_num_rows($result);

$query = mysql_query("SELECT Bildadresse FROM passion_randompics", $connection_data); 

while($row = mysql_fetch_array($query)) { 
    $img[] = $row['Bildadresse']; 
}
srand(time()); 

$zahl = rand(0, count($img) - 1); 

$picture ="$img[$zahl]"; 

if(!$_GET['do']) require('login_form.php'); if($_GET['do']==login) require('login_form.php'); if($_GET['do']==start) require('start.php'); if($_GET['do']==random) require('randompic.php'); if($_GET['do']==random_check) require('random_script.php'); if ($_GET['do']==logout) require('logout.php'); if ($_GET['do']==jahr) require ('jahr_form.php'); if ($_GET['do']==jahr_check) require ('jahr_script.php'); if ($_GET['do']==land) require ('land_form.php'); if ($_GET['do']==land_check) require ('land_script.php'); if($_GET['do']==kat) require('kat_form.php'); if($_GET['do']==kat_2) require('kat_form_2.php'); if($_GET['do']==kat_check) require('kat_script.php');

ob_end_flush ();
?>
login_script.php:
PHP:
<?php
// Es werden alle Daten des Users aus der Tabelle ausgewählt, voher wird der Benutzername und das Passwort noch überprüft 	
$abfrage = "SELECT Nickname, Status, Admin FROM passion_members WHERE (Nickname like '".$_REQUEST["name"]."') AND (Passwort = '".$_REQUEST["pwd"]."') LIMIT 1"; 	
$ergebnis = mysql_query ($abfrage); 	
session_name("sid");
session_start();
$sid = session_id(); 
// Wenn das einloggen erfolgreich war, werden die Sessionvariablen erstellt 	
if (mysql_num_rows ($ergebnis) > 0) 	
{ 	
  $row = mysql_fetch_array ($ergebnis);   	
  $_SESSION["user_nickname"] = $row['Nickname']; 	
  $_SESSION["user_status"] = $row['Status']; 	
  $_SESSION["user_admin"] = $row['Admin']; 	
  $_SESSION["la"] = "teststring";
  // Anschliessend wird zur Internen Seite weitergeleitet 	
  if ($row["Admin"]==1){
  echo $_SESSION["user_admin"]; echo "<br>";
  echo $_SESSION["user_status"]; echo "<br>";
  echo $_SESSION["la"];echo "<br>";
  echo $sid; echo "<br>";
  echo "<a href=check.php?sid=$sid>Variablen Prüfen</a>"; 
  }
  else 	header ("Location: ../index.php"); 
} 	
else 	
{ 	
  // Sollte das einloggen nicht erfolgreich gewesen sein, wird wieder auf das Formular zum einloggen weitergeleitet. 	
  header ("Location: index.php?do=login"); 	
} 
?>
check.php:
PHP:
<?
session_start();
  echo $_SESSION["user_admin"]; echo "<br>";
  echo $_SESSION["user_status"]; echo "<br>";
  echo $_SESSION["la"];
  ?>

hoffe ihr könnt mir helfen.
 
Zuletzt bearbeitet:
1) Aufs wesentliche kürzen! (kein unwichtiger html Code)
2) index.php ganz unten, das sind einige Fehler - was man schon anhand der Färbung sehen kann.
3) Ich spar es mir jetzt mich da durch zuwühlen.

p.s.:
PHP:
echo $str.'<br>'; // ist wohl sauberer als deine "Methode"
 
gut, html ist raus.
die 'fehler' lagen daran, dass irgendein kommentar anscheinend falsch gewertet wurde...oder so.
was ist der unterschied zu 'meiner' methode?
wie siehts mit einer session aus? wie muss ich die übergeben?
 
1) Halt dich bitte an die (von dir akzeptierte) Netiquette (Das krass grell rote Kästchen beim Posten von Beiträgen)!
2) Du wirst schon irgendwann merken warum deine Methode nicht die richtige Wahl ist. Wirst schon noch die übersicht verlieren ;)
3) Session manuell übergeben:
PHP:
echo 'XXXX.php?'.session_name().'='.session_id();
Aber ich will es mal kompliziert, mit deiner Methode, machen - um dir zu zeigen was ich meinte:
PHP:
echo "XXXX.php?"; echo "session_name()"; echo "="; echo "session_id()";
You see?!
 
Zurück