php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2006

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 01.11.2006, 17:03  
Gast
 
Beiträge: n/a
Standard Session per resfresh neu schreiben,wie?

Hi, ich hab folgendes Problem und zwar will ich eine nummer in eine session speichern soweit klappt das auch ganz gut, nur leider wird die Session nicht neu geschrieben wenn ich die seite per f5 aktualisiere.

Die nummer ändert sich ständig bei jedem seitenaufruf.


Und hier noch die Code ausschnitte für was ich dies benötige.

PHP-Code:
    session_name('sid');
    
session_start ();
    
$sidold=session_id();
    if(isset(
$_SESSION['oldsid'])){
        
$sidold $_SESSION['oldsid'];
    }
    
session_regenerate_id();
    
$sid=session_id();
    
    
$sidu '';
    
$sidu2 '';

    if(!isset(
$_COOKIE['sid'])) {
        
$sidu "?sid=$sid";
        
$sidu2 "&sid=$sid";
    }
    
$_SESSION['oldsid']= $sid
PHP-Code:
                $userexisterg $db->query("SELECT user_id FROM v_user_online WHERE sid = '".$sidold."'");
                
$userexist $db->num_rows($userexisterg);
    
                if(
$userexist == '0') {
                    
$db->query("INSERT INTO v_user_online (user_id, lastactivity, sid) VALUES ($userid, '".time()."', '".$sid."')");
                }else{
                    
$db->query("UPDATE v_user_online SET sid='".$sid."' WHERE sid = '".$sidold."'");
                } 
Das genaue Problem was dadurch entsteht ist das wenn man per refresh die seite neu lädt und die id in der session nicht aktualisiert wird wird die if abfrage immer erfüllt und es wird jedesmal ein neuer eintrag in die datenbank gemacht.

Wenn ich die seite per link immer wieder aufrufe geht es einwandfrei, da da sich die session immer ändert.
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 01.11.2006, 17:13  
Erfahrener Benutzer
 
Registriert seit: 21.07.2005
Beiträge: 209
pepe24
Standard

Zugegeben habe ich mir den Code jetzt nicht genau angesehen, aber frage erst einmal, was Du damit denn bezwecken willst. Willst Du damit eine höhere Sicherheit erreichen?
pepe24 ist offline  
Alt 01.11.2006, 17:58  
Gast
 
Beiträge: n/a
Standard

Da ja die Session id per url übertragen wird kanns ich jeder der diese Session id erhält und ebenfalls cookies deaktiviert hat mit dem usernamen einlogen.

Man könnte es natürlich auch nur so machen das nur bei denn eingelogten usern die id ständig erneuert wird. Ich glaub anderst wird es auch nicht möglich sein.
 
Alt 01.11.2006, 18:50  
Erfahrener Benutzer
 
Registriert seit: 21.07.2005
Beiträge: 209
pepe24
Standard

Speicher dazu doch einfach IP und SID des users ab. Bei jedem Seitenaufruf überprüfst Du dann, ob IP und SID noch zusammenpassen. Wenn ja, ist es der richtige, wenn nicht, dann schmeisst Du ihn aus der Session raus.

Ist doch viel praktischer, schneller und einfacher.
pepe24 ist offline  
Alt 01.11.2006, 20:42  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

warum IP speichern blödsinn ist: http://www.php-faq.de/q/q-sessions-ip.html
nikosch ist offline  
Alt 01.11.2006, 20:56  
Gast
 
Beiträge: n/a
Standard

Ich hab es nun so gelöst das nur bei eingelogten Usern sich die id ständig ändert.

Bei denn Usern die als "Gast" unterwechs sind bleibt die id immer gleich.

Hier nun mein jetziger php code:

PHP-Code:
    session_name('sid');
    
session_start ();

    if(isset(
$_SESSION['v_user_id'])){
        
session_regenerate_id();
    }
    
