php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 23.07.2005, 00:59  
Gast
 
Beiträge: n/a
Standard Mehrfachausführung verhindern

Wie das Topic schon sagt, würds mich interessieren, wie ich am geschicktesten eine Datei so blockieren kann, dass mehrfaches ausführen des Scripts unmöglich ist.
Sinn: Ich betreibe eine Seite, auf der viele zugriffe entstehen, und ich mehrere Updates ausführe in meiner mysql db. Es ist bisher schon oft vorgekommen, dass zweimal ein Script ausgeführt wurde (zeitgleich) und - trotz geringer ausführzeit - die scripte sich gegenseitig in die Quere gekommen sind - und die Updates doppelt (bzw Inserts doppelt) entstanden sind.

Gibts da ne möglichkeit?
Grüße und danke schonmal im Vorraus. Alex
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 23.07.2005, 01:16  
Erfahrener Benutzer
 
Registriert seit: 08.06.2004
Beiträge: 865
RudiS
Standard

Du könntest beim Start des Skripts eine Meldung in die Datenbank schreiben, dass das Skript ausgeführt wird; beim Beenden des Skripts wird die Meldung gespeichert, dass das Skript fertig ist.
Bei jedem Start wird jetzt geprüft ob gerade ein Skript ausgeführt wird und wenn ja wird eine Fehlerseite angezeigt:
Code:
if ( SkriptGeradeInArbeit() )
 {
   FehlerMeldungAnzeigen();
 }
 else
 {
  SetzeSkriptInArbeitAufJa();

  // hier alle Arbeiten ausführen:
  Arbeit();

  SetzeSkriptInArbeitAufNein();
 }
mfg RudiS
__________________
Kunst kommt von Können und nicht von wollen, denn sonst würde es ja Wunst heißen.
RudiS ist offline   Mit Zitat antworten
Alt 23.07.2005, 01:30  
Gast
 
Beiträge: n/a
Standard

könnte man machen, ja.
steh grad etwas auf dem schlauch: werden die anweisungen weiter ausgeführt, wenn der user mittendrin abbricht?
Wenn nein, bestünde ja die möglichkeit dass immer SetzeSkriptInArbeitAufJa() dauerhaft an ist, un das script sich nicht mehr starten lässt.
  Mit Zitat antworten
Alt 23.07.2005, 01:57  
Erfahrener Benutzer
 
Registriert seit: 08.06.2004
Beiträge: 865
RudiS
Standard

Zitat:
Zitat von hard
steh grad etwas auf dem schlauch: werden die anweisungen weiter ausgeführt, wenn der user mittendrin abbricht?
Das kannst du einstellen: ignore_user_abort()
Lies dir dazu aber auch die Beiträge unten auf der Seite durch.

Zitat:
Zitat von hard
Wenn nein, bestünde ja die möglichkeit dass immer SetzeSkriptInArbeitAufJa() dauerhaft an ist, un das script sich nicht mehr starten lässt.
Du kannst natürlich auch einfach die aktuelle Zeit angeben und eine maximale Sperre von vielleicht 3 Sekunden (je nachdem wie lange dein Skript braucht) festlegen.
mfg RudiS
__________________
Kunst kommt von Können und nicht von wollen, denn sonst würde es ja Wunst heißen.
RudiS ist offline   Mit Zitat antworten
Alt 23.07.2005, 02:31  
Gast
 
Beiträge: n/a
Standard

Und ggf. noch mit einem LOCK TABLES verstärken.
Die Sperre wird aufgehoben, wenn die Verbindung zur Datenbank abbricht.
http://dev.mysql.com/doc/mysql/en/lock-tables.html
http://dev.mysql.com/doc/mysql/en/in...ing-reads.html

Wenn Du dort schon auf der Dokuseite bist, kannst Du auch gleich mal bei den Transaktionen reinlinsen.
  Mit Zitat antworten
Alt 23.07.2005, 02:35  
Gast
 
Beiträge: n/a
Standard Re: Mehrfachausführung verhindern

Zitat:
Zitat von hard
Wie das Topic schon sagt, würds mich interessieren, wie ich am geschicktesten eine Datei so blockieren kann, dass mehrfaches ausführen des Scripts unmöglich ist.
Genauer! Soll sich das Script am Schluß selber löschen?

