Script nicht über User ausführen lassen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Script nicht über User ausführen lassen

    Hallo,

    ich habe ein Script geschrieben, das mittels AJAX ein PHP-Script auffruft, wenn ein Countdown abgelaufen ist.
    In diesem PHP-Script, werden daten aus einer mysql datenbank verändert.

    nun möchte ich aber, dass das script nur vom server (bzw. AJAX) ausgeführt werden kann!
    Also nicht, dass der user einfach im quelltext den url für das PHP-Script rauskopieren kann und das PHP-Script vor dem ablaufen des Countdowns aufrufen kann!

    Gibt es da eine möglichkeit?

    lg
    tiwi

  • #2
    Re: Script nicht über User ausführen lassen

    Datum encrypten, mit an den AJAX-Aufruf anhängen, beim Antwort-Skript das Datum wieder decrypten, gucken ob die aktuelle Zeit entsprechend ist und nur dann die Aktionen ausführen, ansonsten (oder wenn kein String übergeben wurde) die();

    Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

    bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
    Wie man Fragen richtig stellt

    Kommentar


    • #3
      Danke für die schnelle antwort
      Aber damit habe ich das problem ja immer noch nicht gelöst, denn das verschlüsselte datum steht ja auch im quelltext, und so kann sich der user einfach der/die url rauskopieren und ihn/sie in die adresszeile einfügen, und schon hat er das script ausgeführt
      oder?
      lg
      tim

      Kommentar


      • #4
        wenn du ein Countdown hast musst du doch das Datum gar nicht mitgeben sondern du schaust dir mit time() den aktuellen Timestamp an und wenn time() > $dein_countdown_timestamp führe das script aus...

        Im PHP-Script natürlich

        Kommentar


        • #5
          der countdown hat bei mir nix mit der normalen zeit zu tun, der zählt einfach z.b. 20 runter auf 0 (pro sekunde minus 1), und dann soll das script ausgeführt werden.

          lg
          tim

          Kommentar


          • #6
            hat er doch trotzdem:

            du erstellst zu beginn einen normalen Timestamp als Eintrag in die Datenbank, oder als SESSION oder... und dann vergleichst du time()>SESSION
            und $_SESSION['t'] legst du am Anfang als time()+20 fest.

            Kommentar


            • #7
              okay, hast recht!
              danke für die antwort!!!

              so wird es wohl funktionieren!

              lg
              tim

              Kommentar


              • #8
                aber ich persönlich würde nicht mit
                time() + 20 arbeiten sondern mit +25, da die anfrage zum server und antwort schließlich auch ein paar sekunden dauern kann!! Davon auszugehen, das die skripte in null sekunden aufgerufen und gestartet werden können, ist ja eher unwahrscheinlich!

                Kommentar

                Lädt...
                X