Also ich mache ein LogIn-Skript für den Admin-Bereich meiner Homepage,
welches mit Sessions geregelt wird und die Myqsl-Datenbank abfragt.
Wenn ich die Session-Variable registriere ist sie auf der selben Seite initialisiert.
Wenn ich dann aber weiterleite, und auf der nächsten Seite die Session starte,
ist die Variable unauffindbar.
Auch mit der SID hab ich es schon probiert, klappt aber auch nit.
Ich hab auf einer anderen Page in meinem Account ebenfalls einen Login,
der ist aber anders aufgebaut, aber. Also kann es an der Session nicht liegen.
Datei news.php aus dem Admin-Bereich, welche durch das Include zum Login weiterleitet
Diese Include-Datei login.inc.php kontrolliert, ob die Rechte für diese Seite reichen, wenn nicht wird auf login.php weitergeleitet.
Dieses Skript ist die Datei login.php, welche zum einloggen dient.
Vor dem Redirect in der Datei login.php ist der Wert der Variablen noch da,
nach dem Redirect in der Datei news.php ist der Wert auch VOR dem Include nicht da, auch wenn ich die Variable neu registriere.
Ich sollte noch sagen, dass das Script aber auf manchen Computern und der Fehler generell nur mit IE (ab 5.5?) auftritt.
Bei Mozilla es auch auf meinem Rechner!
welches mit Sessions geregelt wird und die Myqsl-Datenbank abfragt.
Wenn ich die Session-Variable registriere ist sie auf der selben Seite initialisiert.
Wenn ich dann aber weiterleite, und auf der nächsten Seite die Session starte,
ist die Variable unauffindbar.
Auch mit der SID hab ich es schon probiert, klappt aber auch nit.
Ich hab auf einer anderen Page in meinem Account ebenfalls einen Login,
der ist aber anders aufgebaut, aber. Also kann es an der Session nicht liegen.
Code:
<?php include("../include/login.inc.php"); ?>
<?php include("../include/start.inc.php"); ?>
<!-- Quelltext Anfang -->
<!-- Quelltext Ende -->
<?php include("../include/end.inc.php"); ?>
Code:
<?php
session_start();
include("../extern/pref.php");
if(!isset($access))$access = 1;
if(session_is_registered("sess_admin") && $_SESSION['sess_admin']) {
$_userid = $_SESSION['sess_admin'];
$recht = mysql_query("Select rechte From hsg_rechte Where admin = '".$_userid."'");
$recht = mysql_fetch_row($recht);
$recht = $recht[0];
if($recht > $access) header("Location: ../admin/login.php?b=0");
}
else header("Location: ../admin/login.php?b=1");
?>
Code:
<?php
session_start();
include("../extern/pref.php");
mysql_query("Create Table If Not Exists hsg_rechte (
`num` int(2) Not Null Auto_Increment,
`admin` char(200) Not Null,
`pw` char(32) Not Null,
`rechte` char(1) Default 1,
Primary Key(`num`)
)");
$err = array(false,false,false);
if(isset($_POST['login'])) {
$admin = $_POST['admin'];
$pw = $_POST['pw'];
$adminQry = mysql_query("Select rechte From hsg_rechte Where admin = '".$admin."'");
$pwQry = mysql_query("Select rechte From hsg_rechte Where pw = '".$pw."'");
$allQry = mysql_query("Select admin From hsg_rechte Where admin = '".$admin."' And pw = '".$pw."'");
if(mysql_num_rows($adminQry)==0) $err[0] = true;
elseif(mysql_num_rows($pwQry)==0) $err[1] = true;
if(mysql_num_rows($allQry)==1) {
$sess_admin = mysql_fetch_row($allQry);
$sess_admin = $sess_admin[0];
session_register('sess_admin');
header("Location: ../admin/news.php");
}
}
include("../include/start.inc.php");
?>
<tr><td class="header">Einlogseite</td></tr>
<tr><td class="header2">Diese Seite benötigt <?php if($_GET['b']==0)echo "höhere" ?> eine Zugangsberechtigung</td></tr>
<?php
if($_GET['b']==0) { ?>
<tr><td> </td></tr>
<tr><td><a href="javascript:history.back()">zurück</a></td></tr>
<?php }
else { ?>
<form method="post">
<tr><td><table width="250" class="eintrag" cellpadding="0" cellspacing="0">
<tr align="left">
<td nowrap><?php if($err[0])echo "Name nicht vorhanden<br>"; ?><strong>Adminname:</strong></td>
<td><input type="text" name="admin" style="width: 150px" value="<?php echo $_POST['admin'] ?>"></td>
</tr>
<tr align="left">
<td nowrap><?php if($err[1])echo "Passwort falsch<br>"; ?><strong>Passwort:</strong></td>
<td><input type="password" name="pw" style="width: 150px" value="<?php echo $_POST['pw'] ?>"></td>
</tr>
<tr>
<td><input type="submit" name="login" value="einloggen"></td>
</tr>
</table></td></tr>
<tr><td> </td></tr>
</form>
<?php } ?>
<?php include("../include/end.inc.php"); ?>
Vor dem Redirect in der Datei login.php ist der Wert der Variablen noch da,
nach dem Redirect in der Datei news.php ist der Wert auch VOR dem Include nicht da, auch wenn ich die Variable neu registriere.
Ich sollte noch sagen, dass das Script aber auf manchen Computern und der Fehler generell nur mit IE (ab 5.5?) auftritt.
Bei Mozilla es auch auf meinem Rechner!