PHP Script nur auf Server ausführen

Hallo,

ich hab ein kleines Problem, ich versuche ein php script NUR auf dem Server auszuführen.
Ich möchte das Script aufrufen -> es bringt mir ne Ausgabe(z.b. "Script gestartet")
dann soll es im Hintergrund des Server warten bis eine bestimmte Zeit Abgelaufen ist und dann einen Eintrag in meine Mysql Datenbank machen. Das Problem dabei ist, dass der User(der das Später nutzen soll) nichts davon merken soll. Er soll die Ausgabe "Script gestartet" bekommen und die Seite soll Fertig geladen sein.
(hoffe ihr versteht meine wirren Gedanken:wink:)

Bin Dankbar für jede Art von Hilfe

mfg

Donar
 
Hallo,

was meinst du mit "nur auf dem Server ausführen" - jedes Script wird (nur) auf dem server ausgeführt?

Mal in Pseudocode:
>Starte Script
>Gebe Text Aus
>Warte xy sek
>Mach Eintrag ind db
>fertig!

Ich nehme mal an das PRoblem ist, dass der Nutzer schon denken soll, die Seite wäre fertig geladen, ob wohl man noch bei "Warte xy sek" ist - oder!?
Wenn ja, solltest du dich vll. mal in Richtung Threads/Parallelität erkundigen, eine Möglichkeit wäre vll. das entsprechende Script per "system()" im Hintergrund zu starten!?

Vll. erklärst du noch kurz warum du warten willst, und der Kunde es nicht angezeigt bekommen soll - oft wenn solche "komischen Probleme" gelöst werden soll ist der Lösungsansatz nicht korrekt ...

mfg
d0ne
 
zur Erklärung:
ich habe mir vorgenommen, um mein Wissen in php zu erweitern, ein kleines browsergame zu programmieren. Dieses Spielt im Weltraum und da will ich Flotten von einem Planet zum andern Senden können, aber das soll ja Zeit brauchen(sind ja nicht unendlich schnell die Schiffe :wink:) bis die da sind. Der Spieler soll aber nicht x Stunden vor der Seite hocken und warten das die Flotte endlich da ist. Also will ich ein script schreiben was eben zu gegebener Zeit die Flotte auf dem Entsprechenden Planeten ankommen läßt.

Ich danke euch erstmal für eure Hilfe und werde mich in das Threading einlesen.
 
zur Erklärung:
ich habe mir vorgenommen, um mein Wissen in php zu erweitern, ein kleines browsergame zu programmieren. Dieses Spielt im Weltraum und da will ich Flotten von einem Planet zum andern Senden können, aber das soll ja Zeit brauchen(sind ja nicht unendlich schnell die Schiffe :wink:) bis die da sind. Der Spieler soll aber nicht x Stunden vor der Seite hocken und warten das die Flotte endlich da ist. Also will ich ein script schreiben was eben zu gegebener Zeit die Flotte auf dem Entsprechenden Planeten ankommen läßt.

Ich danke euch erstmal für eure Hilfe und werde mich in das Threading einlesen.

->sag in deiner db start flotte mit aktuellen timestamp.

wenn der user die seite wieder aufruft nimmst du den aktuellen timestamp und vergleichst ihn mit dem in der db, wenn deine zeitspanne um ist, lässt du die flotte ankommen (setzt in der db ->flotte da), wenn nicht machste nix ;)
 
Hallo,

das ist so ein Fall wo die gewünschte Lösung keine "gute Lösung" ist - in diesem Fall funktioniert sie wahrscheinlich 'nicht einmal, da die Script meist eine Maximale Laufzeit von ca 30 sek. haben. Und wie ich Raumschiffe so kenne schaffen Sie so einen Flug auch in 30 sek. nicht! :P
Außerdem hast du so dutzende Script laufen, die einfach nur warten - nicht sehr performand...

Lösung: siehe Chakky ;P

mfg
d0ne
 
mh, du hast recht. Das wären echt viele Scripts.
Dann werd ich das so machen wie chakky es vorschlägt.

Danke nochmals!
 
kann mich nur anschließen: speichere den Start-Zeitpunkt als Timestamp und überlege dir eine Berechnung für die Gesamt-Zeit...

und noch eine Idee:
wenn du das ganze noch ein wenig grafisch animieren willst, dann schreibe ein Script, welchem du die Raumschiff-ID übergibst und welches dann lediglich zurückgibt, wieviel Prozent geschafft sind und bastel dir dann mit AJAX eine Art Laufbalken mit Raumschiff

so [Planet1]----<Raumschiff>---------------------[Planet2]
da kannst du ja z.B. alle 500ms per AJAX-Request abfragen, wie weit das Raumschiff ist und dann die Position setzen...
 
da kannst du ja z.B. alle 500ms per AJAX-Request abfragen, wie weit das Raumschiff ist und dann die Position setzen...

Moment: In der Annahme, dass das Raumschiff nicht mit anderen kollidiert und eine vorrausberechenbare Geschwindigkeit hat, kann man das doch mit JavaScript direkt berechnen - wozu AJAX? Wenn jemand den Quellcode manipuliert bekommt er halt eine falsche Positionsbar - na und?
 
Das ist ja noch schlimmer als wenn man per Ajax alle Sekunde die Zeit vom Server holt um Sie anzuzeigen! Da entsteht extrem viel Serverlast, nicht gerade optimal bei einem Browsergame.
okay, hast recht... in dem Fall könnte man sich auch paar mehr Informationen direkt im Hauptscript auslesen (Position+Restzeit oder so) und die Animation dann komplett in nem Javascript machen...

hab in letzter Zeit mit AJAX so paar Spielereien gemacht wie Abfragen, ob es irgendwo neue Daten gibt (neue PNs, neue News-Einträge, etc.) und dementsprechend ist die AJAX-Abfrage in Endlosschleife alle paar Sekunden so automatisch im Kopf drin... ;) *Asche-auf-mein-Haupt*
 
ansonst sollte man noch nen cronjob einrichten, der die ankunft der schiffe überprüft.
denn sonst müsstest du mit jedem user immer alle raumschiffe abfragen! -> blöd
oder die schiffe sind noch nicht da fr die anderen spieler, obwohl sie da sein sollten, nur weil der entsprechende user nicht online war -> auch blöd.

daher einfach nen cronjob einrichten, der die schiffsankünfte immer überprüft.
da müsstest dir dann nur ne platte machen, wie oft du diesen wert aktuallisieren willst.
 
Zurück
Oben