• Liebe User, bitte beachtet folgendes Thema: Was im Forum passiert, bleibt im Forum! Danke!
  • Hallo Gemeinde! Das Problem leidet zurzeit unter technischen Problemen. Wir sind da dran, aber das Zeitkontingent ist begrenzt. In der Zwischenzeit dürfte den meisten aufgefallen sein, dass das Erstellen von Posts funktioniert, auch wenn das Forum erstmal eine Fehlermeldung wirft. Um unseren Löschaufwand zu minimieren, bitten wir euch darum, nicht mehrmals auf 'Post Reply' zu klicken, da das zur Mehrfachposts führt. Grußworte.

php session problem

simon4ever

Guest
mal wieder habe ich ein problem mit php :(

ich möchte einen login bereich machen, wo man zB auf der startseite das passwort und den namen eingibt, dass dann gecheckt wird (und dabei die session gestartet wird) und in einer dritten datei dann nach abfrage der session ein interner bereich dargestellt wird.

also startseite mit formular ist mal egal.
checkuser.php (hier werden die daten aus dem profil geprüft)

PHP:
<?
session_start();
include("db_connect.php");
if ((!isset($_POST['nick'])) OR (!isset($_POST['passwort']))) 
{ 
die ("Sorry, aber ohne Name bzw. Passwort geht hier nichts !"); 
}
$sql = "SELECT passwort FROM members WHERE nick = '".$_POST['nick']."'"; 
$result =  mysql_query($sql);
$row =  mysql_fetch_array($result,MYSQL_ASSOC);
if (!$row) 
{ 
die ("Sorry, aber dieser Name ist leider nicht bekannt !"); 
}
if ($row['passwort'] <> $_POST['passwort']) 
{ 
die ("Sorry, aber dieses Passwort passt nicht zum Usernamen !"); 
}
$nick = $result['nick'];
session_register('nick'); 
echo("<a href=\"admin.php?");
echo session_name();
echo("=");
echo session_id();
echo("\">weiter</a>");
?>

und dann die admin.php, die die session weiterührt wenn man das so sagen kann:

PHP:
<?
session_start();
?>  
<html> 
<head> 
<title>Adminzone</title> 
</head> 
<body>  
<?
if (! session_is_registered('nick')) 
{ 
die ("Sorry, aber sie haben sich wohl nicht eigeloggt, oder ?"); 
}
?>  
<?
echo ("Hi ".$_SESSION['nick']." !"); 
?>
<br> 
<input type="button" name="logout" value="logout" onClick="location.href='logout.php'"> 
</body> 
</html>

jetzt mein problem: in der admin.php möchte ich die person namentlich erwähnen und diesen namen auch weiter verwenden. allerdings ist in der admin.php der wert $_SESSION['nick'] ein lehrer wert, wenn ich die admin.php öffne steht eben Hi ! da, es sollte aber Hi username ! dastehen.

ich weiss erlich gesagt nicht woran das liegt, habe mir auch schon login scripts heruntergeladen und versucht, den fehler zu finden. wäre für hilfe sehr dankbar :)

btw: das einloggen funktioniert ohne probleme, es geht mir also darum irgendwie den "nick" in der session zu "speichern" und ihn immer abrufbereit zu haben.

thx :)
 
Mitglied seit
02.08.2002
Beiträge
2.781
Reaktionen
0
wie schon erwähnt würde ich eine direkte zuweisung an $_SESSION nehmen - session_register registriert die variable, aber sie steht danach afaik halt als diese variable (in deinem falle $nick) zur verfügung... ich habs immer über eine direkte zuweisung gelöst und es hat funktioniert :)
 
Mitglied seit
02.08.2002
Beiträge
2.781
Reaktionen
0
If your script uses session_register(), it will not work in environments where register_globals is disabled.

das fand ich im link vom poster über mir :)
da man immer mit register_globals disableded coden sollte (und das normalerweise auch so eingestellt ist), ist es nicht weiter verwunderlich, das dein weg nicht funktionierte.
 

simon4ever

Guest
in deinem link steht es ja auch wie ich es gemacht habe:
$barney = "A big purple dinosaur.";
session_register("barney");


$_SESSION["zim"] = "An invader from another planet.";

# The old way was to use $HTTP_SESSION_VARS
$HTTP_SESSION_VARS["spongebob"] = "He's got square pants.";


wenn ich statt
$nick = $result['nick'];
session_register('nick');

direkt etwas einsetze, also zB $nick = "simon"; funktioniert es auch nicht (selbiges bei $_SESSION['nick']=$result['nick']; ). kann es sein, dass an mir liegt ? ich hoste das ganze im moment nämlich auf meinem pc
 

killerchicken_inaktiv

Guest
poste doch mal die Ausgabe der phpinfo...
 

simon4ever

Guest
hat sich erledigt, wenn ichs auf meinen webspace hochlade funktioniert alles :)

thx
 

cart

Technik/Software Forum
Mitglied seit
01.08.2002
Beiträge
4.873
Reaktionen
0
Ort
New York
wenn der login richtig ist ->
$_SESSION['nick'] = $nick;
und dann übergeben mit admin.php?nick=$nick
dann kannst sie in der admin.php mit $_GET['nick'] wieder rausholen und weiternutzen.

vllt kannst ja auch admin.php?nick=$_SESSION['nick'] übergeben. dann sparrst dir die sache mit $nick.
 
Mitglied seit
02.08.2002
Beiträge
2.781
Reaktionen
0
evtl. hast du vielleicht einfach das session managment bei deinem lokalem server bzw. PHP Modul falsch eingestellt. Schau dir halt einfach die php.ini an. kann natürlich sein, dass es auch an register_globals liegt, dass leider auf vielen webservern "on" gesetzt ist. dadurch kann es halt zu sicherheitsproblemen kommen - während auch schlechter sprachkonstruckte funktionien...

ich würde auf jeden fall auf den $_SESSION[blbalba] syntax zurückgreifen, da es z.Z. der sicherste und beste ist :)
 

cart

Technik/Software Forum
Mitglied seit
01.08.2002
Beiträge
4.873
Reaktionen
0
Ort
New York
hmm vllt liegts auch daran, dass du in der admin.php ne neue session startest t_t ... ^^
 
Mitglied seit
02.08.2002
Beiträge
2.781
Reaktionen
0
Original geschrieben von cart
hmm vllt liegts auch daran, dass du in der admin.php ne neue session startest t_t ... ^^

da sollte sich wohl nochmal jemand mit den sessionfunktionen beschäftigen :)
 

cart

Technik/Software Forum
Mitglied seit
01.08.2002
Beiträge
4.873
Reaktionen
0
Ort
New York
mannnnnn ich bin seit 15.30h heute am trinken gewesen.... war halt nicht ganz aufmerksam und korrigigere mich auf meinen ersten post :D
 
Oben