[gelöst] PHP Funktion und dann Seite aufrufen

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

  • [gelöst] PHP Funktion und dann Seite aufrufen

    Hallo Leute...

    ich habe ein formular, in dem bestimmte eingaben gemacht werden..darunter gibt es einen button, mit dem die daten in einer datenbank gespeichert werden..soweit kein problem..allerdings möchte ich nach dem klick auf diesen button nicht nur die daten speichern, sondern zu einer anderen seite wechseln..

    der button sieht so aus:
    "<input type="submit" value="speichern" name="speichern" onClick="self.location.href='Datei.php'">"

    wenn ich den button außerhalb des formulars platziere, dann werd ich zu der gewünschten seite geleitet, aber die daten werden dann nicht gesendet..ich hätte aber gern beides.

    kann mir da jmd helfen??

    gruß

  • #2
    Entferne das onClick wieder. Füge in deinem PHP-Script nach der Verarbeitung der Formulardaten folgendes ein:
    PHP-Code:
    header('Location: http://example.com/Datei.php'); exit; 
    Damit das funktioniert darf das Script bis dahin keine Ausgabe gemacht haben!

    Kommentar


    • #3
      danke erstmal für die schnelle antwort! leider läuft es immernoch nicht die daten wurden zwar gespeichert, aber dann kommt folgende fehlermeldung:

      Warning: Cannot modify header information - headers already sent by (output started at ...) in ... on line 64

      Kommentar


      • #4
        Guckst du hier

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

        Kommentar


        • #5
          hallo Peter...

          das ist leider nicht ganz das, was ich suche..wenn ich den befehl an den anfang des dokumentes setze, dann werde ich zu der entsprechenden seite geleitet..das funktioniert auch super..allerdings habe ich schon vorher im dokument ausgaben und möchte NUR nach dem klick auf einen bestimmten button weitergeleitet werden..gibt es da eine andere variante??

          Kommentar


          • #6
            Hast du die Posts komplett gelesen?

            Zitat von zorro55 Beitrag anzeigen
            Warning: Cannot modify header information - headers already sent by (output started at ...) in ... on line 64
            Zitat von onemorenerd Beitrag anzeigen
            Damit das funktioniert darf das Script bis dahin keine Ausgabe gemacht haben!
            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


            Kommentar


            • #7
              ja das hab ich..wenn ich mir den quelltext vom browser anzeigen lasse, ist nichts zu sehen (für meine augen jedenfalls)..hier der quelltext:
              <form action="<br />
              <b>Warning</b>: Cannot modify header information - headers already sent by (output started at http://www.example.com/Dokument.php:15) in <b>http://www.example.com/Dokument.php</b> on line <b>59</b><br />
              vlt findet von euch jmd nen fehler??

              Kommentar


              • #8
                <form action="
                Und was ist das? Genau, eine Ausgabe.

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

                Kommentar


                • #9
                  eine ausgabe, die nicht so gewünscht ist..wie kann ich dies verhindern? hier ein ausschnitt meines scripts:

                  <form action="<?php
                  $1= $_POST["1"];
                  $2= $_POST["2"];
                  $3= $_POST["3"];
                  if ($1=="")
                  {
                  echo "";
                  }
                  else
                  {
                  $neu = "INSERT INTO table
                  (1, 2, 3)
                  VALUES
                  ('$1', '$2', '$3')";
                  $senden = mysql_query($neu);
                  header('Location: http://www.example.com/Dokument.php');exit;
                  }
                  ?>
                  </form>

                  das ist mein letzter versuch, danach geb ich mich als unbelehrbar geschlagen danke

                  Kommentar


                  • #10
                    Halte dich an das EVA-Prinzip.

                    Mach nur eine Ausgabe, wenn es erforderlich ist.

                    Kommentar


                    • #11
                      Zitat von zorro55 Beitrag anzeigen
                      das ist mein letzter versuch, danach geb ich mich als unbelehrbar geschlagen danke
                      Zuerst solltest du mal ein vernünftiges Debugging betreiben. denn z.B. dürfen Zahlen NICHT direkt nach dem $-Zeichen kommen. Und dann könntest du vom Prinzip her in etwa so herangehen:
                      PHP-Code:
                      <?php
                      $a1
                      $_POST["1"];
                      ...
                      if (
                      $a1=="")
                      {
                        echo 
                      "<form ...>....</form>";
                      }
                      else
                      {
                        
                      $neu "INSERT INTO table
                        (1, 2, 3)
                        VALUES
                        ('
                      $a1', '$a2', '$a3')";
                        
                      $senden mysql_query($neu);
                        
                      header('Location: http://www.example.com/Dokument.php');
                        exit;
                      }
                      ?>
                      Peter
                      Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                      Meine Seite

                      Kommentar


                      • #12
                        dass zahlen nicht nach dem $-zeichen verwendet werden, war mir bereits klar..habe das auch nur für die veranschaulichung angepasst..bei meinem script folgt dort eig text..sorry, wenn ich damit einige verwirrt habe..und genau nach diesem prinzip bin ich auch vorgegangen..leider ohne erfolg..ich denke, es liegt eher daran, dass das gesamte script mit html eingeleitet wird und der ausschnitt, den ich gepostet habe, folgt dann mitten in dem dokument..um den header-befehl ordentlich zum laufen zu bringen, darf ich nur ein reines php-script verwenden, richtig?

                        Kommentar


                        • #13
                          Du musst dich an das EVA-Prinzip halten.

                          Nur dann eine HTML-Ausgabe machen, wenn sie wirklich erforderlich ist.

                          Trenne Ausgabe von der Programmlogik.

                          Kommentar


                          • #14
                            Hallo,

                            warum machst du es nicht nach der klassischen Variante?:

                            Formular ausgeben und das action-Attribut auf ein Skript setzen, welches die Daten entgegennimmt und verarbeitet. In diesem Skript prüfen, ob dein besonderer Button gedrückt wurde und wenn dem so ist, mit [FONT="Courier New"]header("Location: ...")[/FONT] auf die gewünschte Seite umleiten (bevor irgendetwas ausgegeben wurde!). Andernfalls wieder irgendetwas ausgeben.

                            Mit onclick kannst du nur JS-seitig auf eine andere Seite wechseln, dann werden aber keine Daten übertragen, weil PHP davon ja nichts mitbekommt. Du musst also das Formular ganz normal abschicken und die Prüfung PHP-seitig machen.

                            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


                            • #15
                              Zitat von AmicaNoctis Beitrag anzeigen
                              warum machst du es nicht nach der klassischen Variante?:
                              Das EVA-Prinzip ist die "klassische Variante". Alles andere ist mehr oder weniger Pfusch.

                              Kommentar

                              Lädt...
                              X