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

Die RIGID-FLEX-Technologie
Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Berni

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


 

Aktuelle PHP Scripte

EJS TreeGrid ansehen EJS TreeGrid

EJS TreeGrid is DHTML component written in pure JavaScript to display and edit data in table, grid, tree view or grid with tree on HTML page

09.04.2019 coqsoft@ | Kategorie: JAVASCRIPT/ Components
Suchmaschine redaktionell, Branchenportal zum Geld verdienen

Programmbeschreibung Die Bezahl-Suchmaschine ist in Perl und PHP programmiert (eigenes CGI-Verzeichnis notwendig), benötigt PHP aber keine MySQL-Datenbank. Webmaster haben mit dieser Suchmaschine neben der normalen kostenlosen Registrierung von Lin

06.04.2019 skripte@ | Kategorie: PHP/ Suchmaschinen
Oog Photo-Video-Gallery

Mit Oog Photo-Gallery können Sie einfach und stilvoll Bilder (auch Video & Audio) auf Ihrem PHP5-Webserver veröffentlichen und verwalten. Lizenz: GNU GPL v2

06.04.2019 trottbrand@ | Kategorie: PHP/ Bilder
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 20:24 Uhr.