Hackerboard WikiHaboBlog

[HaBo]

 
(Web-) Design und webbasierte Sprachen Tipps & Tricks, Designabgleich, HTML & Javascript, Flash, ASP, PHP, Perl/CGI...

Script nur auf Server ausführen

Diskussion: Script nur auf Server ausführen im Forum (Web-) Design und webbasierte Sprachen, in der Kategorie Web, Network & Multimedia Palace; Hallo, ich hab ein kleines Problem, ich versuche ein php script NUR auf dem Server auszuführen. Ich möchte das Script ...

Antwort
Alt 20.02.10, 18:57   #1 (permalink)
 
Registriert seit: 29.11.08
Donar Leistung: Z3
Donar eine Nachricht über ICQ schicken
Likes: 0
Standard 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)

Bin Dankbar für jede Art von Hilfe

mfg

Donar

Donar ist offline   Mit Zitat antworten
Alt 20.02.10, 20:32   #2 (permalink)
 
Registriert seit: 19.07.09
d0ne Leistung: Facit NTK
Likes: 0
Standard

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
d0ne ist offline   Mit Zitat antworten
   
HaBOT
 

Werbung ist gerade online    
Alt 20.02.10, 21:32   #3 (permalink)
Senior Member
 
Benutzerbild von Chakky
 
Registriert seit: 28.10.03
Chakky Leistung: Z3
Chakky eine Nachricht über ICQ schicken
Likes: 95
Standard

http://de.php.net/manual/de/function.sleep.php

die funktion sleep sollte dir helfen

wie weit das mit der maximal ausführzeit in konflikt kommt müsstest du mal austesten
__________________
cu
Chakky

we are dreaming in digital
we are living in realtime
we are thinking in binary
we are talking in IP
welcome to our world
Chakky ist offline   Mit Zitat antworten
Alt 20.02.10, 22:17   #4 (permalink)
Themenstarter
 
Registriert seit: 29.11.08
Donar Leistung: Z3
Donar eine Nachricht über ICQ schicken
Likes: 0
Standard

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 ) 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.
Donar ist offline   Mit Zitat antworten
Alt 20.02.10, 22:30   #5 (permalink)
Senior Member
 
Benutzerbild von Chakky
 
Registriert seit: 28.10.03
Chakky Leistung: Z3
Chakky eine Nachricht über ICQ schicken
Likes: 95
Standard

Zitat:
Zitat von Donar Beitrag anzeigen
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 ) 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
__________________
cu
Chakky

we are dreaming in digital
we are living in realtime
we are thinking in binary
we are talking in IP
welcome to our world
Chakky ist offline   Mit Zitat antworten
Alt 20.02.10, 23:14   #6 (permalink)
 
Registriert seit: 19.07.09
d0ne Leistung: Facit NTK
Likes: 0
Standard

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!
Außerdem hast du so dutzende Script laufen, die einfach nur warten - nicht sehr performand...

Lösung: siehe Chakky ;P

mfg
d0ne
d0ne ist offline   Mit Zitat antworten
Alt 21.02.10, 10:16   #7 (permalink)
Themenstarter
 
Registriert seit: 29.11.08
Donar Leistung: Z3
Donar eine Nachricht über ICQ schicken
Likes: 0
Standard

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

Danke nochmals!
Donar ist offline   Mit Zitat antworten
Alt 21.02.10, 19:49   #8 (permalink)
Member of Honour
 
Benutzerbild von beavisbee
 
Registriert seit: 22.02.07
beavisbee Leistung: Pentium IIIbeavisbee Leistung: Pentium IIIbeavisbee Leistung: Pentium IIIbeavisbee Leistung: Pentium III
beavisbee eine Nachricht über ICQ schicken
Likes: 75
Standard

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...
beavisbee ist offline   Mit Zitat antworten
Alt 21.02.10, 20:16   #9 (permalink)
 
Benutzerbild von BasicAvid
 
Registriert seit: 17.03.04
BasicAvid Leistung: Facit NTK
Likes: 1
Standard

Zitat:
Zitat von beavisbee Beitrag anzeigen
da kannst du ja z.B. alle 500ms per AJAX-Request abfragen, wie weit das Raumschiff ist und dann die Position setzen...
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.
__________________
Mfg Basic Avid
- Use it or be used! -
BasicAvid ist offline   Mit Zitat antworten
Alt 21.02.10, 20:31   #10 (permalink)
 
Benutzerbild von rami
 
Registriert seit: 09.02.08
rami Leistung: Facit NTK
rami eine Nachricht über ICQ schicken rami eine Nachricht über Skype™ schicken
Likes: 0
Standard

Zitat:
Zitat von beavisbee Beitrag anzeigen
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?
__________________
rami ist offline   Mit Zitat antworten
Alt 21.02.10, 20:33   #11 (permalink)
Member of Honour
 
Benutzerbild von beavisbee
 
Registriert seit: 22.02.07
beavisbee Leistung: Pentium IIIbeavisbee Leistung: Pentium IIIbeavisbee Leistung: Pentium IIIbeavisbee Leistung: Pentium III
beavisbee eine Nachricht über ICQ schicken
Likes: 75
Standard

Zitat:
Zitat von BasicAvid Beitrag anzeigen
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*
beavisbee ist offline   Mit Zitat antworten
Alt 22.02.10, 10:44   #12 (permalink)
Member of Honour
 
Benutzerbild von easteregg
 
Registriert seit: 14.09.07
easteregg Leistung: Pentium Ieasteregg Leistung: Pentium I
easteregg eine Nachricht über ICQ schicken
Likes: 60
Standard

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.
__________________
» Flattr mich! - Wenn dir mein Beitrag geholfen hat! «
<| 2 AMD Opterons 2384@ 8x3,2ghz | Tyan S2915 | 10GB | 2x 8800GT | 8400GS | Dell 3008WFP + 2x2007FP |>
easteregg ist offline   Mit Zitat antworten
Antwort
   

Werbung ist gerade online    

[HaBo] » Web, Network & Multimedia Palace » (Web-) Design und webbasierte Sprachen » PHP Script nur auf Server ausführen
Themen-Optionen
Ansicht

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 sind aus
Pingbacks sind aus
Refbacks sind aus



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61