hallöchen!
ich hab ein echt lustiges login-problem ...
das liegt weniger am login an sich sondern an ders session ...
ist übrigens mein erstes projekt das erklärt den nicht optimiertn code ...
meine variable
wird mir von irgendwas überschrieben ... ich hab aber keine ahnung warum ...
also folgendes:
man loggt sich ein über form ...
dann wird der zugang geprüft und je nachdem ob user und passwort stimmen wird dann die $_session['user'] und andere gesetzt
code:
näcshte seite:
hier in der datei wird die
$_SESSION['user'] richtig wiedergegeben ...
innerhalb der index.php allerdings schon wieder nicht ...
ich hab die mal ausgegeben ... nur zur kontrolle ...
die
$_SESSION['user'] wird = "nein" gesezt ...
die anderen session variablen bleiben allerdings gleich ...
und das ist mir vollkommen unbegreiflich ...
ich übergeb sogar schon ne session_id mit ... auch das bringtz nicht ...
meine index.php:
ist alles sehr einfach gehalten ...
zu sehn gibts das ganze unter:
http://reloaded.anthillinside.de/themes/standart/index.php
hab auch mal nen useraccount für euch angelegt damit ihr das problem auch mal wirklich zu sehn bekommt:
user: tutorials.de
pass: 123456
über einen lösungsansatz würde ich mich sehr freun!
mfg
deRIchie
ich hab ein echt lustiges login-problem ...
das liegt weniger am login an sich sondern an ders session ...
ist übrigens mein erstes projekt das erklärt den nicht optimiertn code ...
meine variable
PHP:
$_SESSION['user']
also folgendes:
man loggt sich ein über form ...
dann wird der zugang geprüft und je nachdem ob user und passwort stimmen wird dann die $_session['user'] und andere gesetzt
code:
PHP:
$user_g = $_SESSION['user'];
$passwort_g = $_SESSION['passwort'];
$erg = mysql_query("SELECT * FROM user WHERE user LIKE '$user_g'");
if(mysql_num_rows($erg)==1){
while($array = mysql_fetch_array($erg)) {
$id = $array['id'];
$user = $array['user'];
$passwort = $array['passwort'];
$status = $array['status'];
if ($user_g == $user and $passwort_g == $passwort) {
$_SESSION['user']= "$user";
$_SESSION['user_id'] = "$id";
$_SESSION['login'] = "yes";
$_SESSION['status'] = "$status";
$sid = session_id();
$meld = "<p align=\"center\"><br><br>hallo $user<br>login erfolgreich<br><a href=\"index.php?n_id=$n_id&p_id=rechte&l_id=logged&PHPSESSID=$sid\">weiter</a></p>";
}
else {
$_SESSION['user']= "$user";
$meld = "<p align=\"center\"><br><br>falsches passwort<br><a href=\"index.php?n_id=$n_id&p_id=$p_id&l_id=login&PHPSESSID=$sid\" class=\"login_link\">zurück zum login</a></p>";
}
}
}
else {
$_SESSION['user']= "no";
$meld = "<p align\"center\"><br><br>unbekannter user<br><a href=\"index.php?n_id=$n_id&p_id=$p_id&l_id=login\" class=\"login_link\">zurück zum login</a></p></div>";
}
echo $meld;
näcshte seite:
PHP:
$user = $_SESSION['user'];
$status = $_SESSION['status']; # username und recht aus session
echo #erst einmal hintergurnd laden
"<td height=\"80\" colspan=\"2\" align=\"right\" valign=\"top\" class=\"login\"><div style=\"z-index:-1; width:155px;\"><img src=\"$design/body/login_bg.gif\" width=\"155\" height=\"70\">
<div style=\"z-index:1; position:relative; left: 0px; top: -75px; width:118px;\">
<table width=\"118\" border=\"0\" align=\"right\" cellpadding=\"0\" cellspacing=\"0\" style=\"table-layout:fixed;\" class=\"login\"><tr><td>
<p align=\"center\"><br>eingelogged als<br>$user<br><a href=\"index.php?n_id=home&p_id=news&logout=true\" class=\"login_link\">logout</a></p>
</td></tr>
</table></div></div>
</td>
</tr>
</table>
";
hier in der datei wird die
$_SESSION['user'] richtig wiedergegeben ...
innerhalb der index.php allerdings schon wieder nicht ...
ich hab die mal ausgegeben ... nur zur kontrolle ...
die
$_SESSION['user'] wird = "nein" gesezt ...
die anderen session variablen bleiben allerdings gleich ...
und das ist mir vollkommen unbegreiflich ...
ich übergeb sogar schon ne session_id mit ... auch das bringtz nicht ...
meine index.php:
PHP:
<?php session_start(); # session starten
#session-ersteintrag -> wenn keine session wird session'login' = no gesetz
if (!isset ($_SESSION['login']))
{
$_SESSION['login'] = "no";
$_SESSION['user'] = "no";
}
else
{
$sid = $_GET['PHPSESSID'];
}
#bekommen der n_id oder = home
if (!isset ($_GET['n_id']))
{
$n_id = "home";
}
else {
$n_id = $_GET['n_id'];
}
#bekommen der p_id oder = news
#$p_id = $_GET['p_id'];
if (!isset ($_GET['p_id']))
{
$p_id = "news";
}
else {
$p_id = $_GET['p_id'];
}
#bekommen der m_id bei member
if ($p_id == "member"){
$m_id = $_GET['m_id'];
}
#bekommen der page bei news
if ($p_id == "news"){
if (!isset ($_GET['page'])) {$page = 1;} else {$page = $_GET['page'];}
}
#login-page id bekommen oder = login
$l_id = $_GET['l_id'];
if (!isset ($l_id))
{
$l_id = "login";
}
if ($_SESSION['login'] == "yes")
{
$l_id = "loggedin";
}
if ($l_id == "log-conf") {
$_SESSION['user'] = $_POST['user'];
$_SESSION['passwort'] = $_POST['passwort'];
}
#logout
if ($_GET['logout'] == "true")
{
session_unset();
session_destroy();
session_start();
$_SESSION['login'] = "no";
$l_id = "login";
}
#design erstmal = rs ... später anders
$design = "rshield";
#includieren der anzeigeseiten
include ("top.php"); #topseite
include ("navi.php"); #navigationsseite je nach n_id
include ($l_id.".php"); #login-datei
include ("rahmen.php"); #rahmenseite
include ($p_id.".php"); #anzeigeseite
include ("bottom.php"); #bottom-seite
#kontrolle der session daten
echo $_SESSION['user']; echo "<br>";
echo $_SESSION['login']; echo "<br>";
echo $_SESSION['status'];?>
ist alles sehr einfach gehalten ...
zu sehn gibts das ganze unter:
http://reloaded.anthillinside.de/themes/standart/index.php
hab auch mal nen useraccount für euch angelegt damit ihr das problem auch mal wirklich zu sehn bekommt:
user: tutorials.de
pass: 123456
über einen lösungsansatz würde ich mich sehr freun!
mfg
deRIchie