php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen für Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009, 2010,

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 12.12.2011, 11:09  
fab
Erfahrener Benutzer
 
Benutzerbild von fab
 
Registriert seit: 28.07.2010
Beiträge: 2.308
PHP-Kenntnisse:
Fortgeschritten
fab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblick
Standard

Zitat:
Zitat von hausl Beitrag anzeigen
Ok danke für die gute Nachricht... Eigentlich ist es nichts tragisches aber lästig halt wenn einem zB alle Count-Werte auf 0 zurückfallen.. etc..
Wie das passieren soll, ist mir schleierhaft. Schlimmstenfalls wird der Counter einmal zu wenig inkrementiert oder?
fab ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 12.12.2011, 11:20  
Erfahrener Benutzer
 
Registriert seit: 03.08.2010
Beiträge: 1.141
PHP-Kenntnisse:
Anfänger
hausl wird schon bald berühmt werdenhausl wird schon bald berühmt werden
Standard

@fab
Ehrlich gesagt ich weiß es nicht, ich habe folgendes Testszenario gemacht - natürlich auch möglich das ich was verbockt hab.

Das Script in einem Browser normal aufgerufen und in einem zweiten mit dem Get-Parameter ?sleep=ja. Siehe unten die *** markierten Zeilen. Damit wollte ich das Script einige Sekunden schlafen lassen um einen zwischenzeitlichen Zugriff über einen zwieten Browser zu erzwingen.

Während dieses Aufrufes mit sleep hatte ich im anderen Browser (ohne dem get-Parameter sleep) aufgerufen und ebenfalls diesen aktualisiert. Der Browser ohne get/seep hat dann meistens auch brav abgewartet bis der andere mit sleep fertig war aber in einigen Fallen dann doch eine Warnung ausgegeben, das fread() fehlgeschlagen ist, weil bei filesize() die Größe 0 zurückgegeben wurde. Und dann war der Coutner Wert plötzlich wieder 0.

Wie gesagt das war nur selten und nicht gezielt reprodzuierbar, muss das heute noch etwas anschauen, ev. hab ich da was verbockt, oder PHP im Multithread laufen

Ev. macht eh die Variante von jspit da mehr Sinn, weil wenn einer fehlt is mir das echt egal... nur 0 is doof.

PHP-Code:
$file "counter.txt"

$handle fopen($file'r+'); 
if (!
is_resource($handle)) { 
  die (
'Konnte die Datei '.$file.' nicht öffnen!'); 

if (!
flock($handleLOCK_EX)) { 
  die (
'Sperren der Datei '.$file.' fehlgeschlagen!'); 

// lesen + increment 
$curVal = (int)fread($handlefilesize($file)) + // *** WARN hier ***
rewind($handle); 
ftruncate($handle0); 
if (!empty(
$_GET["sleep"])) sleep(3); // *** sleep ***
// schreiben 
fwrite($handle, (string)$curVal); 
fclose($handle); 

echo 
"Zähler: ".$curVal
__________________
Keine Zahl != ein Zeichen das keine Zahl ist
hausl ist offline   Mit Zitat antworten
Antwort


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


Alle Zeitangaben in WEZ +2. Es ist jetzt 16:34 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