Ankündigung

Einklappen
Keine Ankündigung bisher.

Wert einer Funktion an andere Funktion übergeben

Einklappen

Neue Werbung 2019

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

  • Wert einer Funktion an andere Funktion übergeben

    Hallo Folks,

    anderswo kann mir leider nicht geholfen werden, nun bin auf diese Seite gestoßen und hoffe mal das ihr das könnt .

    Es geht um ein Teilnahmeformular (start.php), hier binde ich eine Funktion ein welchen einen Wert erzeugt.

    Bislang gebe ich diesen Wert als Parameter an die URL weiter - also nachdem man den Submit-Button gedrückt hat landet man durch die <form action=""> auf die sendung.php?paramter=12345678.

    auf dieser sendung.php verwende ich eine andere Funktion, die diesen Wert in der Datenbank vergleicht.

    Das klappt alles, nur möchte ich nicht diesen Wert in der URL stehen haben, sondern möchte ihn in einer Variablen festhalten und an die andere Funktion übergeben.

    PHP-Code:
    function formular(){ 
    global 
    $zeugs;
    $zeugs erstellung();
    return 
    $zeugs;
    }

    function 
    sendung($zeugs){ 
    if (isset(
    $zeugs))
      {echo 
    'Erfolgreich';}
    }else echo 
    'Fehlgeschlagen'
    start.php
    ----------------
    PHP-Code:
    <html>......
    <?php
    // hier erzeuge ich den Wert
    formular();
    ?>
    sendung.php
    ----------------
    PHP-Code:
    <html>.......
    <?php
    sendung
    ($zeugs);
    ?>
    nur funktioniert die Übergabe nicht und ich verstehe nicht warum.

    kann mir da bitte jemand kurz helfen, bzw ist das so überhaupt machbar?

  • #2
    Zitat von Secondary Beitrag anzeigen
    Das klappt alles, nur möchte ich nicht diesen Wert in der URL stehen haben, sondern möchte ihn in einer Variablen festhalten und an die andere Funktion übergeben.
    Wenn Du nicht möchtest, dass diese Daten zum Client gelangen, bleibt Dir nur etwas wie zum Beispiel PHP: Sessions - Manual

    Kommentar


    • #3
      hi david,

      ich weiß, aber sessions oder andere möglichkeiten zum festhalten des paramters an den absender darf ich leider nicht verwenden.

      ich hatte vorher über getenv die ip ermittelt und dann den token (paramter), nach dem absenden mit einer funktion zur ip überprüft. da die IP aus großen Netzwerken wie Siemens etc, bei allen Migliedern gleich ist, wird dieses verfahren nahzu unmöglich.

      $SESSION setzt, auch wenn indirekt, ein Cookie. Wenn man als Sicherheitsmaßnahme Cookies deaktiviert hat funzt das leider auch nicht. Daher hat Chef gesagt, erzeuge einen Token und vergleiche diesen am Ende auf Gültigkeit.

      Ich weiß das ich außerhalb der Funktion eine Variable mit Wert erzeugen kann:
      PHP-Code:
      $var2 formular(); 
      und diesen Wert dann an eine andere innerhalb der Seite übergebe.
      Aber wie ich diesen Wert an eine weitere Seite wie sendung.php übergebe raff ich noch nicht.

      Kommentar


      • #4
        evtl eine session in der datenbank anlegen

        Kommentar


        • #5
          Zitat von Secondary Beitrag anzeigen
          $SESSION setzt, auch wenn indirekt, ein Cookie. Wenn man als Sicherheitsmaßnahme Cookies deaktiviert hat funzt das leider auch nicht. Daher hat Chef gesagt, erzeuge einen Token und vergleiche diesen am Ende auf Gültigkeit.
          Das ist alles, was das Session-Handling von PHP benötigt: ein Token. Soll heißen: Das eine schließt das andere nicht aus. Dass PHP im Auslieferungszustand Cookies zum Transport der SessionId benutzen möchte, ist dabei unwichtig.

          Zitat von Freeaak Beitrag anzeigen
          evtl eine session in der datenbank anlegen
          Auch dafür muss die SessionId zwischen Server und Client ausgetauscht werden.

          Kommentar


          • #6
            hmm ich hatta damals was mit $session gemacht und das hat dann bei deaktivem nicht mehr geklappt. Um das jetzt umzubasteln ist es zu spät - jedenfalls sehr aufwendig.

            Mein Vorhaben hast du aber verstanden oder?
            Ich weiß bislang nicht wie ich an die 2te Seite eine Wert übergebe, welchen ich auf Seite1 erzeugt habe.

            Den erzeugten Token speicher ich in einer Tabelle ab und will ihn auf Seite2 überprüfen. Bislang mache ich das indem ich den erzeugten Wert in die URL übergebe. Somit ist das auch eindeutig und man muss einen erzeugten Wert haben um weiteres wie Eintrag der Daten in die DB zu veranlassen.

            Kommentar


            • #7
              Du kannst das Session-Verhalten von PHP doch in der ini einstellen?!

              Kommentar


              • #8
                Und jetzt musst Du Token=Wert eben auf dem Server abspeichern.
                Und wenn Du Token durch SessionId und Wert durch (ganz viele Werte) ersetzt, bist Du bist Du ziemlich nah an PHP: session_id - Manual und PHP: session_start - Manual dran. Wenn Du also noch keinen Mechanismus für die Token-Wert-Zuordnung hast, ist es noch nicht zu spät für PHP-Sessions.

                Kommentar


                • #9
                  ich weiß, ihr meints gut mit den php-sessions - just ich möchte das so machen.
                  ich muss nur das hinbekommen und dann ist fertig.
                  Das ist nicht nur ein 2Seiten-Projekt. Das ist nen ganzens CMS und mein "Kartenhaus" zerfällt wenn ich da was wieder mit php-sessis mache.

                  Seite1 erzeugt über eine func1 einen $wert1.

                  diesen $wert1 will ich auf seite2 mit func2 weiter bearbeiten.
                  *jaul*

                  Kommentar


                  • #10
                    Dazu kenne ich 5 Möglichkeiten

                    1) Sessions
                    2) Cookies
                    3) Übergabe per URL ($_GET)
                    4) Übergabe per Formular ($_POST)
                    5) Parameter in DB oder Datei schreiben und wieder auslesen

                    Kommentar


                    • #11
                      Zitat von David Beitrag anzeigen
                      Auch dafür muss die SessionId zwischen Server und Client ausgetauscht werden.
                      oder per ip

                      Kommentar


                      • #12
                        Hi WOlla and freeak,

                        in der DB stehen die Daten, nur wie stelle ich den Bezug dann dazu her?

                        Beispiel: Benutzer 1 landet auf der Formularseite und erstellt so den Token Nummer 123. Nun füllt er das Formular aus und genau bevor er damit fertig ist kommt Benutzer2 auf die selbe Seite und erzeugt wieder einen Token Nummer 124.

                        Benutzer 1 sendet seine Daten ab. Bislang habe ich den Wert in die URL gehauen und via GET geholt und in der DB verglichen. Das funzt auch. Auch funzt das wenn weitere Benutzer zur selben Zeit die Seite 1 aufrufen etc..

                        Um einen Bezug herzustellen habe ich sonst die IP´s verwendet, das soll jetzt aber auch nimma sein. Ich glaube eine andere Möglichkeit, ohne Session und IP das ganze zu machen gibt es nicht, außer die die ich imo verwende (URL übergabe).

                        hmmm

                        Kommentar


                        • #13
                          Zitat von Freeaak Beitrag anzeigen
                          oder per ip
                          Also eine rein IP-basierende Zuordnung halte ich in keinster Weise für Sinnvoll!

                          Der Fall dass mehr als 1 User von einer IP ist durchaus wahrscheinlich.

                          Kommentar


                          • #14
                            sonst vielleicht per POST?

                            Zitat von robo47 Beitrag anzeigen
                            Also eine rein IP-basierende Zuordnung halte ich in keinster Weise für Sinnvoll!

                            Der Fall dass mehr als 1 User von einer IP ist durchaus wahrscheinlich.
                            kommt ganz drauf an, wo mans einsetzt ... war auch nur ein vorschlag

                            Kommentar


                            • #15
                              Wenn Du bereits ein Formular hast, bietet sich ein input/hidden für den Transport des Tokens an.

                              Kommentar

                              Lädt...
                              X