hi, ich bin mir noch nicht so sicher, ob das mit den sessions bei mir richtig hinhaut...ich möchte eigentlich nur ne session starten, wenn ein bekannter user die seite besucht, als starte ich die session nach dem login, sieht so aus:
dann habe ich ein script, das fast auf jeder seite included wird:
das funktioniert so halb glaube ich . wenn ich meine seite das erste mal aufrufe, ist hinter jedem link die sessid automatisch angehangen. ich hab mal einen probelink die sid mit übergeben, bei diesem link wird sid 2 mal angezeigt. wenn ich einem link folge, wird die seite zwar mit der id aufgerufen, aber die anderen (alten) links sehen wieder normal aus (da steht nix mehr von bla.php?s=sdfdahf78dsf6a06f... nur noch bla.php), abgesehen von dem link mit der manuell eingefügtem sid. (ich hoffe ihr versteht mich )
mach ich das soweit richtig, bzw was mach ich falsch oder kann ich besser machen?? hilfe wäre nett
thx
PHP-Code:
switch ($action) {
case "check":
if (!$login_username) {
$loginerror = "Du hast keinen Nick angegeben!";
} elseif (!$login_password) {
$loginerror = "Du hast kein Passwort angegeben!";
} else {
$query = "SELECT id, username, pwd, lastlogin, groupid, sid, status FROM rc_member WHERE username='$login_username'";
$result = mysql_query($query,$connectdb);
$num = mysql_num_rows($result);
if ($num == 0) {
$loginerror = "Dieser Nick existiert nicht!";
} else {
list($id, $member, $password, $lastlogin, $groupid, $sid, $status) = mysql_fetch_array($result);
$login_password = base64_encode($login_password);
if ($status == 1) {
if ($login_password == $password) {
$ip = getenv('Remote_Addr');
mysql_query("UPDATE rc_member SET lastip='$ip' WHERE username='$member'",$connectdb);
session_name("s");
session_start();
session_register($sid);
session_register($rc_session);
session_register($member);
session_register($groupid);
session_register($id);
$rc_session = true;
$date = time();
$sid = session_id();
mysql_query("UPDATE rc_member SET sid='$sid', lastlogin='$date' WHERE username='$member'",$connectdb);
$cookiecontent = "$id|$sid";
setcookie("rcclan","$cookiecontent",time()+3600*24*300);
if ($lastlogin != 0) {
$date = date("d.m.Y \u\m H:i", $lastlogin);
$tpllogin = "mid_loginok";
} else {
$tpllogin = "mid_loginokfirst";
}
$template = gettemplate($tpllogin,0);
$template = ereg_replace("\#member\#", $member, $template);
$template = ereg_replace("\#date\#", $date, $template);
echo $template;
} else {
$loginerror = "Das angegebene Passwort ist falsch!";
}
} else {
$loginerror = "Dein Konto wurde deaktiviert. Falls unberechtigt, schick mir ne Mail";
}
}
}
break;
PHP-Code:
include("inc/config.php");
if (!session_is_registered ($rc_session)){
if ($HTTP_COOKIE_VARS["rcclan"] != NULL) {
$cookieget = $HTTP_COOKIE_VARS["rcclan"];
list ($id, $sid) = explode ("|", $cookieget);
$query = "SELECT username, groupid FROM rc_member WHERE id='$id' AND sid='$sid'";
$result = mysql_query($query,$connectdb);
list($member, $groupid) = mysql_fetch_array($result);
session_name("s");
session_start();
session_register($sid);
session_register($rc_session); //is das überhaupt nötig??? bzw
session_register($member); //reicht es nur die session zu starten
session_register($groupid); //und die alte id neu zu setzen???
session_register($logincheck);
$logincheck = 1;
$rc_session = true;
session_id($sid);
$cookiedate = date("d.m.Y um H:i Uhr");
$cookiecontent = "$id|$sid";
setcookie("rcclan","$cookiecontent",time()+3600*24*300);
} else {
session_name("s");
session_start();
session_register($sid);
$sid = session_id();
}
}
mach ich das soweit richtig, bzw was mach ich falsch oder kann ich besser machen?? hilfe wäre nett
thx
Kommentar