- Ad -
php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here!

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #31 (permalink)  
Alt 19-06-2009, 09:46
combie
 PHP Expert
Links : Onlinestatus : combie ist offline
Registriert seit: May 2006
Beiträge: 2.925
combie befindet sich auf einem aufstrebenden Ast
Standard

Du kannst dir gar nicht vorstellen, wie lange das schon so geht. Der liebe deedee hat sich da richtig festgefressen.

Ich warte voller Spannung, ob da nicht irgendwann mal Einsicht kommt...
__________________
Wir werden alle sterben
Mit Zitat antworten
  #32 (permalink)  
Alt 19-06-2009, 15:39
deedee
 Registrierter Benutzer
Links : Onlinestatus : deedee ist offline
Registriert seit: Jun 2009
Beiträge: 80
deedee befindet sich auf einem aufstrebenden Ast
Standard

Wenn ich mir was vornehme, beiß ich mich auch durch
Und sollte es nicht gehen ... naja ... erzwingen kann man auch nichts.

@onemorenerd
Danke für diese ausführliche Info. Werde ich mir noch durchlesen. Aber nicht jetzt. Eine Zahnlücke hat was dagegen.
Mit Zitat antworten
  #33 (permalink)  
Alt 23-06-2009, 10:51
deedee
 Registrierter Benutzer
Links : Onlinestatus : deedee ist offline
Registriert seit: Jun 2009
Beiträge: 80
deedee befindet sich auf einem aufstrebenden Ast
Standard

Back again.

@asp2php
Wieso glaubst du, dass das eine Schnapsidee ist?

@onemorenerd
Zitat:
Ausloggen darf nicht übersehen werden
Variante ohne locking:
Prozess A: session_start; Session-Daten gefunden; Daten auslesen
Prozess B: User loggt sich aus, Session wird zerstört
Prozess A: am Scriptende wird Session neu angelegt
Obwohl er sich ausgeloggt hatte, ist er lt. Session-Daten noch immer eingeloggt.

Variante mit locking:
Prozess A: session_start; Session-Daten gefunden; Daten auslesen; low-level-Lock auf Session-Daten
Prozess B: User möchte sich ausloggen; geht zum aktuellen Zeitpunkt nicht, da Session-Daten gelockt
Prozess A: Scriptende
Prozess B: User wird ausgeloggt, Session wird zerstört
User wurde sauber ausgeloggt.

Hier ginge zwar nichts kaputt, wenn man ohne locking arbeitet, aber mit locking arbeitet man sauberer. Sehe ich das richtig?

@combie:
Ich suche übrigens immer noch einen Fall, wo alles drunter und drüber geht, wenn man ohne locking arbeitet. Habe aber noch keinen gefunden.

Geändert von deedee (23-06-2009 um 11:00 Uhr)
Mit Zitat antworten
  #34 (permalink)  
Alt 23-06-2009, 10:59
combie
 PHP Expert
Links : Onlinestatus : combie ist offline
Registriert seit: May 2006
Beiträge: 2.925
combie befindet sich auf einem aufstrebenden Ast
Standard

Hier mal ein Beispiel, wo sich session_regenerate_id() und das SessionLocking in die Wolle bekommen.
Und schon hagelts die schönsten RaceConditions.

PHP-Code:
<?php
error_reporting
(-1);
ini_set('display_errors',TRUE);

session_start();

//session_regenerate_id(); // erzeugt Race Conditions
//session_regenerate_id(TRUE); // erzeugt Race Conditions und Fehlermeldungen

sleep(2);

if(isset(
$_GET['frame']))
{
  ++
$_SESSION['hitcounter'];
  echo 
'Zeit: '. (time() - $_SESSION['richtzeit']) .'<br>';
  echo 
'Hits: '$_SESSION['hitcounter'] .'<br>';
  exit;
}

$_SESSION['richtzeit']  = time();
$_SESSION['hitcounter'] = 0;