$sid=session_id(); 
PHP-Code:
$isuseronlineerg $db->query("SELECT user_id FROM v_user_online WHERE sid = '".$sid."'");
    
$iseruseronline $db->num_rows($isuseronlineerg);
    
    
//Überprüfen ob Session vorhanden
    
if (isset($_SESSION['v_user_id'])) {
        
//Definierung von Variablen in der Template Klasse
        
$user $db->query_first("SELECT username, mail, group_id FROM v_user WHERE id = $_SESSION[v_user_id]");
        
$username $user['username'];
        
$userid $_SESSION['v_user_id'];
        
//Gruppenrechte aus der Datenbank auslesen
        
$grouprights $db->query_first("SELECT * FROM v_user_groups_rights WHERE group_id = $user[group_id]");
    }else{
        
$userid '0';
    }
    

        if(isset(
$_SESSION['v_user_id'])){
                
$userexisterg $db->query("SELECT user_id FROM v_user_online WHERE user_id = $_SESSION[v_user_id]");
                
$userexist $db->num_rows($userexisterg);
                if(
$userexist == '0') {
                    
$db->query("INSERT INTO v_user_online (user_id, lastactivity, sid) VALUES ($userid, '".time()."', '".$sid."')");
                }else{
                    
$db->query("UPDATE v_user_online SET sid='".$sid."', lastactivity ='".time()."' WHERE user_id = $_SESSION[v_user_id]");
                }
        }else{
                
$userexisterg $db->query("SELECT user_id FROM v_user_online WHERE sid = '".$sid."'");
                
$userexist $db->num_rows($userexisterg);

                if(
$userexist == '0') {
                    
$db->query("INSERT INTO v_user_online (user_id, lastactivity, sid) VALUES ($userid, '".time()."', '".$sid."')");
                }else{
                    
$db->query("UPDATE v_user_online SET sid='".$sid."', lastactivity ='".time()."' WHERE sid = '".$sid."'");
                }
        } 
 
Alt 01.11.2006, 21:03  
Erfahrener Benutzer
 
Registriert seit: 21.07.2005
Beiträge: 209
pepe24
Standard

php-faq.de ist zwar momentan (für mich) nicht erreichbar, aber ich lass mich immer gern verbessern. Da bin ich mal gespannt!
pepe24 ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Session Problem karina_02 PHP Tipps 2008 6 18.05.2008 22:37
Session Variablen als Referenz!? O_o Sam781 PHP-Fortgeschrittene 4 01.10.2007 11:19
Problem bei session Lifetime Cyberbob_at_tot PHP Tipps 2007 5 05.06.2007 17:47
session nach seitenwechsel leer... GELight PHP Tipps 2006 8 17.09.2006 15:17
Session Logout Login Navigation TailerD PHP Tipps 2006 10 24.06.2006 17:12
Frage zur Anwendung einer Session mehrfach... GELight PHP Tipps 2006 10 12.03.2006 16:47
[Erledigt] php session problem :( PHP Tipps 2005-2 5 21.10.2005 16:37
Session abschaltbar?? Probleme mit Objekten in Session! becks123 PHP-Fortgeschrittene 3 19.09.2005 15:47
Session wird nicht angelegt PHP Tipps 2005-2 7 24.07.2005 13:35
Kreieren einer Session PHP Tipps 2005 11 28.05.2005 15:16
verliere Session Sonja PHP Tipps 2005 3 27.04.2005 09:32
Session Problem PHP-Fortgeschrittene 3 18.02.2005 14:37
[Erledigt] Formulardaten in einer Session speichern, per Link übergeben PHP Tipps 2004-2 2 29.12.2004 15:47
[Erledigt] Hilfe...PhpBB Session Problem!! PHP Tipps 2004-2 2 15.12.2004 18:28
$_GET und Session PHP Tipps 2004 9 20.06.2004 19:17

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
sid ändert sich ständig, $_session neu beschreiben

Alle Zeitangaben in WEZ +2. Es ist jetzt 14:26 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.