Ankündigung

Einklappen
Keine Ankündigung bisher.

Cookies im Affenformular

Einklappen

Neue Werbung 2019

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

  • #16
    Irgendwie steig ich durch deine Konstruktion nicht durch... Output in einer Funktion? Warum das? Sehr merkwürdige Vorgehensweise...

    Kommentar


    • #17
      Naja, meine Konstruktionen können in der Tat sehr merkwürdig sein. Nimm darauf am besten keine Rücksicht.
      Wobei ich ja in meinem letzten Post gar keine output-Funktionen verwendet hatte.

      Kommentar


      • #18
        Dann sag mir wo dein Problem ist...?

        Kommentar


        • #19
          Mein Problem:
          Mir fehlt der Lösungsansatz, wie ich zuerst einen Cookie setzen kann und dannach erst den Inhalt der Seite index.php ausgeben lasse.

          Kommentar


          • #20
            der erste code den du in #15 geschrieben hast ist doch des Rätsels Lösung???

            Kommentar


            • #21
              Der 2. Code in #15 ist ja eine Weiterverbesserung des ersten,. weil dort noch auf Fehler überprüft wird. Der sollte doch auch funktionieren, oder?

              Kommentar


              • #22
                ähh joa is ja nix anderes... solange keine Ausgabe vorher gemacht wird ist es total egal wo du den Cookie setzt... und wenns der letzte Befehl vor der ersten Ausgabe is...

                Kommentar


                • #23
                  Da haben wir wohl etwas aneinander vorbeigeredet...
                  Ich werd den Code bei Gelegenheit mal ausprobieren
                  Danke erstmal

                  Kommentar


                  • #24
                    Wie erwartet funktioniert deine Version ohne Probleme.
                    Nur ist das für mich viel zu arbeitsaufwändig:

                    Code:
                    if(Feld_nicht_leer) {
                    if(Eingabe_enthält nur erlaubte_Zeichen) {
                    if(Eingabe_enthält_ein_@_und_einen_.) {
                    if(Eingabe_hat_mehr_als_8_Zeichen) {
                    if(sql_Statement_ist_fehlerfrei) {
                    setcookie();
                    } } } } }
                    Eine vereinfachte Form meines Codes. Es wäre irgendwie unpraktisch, diesen Code vor das ganze HTML-Zeug zu setzen, denn die gesamte Datei besteht nur aus diesem Code. Dann könnte ich gleich das include ganz an den Anfang setzen.
                    Ungefähr so:

                    Code:
                    <?php
                     include($_GET['site'] . ".php");
                    ?>
                    <html>
                    <div>
                    <?php
                     echo $message; //$message wird in der includeten Datei deklariert und enthält z.B. 'Ihre Eingaben sind fehlerhaft'
                     //Hier soll dann noch das Affenformular hin
                     //include($_GET['site'] . "_html.php"; wäre eine Lösung mit einer 2. Datei, das würde ich aber gern umgehen
                    ?>
                    </div>
                    </html>
                    Diese Version ist für mein Projekt aufjeden Fall günstiger, jedenfalls wenn ich wüsste, wie ich den HTML-Inhalt der weitrer oben includeten Datei in der Div anzeigen lassen könnte, teilweise ist auch php-Code dabei.
                    Nach Möglichkeit ohne neue Dateien anzulegen...

                    Kommentar


                    • #25
                      Du kannst den Code in Funktionen packen.
                      Zum Beispiel
                      PHP-Code:
                      <?php
                      error_reporting
                      (E_ALL);
                      ini_set('display_errors'1);

                      $functions = require 'xyz.php';
                      $functions['pre']();
                      ?>
                      <html>
                        <head><title>...</title></head>
                        <body>
                          <?php $functions['render'](); ?>

                        </body>
                      </html>
                      PHP-Code:
                      <?php
                      function prepare_xyz() {
                        if ( !isset(
                      $_COOKIE['xyzcookie']) ) {
                          
                      setcookie('xyzcookie'time());
                        }
                      }

                      function 
                      render_xyz() {
                        echo 
                      '<form method="post" ><input type="submit" /></form>';
                      }

                      return array(
                      'pre'=>'prepare_xyz''render'=>'render_xyz');

                      Kommentar


                      • #26
                        Hmm, ich glaub ich bin selbst hier im Einsteiger Forum falsch *g*
                        Kannst du mir evtl erklären, was dieser Code macht und wie er funktioniert?

                        Insbesondere diese Zeilen hier:
                        Code:
                        $functions['pre']();
                        <?php $functions['render'](); ?>
                        return array('pre'=>'prepare_xyz', 'render'=>'render_xyz');

                        Kommentar


                        • #27
                          Du kannst in PHP Funktionen über den Namen (als Zeichenkette) aufrufen.
                          PHP-Code:
                          function foo() {
                            echo 
                          'o';
                          }

                          foo(); // ruft foo() auf
                          $x 'foo';
                          $x(); // ruft foo() auf

                          $x = array();
                          $x['xyz'] = 'foo';
                          $x['xyz'](); // ruft foo() auf

                          $x = array('xyz'=>'foo');
                          $x['xyz'](); // ruft foo() auf 
                          in xyz.php steht die Zeile
                          PHP-Code:
                          return array('pre'=>'prepare_xyz''render'=>'render_xyz'); 
                          Das wird von require zurückgegeben
                          PHP-Code:
                          $functions = require 'xyz.php'
                          $functions ist dann also das Feld ('pre'=>'prepare_xyz', 'render'=>'render_xyz')
                          Damit kann xyz.php an das Hauptskript zurückgeben, wann welche Funktionen aufgerufen werden sollen (das ist nur eine Möglichkeit).
                          $functions['pre'](); ruft in diesem Fall also die Funktion prepare_xyz() auf.

                          Kommentar


                          • #28
                            (das ist nur eine Möglichkeit).
                            Welche anderen gibt's denn noch?
                            Bevor ich nämlicch diese Variante so richtig nutzen kann, muss ich mir wohl nochmal Arrays und require anschauen

                            Kommentar


                            • #29
                              Eine andere (einfache) Möglichkeit ist, dass Du ein festes Namensschema verwendest.
                              Du bindest xyz.php ein, also werden xyz_prepare(), xyz_render usw aufgerufen.

                              Kommentar


                              • #30
                                Jo, danke, so ist's einfacher für mich.
                                Damit wär mein Problem gelöst

                                Kommentar

                                Lädt...
                                X