?>
<frameset rows="20%,20%,20%,20%,20%">
  <frame src="?frame=<?php echo mt_rand()?>" name="test1">
  <frame src="?frame=<?php echo mt_rand()?>" name="test2">
  <frame src="?frame=<?php echo mt_rand()?>" name="test3">
  <frame src="?frame=<?php echo mt_rand()?>" name="test4">
  <frame src="?frame=<?php echo mt_rand()?>" name="test5">
</frameset>
Die Zeiten sollten im 2 Sekunden Takt in die Frames tröpfeln.
__________________
Wir werden alle sterben
Mit Zitat antworten
  #35 (permalink)  
Alt 23-06-2009, 11:22
deedee
 Registrierter Benutzer
Links : Onlinestatus : deedee ist offline
Registriert seit: Jun 2009
Beiträge: 80
deedee befindet sich auf einem aufstrebenden Ast
Standard

Echt interessant. Anscheinend kommt diese condition zustande, wenn man ein regenerate auf eine Session versucht, die gar nicht mehr existiert (wenn ich das richtig verstanden habe).

Also braucht man wohl im eigenen Session-Handler wirklich ein locking in der Session-start oder -read-Funktion(/Methode), sofern eine Session bereits existiert, d. h. in der MySQL-DB ein Eintrag in meiner Session-Tabelle gefunden wurde.

O. T.: Dein "wir werden alle sterben"-Link führt übrigens ins Nirvana, combie

EDIT: Damit wäre zwar geklärt, dass man mit locks arbeiten muss, leider stehe ich aber nachwievor vor dem gleichen Problem, das ich gerne irgendwie lösen würde: Wie kann man bei MySQL vor einem row-level-lock auf Tabelle A ein table-lock auf Tabelle B machen?

Geändert von deedee (23-06-2009 um 11:45 Uhr)
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
session automatischer logoff bevor die session ausläuft wirkungsquantum BRAINSTORMING PHP/SQL/HTML/JS/CSS 3 18-04-2007 14:35
IIS6 + WServer 2003 + Session + immer andere Session ID ringintegral Fragen zu Installation & Konfiguration (LAMP, WAMP & Co.) 3 19-10-2005 05:17
Überprüfen ob Session vorhanden, wenn nicht Session anlegen st@tic PHP Developer Forum 28 13-07-2005 13:56
Session & setting session.bug_compat_42 tsaenger PHP Developer Forum 3 24-02-2005 17:14
Smarty, session.use_trans_sid und keine Session-ID im Link mrhappiness PHP Developer Forum 4 09-08-2004 12:34

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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


PHP News

MariaDB 5.5 veröffentlicht
MariaDB 5.5 veröffentlichtDie freie MySQL-Alternative MariaDB wurde in der stabilen Version 5.5.23 veröffentlicht und soll einige Verbesserungen gegenüber Oracles Communityversion von MySQL mitbringen.

16.04.2012 | Berni

Deutsche Yii Framework Community
Deutsche Yii Framework CommunitySeit dem 19.03.2012 gibt es für die Yii PHP Framework Community ein deutsches Zuhause.

20.03.2012 | dhcomputer

 

Aktuelle PHP Scripte

EM 2012 Tipp-Spiel ansehen EM 2012 Tipp-Spiel

Online Tipp-Spiel zur Fussball Europameisterschaft 2012, basierend auf php-Script mit hinterlegter mySql-Datenbank

27.05.2012 tippimnetz | Kategorie: PHP/ Spiele
Advanced Login ansehen Advanced Login

Login-System und Kundenverwaltung, die sich spielend leicht in bestehende Webseiten einbauen lässt und einen enormen Funktionsumfang bietet. Ihre eigene Webseite muss mit Advanced Login nicht umständlich an ein fertiges System angepasst werden.

25.05.2012 Madden | Kategorie: PHP/ Kundenverwaltung
BROM CMS/BelCal 3 ansehen BROM CMS/BelCal 3

Spezielles CMS für Betreiber von Ferienwohnungen. Komplette Seitenerstellung online, Verwaltung mehrerer Objekte, Reservierungssystem mit sofortigem Abgleich im Belegungskalender und vieles mehr bietet dieses Content Management System.

25.05.2012 belcal2 | Kategorie: PHP/ CMS
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 11:50 Uhr.