Session Verständnisproblem

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Session Verständnisproblem

    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:

    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; 
    dann habe ich ein script, das fast auf jeder seite included wird:

    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();
            }
          } 
    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

  • #2
    update

    Kommentar


    • #3
      if (!session_is_registered ($rc_session)){


      also das geht schon ma nich, da die session nich mal gestartet ist..

      mach session_start() ganz oben auffer seite hin, nims aus dem script raus, dann sollte alles gehn

      mfg

      Kommentar


      • #4
        ich wollte mit if (!session_is_registered ($rc_session)){
        eigentlich checken, ob die session schon gestartet ist und falls nicht die alte session anhand der id wieder aufnehmen...meinst du ich soll einfach nur session_start() in jede seite eintragen?

        Kommentar

        Lädt...
        X