Zitat:
Sinn: Ich betreibe eine Seite, auf der viele zugriffe entstehen, und ich mehrere Updates ausführe in meiner mysql db.
Alles kein Problem.

Entweder so:
11.19. Wie verhindere ich mehrfaches Absenden eines Formulars?
http://www.php-faq.de/q/q-formular-mehrfach.html

oder Du vereinbarst ein "Wegwerf-Flag" in der Session.
Bei der Anzeige des Formulars wird ein Flag in der Session gesetzt.
Die Auswertungsseite prüft, ob der Schlüssel in der Session noch gültig ist. Falls ja, wird er gelöscht und die DB Aktion ausgeführt.

Dann kann der User sogar auf der F5 Taste einschlafen...

Zitat:
Es ist bisher schon oft vorgekommen, dass zweimal ein Script ausgeführt wurde (zeitgleich) und - trotz geringer ausführzeit - die scripte sich gegenseitig in die Quere gekommen sind - und die Updates doppelt (bzw Inserts doppelt) entstanden sind.
Sowas ist alles kein Problem, wenn man bnei der Entwicklung von vorn herein einplant, was passiert, wenn das Script zeitgleich mit unterschiedlichen Daten mehrfach aufgerufen wird. Sowas ist kein Problem in der Entwicklung. Es wird allerdings ganz fix eins, wenn man solche Sicherungsverfahren vergessen hat und sie nachträglich reinzuflicken versucht.
  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

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Fenster schliessen verhindern HTML, Usability und Barrierefreiheit 4 15.02.2010 14:04
Bilderklau verhindern wind-kun PHP Tipps 2008 13 11.07.2008 13:29
Mehrfaches Voten verhindern karyou PHP Tipps 2008 12 25.06.2008 12:47
Ausführung von PHP-Scripten verhindern Pimbolie1979 PHP Tipps 2008 16 18.05.2008 20:45
__set() verhindern das erzeugen einer neuen Variablen shocky PHP Tipps 2006 18 30.10.2006 14:35
verhindern das bei aktualisieren eine aktion wiederholt wird Crypi PHP Tipps 2006 13 11.01.2006 11:53
Zeilenumbruch in Tabelle verhindern patr1k HTML, Usability und Barrierefreiheit 3 22.12.2005 11:24
Externes Downloaden verhindern, aber streaming erlauben... Server, Hosting und Workstations 1 27.11.2005 11:39
Gewinnspiel-Fremdeinträge verhindern PHP-Fortgeschrittene 3 18.11.2005 20:24
Wie kann ich verhindern das der Browser encodete axelnes HTML, Usability und Barrierefreiheit 15 18.11.2005 18:37
html im formular verhindern Aris Sung PHP Tipps 2005-2 2 28.10.2005 19:27
Mehrfachtes absenden eines Formulars verhindern ? PHP Tipps 2005 12 16.03.2005 01:13
Doppelten Upload verhindern. BastianX75 PHP Tipps 2005 5 17.02.2005 11:51
[Erledigt] html im Formular verhindern? PHP Tipps 2005 6 16.02.2005 18:00
[Erledigt] verhindern von 2 anmeldungen! PHP-Fortgeschrittene 16 28.08.2003 22:51

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
http://www.php.de/php-fortgeschrittene/27364-mehrfachausfuehrung-verhindern.html, php doppelte ausführung verhindern, php doppeltes absenden verhindern, php mehrfach login verhindern, mehrfach login verhindern, php mehrfachausführung verhindern, wie verhindere ich mehrfaches absenden eines formulars?, php doppeltes voten verhindern, php mysql doppeltes aufrufen eines formulars verhindern, php script wird zweimal ausgeführt, php f5 taste doppelten eintrag verhindern, php formular mehrfach senden, mehrfach versenden n javascript, formular mehrfachsenden verhindern, mehrfaches aufrufen einer webseite verhindern, php formular wird zweimal ausgeführt, mysql php wiederholte anmeldungen vermeiden, php mehrfach ausführung, php session formular mehrfach, php mehrfaches ausführen verhindern

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