verstecktes Feld prüfen

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

  • verstecktes Feld prüfen

    Hallo,

    ich habe in einem Skript eine Variable festgelegt sowie ein Formular in dem in einem versteckten Feld eben dieser Wert steht.

    Das Formular wird per Ajax abgeschickt. Wie kann ich nun prüfen, ob in dem versteckten Feld der gleiche Wert steht wie in der vorher festgelegten Variable?

    Ich hatte an eine Session gedacht, aber wenn die Session abläuft, stehe ich ja vor dem gleichen Problem.

  • #2
    Ich verstehe nicht was du meinst. So was in der Art?
    PHP-Code:
    $bla 'blubb';
    echo 
    '<input type="hidden" value="'.$bla.'">'
    Erklär doch mal, was du vorhast.

    Peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      Genau so meinte ich es.

      Das steht z.B. in der Datei a.php
      Zitat von Kropff Beitrag anzeigen
      PHP-Code:
      $bla 'blubb';
      echo 
      '<input type="hidden" value="'.$bla.'">'
      Per Ajax wird dann dieses Formular abgeschickt an z.B. die Datei b.php

      In b.php habe ich dann das $_POST-Array zur Verfügung. Wenn ich dein Beispiel nehme und das Feld nun "hiddenfield" heißt, dann soll
      PHP-Code:
      $_POST['hiddenfield'
      immer 'blubb' sein. So soll sichergestellt sein, das in dem Feld kein anderer Wert stehen darf

      Ich würde dann
      PHP-Code:
      if ($_POST['hiddenfield'] != $bla// Feld wurde manipuliert 
      prüfen, doch $bla habe ich ja in b.php nicht zur Verfügung

      Kommentar


      • #4
        Ich weiß zwar nicht, was das soll, aber dann leg doch eine eigene Datei mit der Variablendefinition an. Und die bindest du in beide Dateien ein. So kannst du sicher sein, dass du immer denselben Wert hast.

        Peter
        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
        Meine Seite

        Kommentar


        • #5
          Hallo,

          wenn du die Information serverseitig sowieso hast (um sie zu vergleichen), dann hast du sie auch um sie zu verwenden und musst sie nicht vom Client als Hidden-Feld übertragen lassen.

          Der einzige Grund, so etwas zu tun, wäre aus statistischen Gründen — damit könntest du den Anteil der Hacking-Versuche zu den Gesamthits ermitteln.

          Gruß,

          Amica
          [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
          Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
          Super, danke!
          [/COLOR]

          Kommentar


          • #6
            Hallo,

            Das Formular wird ja auf 2 Seiten eingebunden. Jeweils mit einem unterschiedlichen Wert im versteckten Feld. Beide male verwende ich aber die gleiche Datei, an die das Form per Ajax geschickt wird. Somit kann ich unterscheiden von welcher Seite man kommt.

            Also fällt mir nur ein 2 Dateien für Ajax zu nutzen und wie gestern vorgeschlagen die Werte dort reinzuschreiben
            Zuletzt geändert von lx-club; 12.07.2012, 08:48.

            Kommentar


            • #7
              Okay, jetzt verstehe ich es. Zwar könnte man das auch anders lösen, aber jetzt ist mir erstmal klar, warum du das machst.
              [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
              Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
              Super, danke!
              [/COLOR]

              Kommentar


              • #8
                Hi,

                wie könnte ich es denn anders lösen?

                Kommentar


                • #9
                  In der einen Seite
                  HTML-Code:
                  <form action="script.php" ...>
                  und in der anderen
                  HTML-Code:
                  <form action="otherscript.php" ...>
                  schreiben. Dann die otherscript.php so anlegen
                  PHP-Code:
                  <?php include "script.php" ?>
                  und in der script.php über $_SERVER["REQUEST_URI"] die Unterscheidung treffen.

                  Eine andere Variante wäre noch, beim Ausliefern der Seite eine Sessionvariable zu setzen und über diese die Unterscheidung vornehmen.
                  [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                  Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                  Super, danke!
                  [/COLOR]

                  Kommentar


                  • #10
                    Hi,

                    das Formular schicke ich per Ajax ab und auf beiden Seiten (seite-a.php und seite-b.php) wo das Formular eingebunden ist, wird das gleiche Skript zum versenden genommen

                    Code:
                    $.ajax.... URL: mein/script.php
                    In script.php erhalte ich dann als request uri auch nur script.php und nicht seite-a.php oder seite-b.php. es gibt $_SERVER[REFERRER], aber das wird ja nicht immer zuverlässig unterstützt.

                    An Sessions hatte ich auch gedacht. Kann man denn sicherstellen, das diese dann nie abläuft ? Z. B. Wenn der User längere Zeit inaktiv ist?

                    Kommentar


                    • #11
                      Zitat von lx-club Beitrag anzeigen
                      An Sessions hatte ich auch gedacht. Kann man denn sicherstellen, das diese dann nie abläuft ? Z. B. Wenn der User längere Zeit inaktiv ist?
                      Das kann man, aber das ist für dein Anliegen nicht relevant. Wenn sie abgelaufen ist, wird halt eine neue Session erstellt. Sie muss ja lediglich zwischen dem Ausliefern der Formularseite und dem Empfangen der Formulardaten persistent sein.
                      [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                      Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                      Super, danke!
                      [/COLOR]

                      Kommentar


                      • #12
                        Hallo Amica,

                        der User ruft eine der beiden Seiten auf und dann setze ich die Sessionvariable. In dem Script, an das das Formular geschickt wird, kann ich nun auf diese Variable prüfen.

                        Angenommen der User ruft die Seite auf und nach längerer Inaktivität (Session ist abgelaufen) schickt er das Formular ab. Dann kann ich ja in dem Script, an das das Formular geschickt wird nicht mehr die Sessionvariable prüfen, da sie gar nicht mehr vorhanden ist.
                        Die beiden Seiten werden ja nicht neu geladen, da das Formular per Ajax abgeschickt wird. Oder hab ich hier ein Verständnisproblem was Sessions betrifft?
                        Zuletzt geändert von lx-club; 14.07.2012, 14:04.

                        Kommentar


                        • #13
                          Ich weiß jetzt nicht, wie lang die Lebenszeit deiner Sessions eingestellt ist (php.ini), aber da müsste der User im Normalfall schon sehr lange zögern, damit dieser Fall eintritt. Davon abgesehen kannst und solltest du diesen Fall aber trotzdem behandeln und mit einem entsprechenden Fehlerstatus quittieren. Clientseitig kannst du diesen auswerten und ggf. dem Benutzer mitteilen, dass die Session abgelaufen ist und die Seite neu geladen werden muss. Onlinebankingseiten machen das z. B. auch so.
                          [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                          Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                          Super, danke!
                          [/COLOR]

                          Kommentar

                          Lädt...
                          X