PHP | Session Problem
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
art
bar belegen
code
date
frage
header
index
jemand
login
problem
server
session
sicherheit
speichern
status
tip
vermeiden
version
verwenden
zugriff
-
Hallo zusammen,
ich stehe mal wieder vor einem Rätsel ^^
Ich hatte eine Art Verwaltungsscript geschrieben, was auf meinem Server einwandfrei funktioniert.
Der Login läuft über Sessions.
So jetzt packe ich das Script auf den Server von der Person, für die das Script gedacht ist und nun
funktioniert nix mehr. :(
Das komische ist, auf \"session_is_registered\" mit \"true\" geantwortet wird. Die Sessionvariablen aber nicht zur Verfügung stehen.
Mein Login sieht so aus:
<?php session_start(); $error = \"\"; include \'connect.php\'; include \'errors.php\'; if((!isset($_POST[\'username\'])) OR ($_POST[\'username\'] == \"\") OR (!isset($_POST[\'passwort\'])) OR ($_POST[\'passwort\'] == \"\")){ $error = \"1\"; } if($error == \"\"){ $username = mysql_escape_string($_POST[\'username\']); $passwort = mysql_escape_string($_POST[\'passwort\']); $sql = \"SELECT * FROM \".$tblname.\"_user WHERE name = \'\".$username.\"\'\"; $result = mysql_query($sql) OR die(mysql_error()); $row = mysql_fetch_array($result); if($row[\'id\'] == \"\"){ $error = \"2\"; } } if($error == \"\"){ if($row[\'passwort\'] != $passwort){ $error = \"3\"; } } if($error == \"\"){ $login_date = date(\"d.m.Y\"); $login_time = date(\"H:i\"); $session_status = $row[\'status\']; session_register(\'username\'); session_register(\'login_date\'); session_register(\'login_time\'); session_register(\'session_status\'); header(\"Location:layout.php\"); exit; } header(\'Location:index.php?error=\'.$error); ?>
Im nächsten Script wird dann mit :
if(!session_is_registered(\'username\')){ header(\"Location:index.php?error=7\"); }
abgefragt.
Die Variablen wie \"username\" usw sind aber nicht vorhanden.
Wie kann das sein?
Wäre für jeden Tipp dankbar
Gruß -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Hast du im nächsten Script session_start() aufgerufen?
Bei manchen Servern ist das nicht nötig, da in der php.ini session.auto_start = 1 angegeben ist. Zur Sicherheit, sollte man aber dennoch immer session_start() verwenden um solche Probleme zu vermeiden.
Bei neueren php-Versionen sollte man außerdem nicht mehr session_register() verwenden, sondern die Sessionvariablen mit $_SESSION[\'foo\']=\'bar\'; belegen. -
Danke schön ^^
Hast du im nächsten Script session_start() aufgerufen?
Bei manchen Servern ist das nicht nötig, da in der php.ini session.auto_start = 1 angegeben ist. Zur Sicherheit, sollte man aber dennoch immer session_start() verwenden um solche Probleme zu vermeiden.
Hatte ich auch schon dran gedacht, dass Problem ist nämlich, dass der Server bei T-Online ist und man da auf solche sachen wie die php.ini keinen Zugriff hat
Bei neueren php-Versionen sollte man außerdem nicht mehr session_register() verwenden, sondern die Sessionvariablen mit $_SESSION[\'foo\']=\'bar\'; belegen.
Damit hats jetzt geklappt. Vielen Dank =) -
Ich hätte da auch was zu Sessionen. Kann man eine Session auf eine bestimmmte IP speichern?
Die IP auszulesen und wie das Logindatum und -uhrzeit in der Session zu speichern sollte kein Problem sein.
Bedenke aber das diverse Proxy\'s ständig die IP wechslen. Prominentes Beispiel ist AOL das die IPs rotiert und somit der Benutzer sporadisch neu anmelden müsste.
(siehe auch http://www.php-faq.de/q/q-sessions-ip.html)
Grüße
-
Dann hast du was falsch gemacht, denn das sollte definitiv nicht so sein.
Aber zu Frage: du kannst die IP zB in einer Sessionvariable ála $_SESSION[\'ip\']=$_SERVER[\'REMOTE_ADDR\']; speichern und bei jedem Seitenaufrug überprüfen, ob die IP in der Session gleich der IP des Users entspricht. Aber wie gesagt, eigentlich sollte das nicht nötig sein, denn selbst wenn man von einem Rechner aus mit zwei unterschiedlichen Browsern versucht einen mit Sessions geschützen Bereich aufzurufen, funktioniert das nicht. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage