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! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

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: 3.296
combie wird schon bald berühmt werden
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: 3.296
combie wird schon bald berühmt werden
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

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 00:28 Uhr.