Anfängerfrage

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

  • Anfängerfrage

    Hallo alle zusammen

    Ich hab da mal ne Frage. Ich weiß das man bei php immer nur einmal diesen header-Befehl absetzten kann. Nun hab ich folgendes Problem.
    Wenn ich in meinem Formular auf senden klicke und da nach noch ein header absetzte dann macht er den header nicht mehr.

    Wie kann ich das hinbekommen, dass ich trotzdem noch einen Link abschicken kann?

  • #2
    Wenn ich in meinem Formular auf senden klicke und da nach noch ein header absetzte dann macht er den header nicht mehr.
    Wieso das denn? Wenn du dein Form abschickst und die Daten verarbeitet hast, kannst du sehr wohl einen header() absetzen. Es geht natürlich nicht wenn du zuvor bereits Daten an den Client gesendet hast. Aber auf diesen Missstand würde dich error_reporting(E_ALL) aufmerksam machen

    Gruss

    tobi
    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

    Kommentar


    • #3
      Ich hab da mal ne Frage. Ich weiß das man bei php immer nur einmal diesen header-Befehl absetzten kann.
      Dann streiche dein Wissen, denn dies ist schlichtweg falsch!

      Wenn ich in meinem Formular auf senden klicke und da nach noch ein header absetzte dann macht er den header nicht mehr.
      Wie kann ich das hinbekommen, dass ich trotzdem noch einen Link abschicken kann?
      EVA-Prinzip: Eingabe, Verarbeitung Ausgabe. Arbeite danach, dann hast du keine Probleme.

      Kommentar


      • #4
        Also ich habe folgenden Code, der bis auf den header-Befehl auch ausgeführt wird.

        PHP-Code:
        $DatabasePointer mysql_connect($DatabaseHost$DatabaseUser$DatabasePassword);
           
        mysql_select_db($Database$DatabasePointer);

           
        $_REQUEST['Email'] = mysql_real_escape_string($_REQUEST['Email']);
           
           
        $sqltext "UPDATE $TableAktivierung SET ";
           if (
        $_POST['Vorname'] != ""
           {
              
        $sqltext .= "Vorname = '".$_POST['Vorname']."', ";
           }
           if (
        $_POST['Firma'] != ""
           {
              
        $sqltext .= "Firma = '".$_POST['Firma']."', ";
           }
           if (
        $_POST['Nachname'] != ""
           {
              
        $sqltext .= "Nachname = '".$_POST['Nachname']."', ";
           }
           if (
        $_POST['Strasse'] != ""
           {
              
        $sqltext .= "Strasse = '".$_POST['Strasse']."', ";
           }
           if (
        $_POST['Plz'] != ""
           {
              
        $sqltext .= "Plz = '".$_POST['Plz']."', ";
           }
           if (
        $_POST['Ort'] != ""
           {
              
        $sqltext .= "Ort = '".$_POST['Ort']."', ";
           }
           if (
        $_POST['Telefon'] != ""
           {
              
        $sqltext .= "Telefon = '".$_POST['Telefon']."', ";
           }
           if (
        $_POST['Email'] != ""
           {
              
        $sqltext .= "EMail = '".$_POST['Email']."' ";
           }
           
        $sqltext .= "WHERE ID = '".$_SESSION["user_id"]."'";
           
           @
        mysql_query($sqltext$DatabasePointer);
           
            
        $_SESSION["user_nachname"] = $_POST['Nachname']; 
            
        $_SESSION["user_vorname"] = $_POST['Vorname'];
            
        $_SESSION["user_strasse"] = $_POST['Strasse'];
            
        $_SESSION["user_ort"] = $_POST['Ort'];
            
        $_SESSION["user_plz"] = $_POST['Plz'];
            
        $_SESSION["user_telefon"] = $_POST['Telefon'];
            
        $_SESSION["user_firma"] = $_POST['Firma'];
            
        $_SESSION["user_email"] = $_POST['Email'];
            
            
        header ("Location: register.php?profil=1"); 
        Wenn ich das nun ausführe, wird das Update gemacht, aber der header-Befehl wird nicht ausgeführt und er schreibt als Fehlermeldung folgendes:
        Warning: Cannot modify header information - headers already sent by (output started at /homepages/20/d212079107/htdocs/testhwsoft/scripte/register.php:7) in /homepages/20/d212079107/htdocs/testhwsoft/scripte/register.php on line 372

        Kommentar


        • #5
          Das muss an den Anfang der Datei, jedenfalls muss das vor jegliche Art von Ausgabe.

          Lies mal das:

          http://php-resource.de/forum/showthr...threadid=62965
          ich glaube

          Kommentar


          • #6
            kann es an dem Stück Code liegen? Ist das einzige was ich laut dem gelesenen gefunden habe?

            PHP-Code:
            <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
            Sonst mach ich vor dem header-Befehl keine Ausgabe.

            Kommentar


            • #7
              ja.
              ich glaube

              Kommentar


              • #8
                Da das im header der Datei kommt hab ich ja keine Chance meinen header vorher abzusetzten.

                Gibt es sonst eine Möglichkeit zu sagen, dass er an einer bestimmten stelle auf eine andere Seite weiterhleiten soll?

                Kommentar


                • #9
                  Original geschrieben von TobiaZ
                  EVA-Prinzip: Eingabe, Verarbeitung Ausgabe. Arbeite danach, dann hast du keine Probleme.

                  ...
                  **********
                  arkos
                  **********

                  Kommentar


                  • #10
                    Da das im header der Datei kommt hab ich ja keine Chance meinen header vorher abzusetzten.
                    HEAD HTML !== Headerdaten einer Datei
                    Wenn du es nicht umgehen kannst hättest du z.B. folgende Möglichkeiten
                    1. ob_buffer verwenden
                    2. die gesamte HTML Ausgabe auf eine Var speichern und erst ausgeben wenn feststeht, dass der User nicht weitergeleitet werden muss
                    ...

                    Gruss

                    tobi
                    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                    Kommentar


                    • #11
                      Hab ne Möglichkeit gefunden, trotzdem danke.

                      Kommentar


                      • #12
                        Die Lösung für suchende verschweigst du. Danke!

                        Kommentar

                        Lädt...
                        X