Sven: Weiterleitung nach Formularübergabe

Hallo, ich habe ein Newsltterscript geschrieben, wober eine e-ail zur Kontrolle verschckt wird, man muß auf einen Link klicken, das übliche. Funktioniert auch hervorragend,.
Ich rufe dieses Script mit Post auf, aber dann erscheint beim Ausführen des scriptes ein weißer Bildschirm. ich würde den User gerne wieder zur Startseite geleiten (automatisch) get das einfach über den Meta Redirect? oder gibts was anderes?
Danke, sven

  1. Hallo Sven!

    [...] ich würde den User gerne wieder zur Startseite geleiten (automatisch) get das einfach über den Meta Redirect? oder gibts was anderes?

    Du kannst es über einen meta Refresh machen, aber wenn Du eh mit PHP arbeitest kannst du auch mit header() an eine neue "Location" weiterleiten.
    (http://php.net/header)

    MfG
    Götz

    1. Hallo Sven!

      Du kannst es über einen meta Refresh machen, aber wenn Du eh mit PHP arbeitest kannst du auch mit header() an eine neue "Location" weiterleiten.
      (http://php.net/header)

      habe ich probiert, aber erfolglos, oder habe ich was falsch gemacht?
      Fehlermeldung:

      Warning: Cannot add header information - headers already sent by (output started at /is/htdocs/32292/www.logicsoftware.de/lightdesk/newsletter1.php:8) in /is/htdocs/32292/www.logicsoftware.de/lightdesk/newsletter1.php on line 61

      MfG
      Götz

      danke sven

      1. Der Fehler kommt mit der Zeile?

        header('Location: http://'.getenv('HTTP_HOST').'/index.php');

        Bei mir klappt das prima.

        1. Der Fehler kommt mit der Zeile?

          ja..

          header('Location: http://'.getenv('HTTP_HOST').'/index.php');

          bei mir ist es:
          header("Location: http://www.lightdesk.de/index.php/");
           exit;

          Bei mir klappt das prima.

          bei mir nicht...:-((
          sven

          1. was passiert, wenn du meine variante nimmst?

            1. was passiert, wenn du meine variante nimmst?

              ehrlichgesagt, sagt mir das ganze nix was du geschrieben hast, kannst du es grob erläutern?
              sven

              1. <?php
                $admin = "mail@domain.com";
                $subject = "E-Mail-Betreff";
                $message = "Nachricht fuer $admin von $email:\n\n";

                while(list($name,$value)=each($HTTP_POST_VARS)) {
                $message.="$name: $value\n\n";
                }

                mail($admin,$subject,$message,"From: $email");

                header('Location: http://'.getenv('HTTP_HOST').'/index.php');
                ?>

                Das ist die Mailer.php, welche du aus deinem Mail-Formular aufrufst.

                1. <?php
                  $admin = "mail@domain.com";
                  $subject = "E-Mail-Betreff";
                  $message = "Nachricht fuer $admin von $email:\n\n";

                  while(list($name,$value)=each($HTTP_POST_VARS)) {
                  $message.="$name: $value\n\n";
                  }

                  mail($admin,$subject,$message,"From: $email");

                  header('Location: http://'.getenv('HTTP_HOST').'/index.php');
                  ?>

                  Das ist die Mailer.php, welche du aus deinem Mail-Formular aufrufst.

                  ???Woher willst du das wissen wie meine Datei aussieht? mein Mailer sieht anders aus, außerdem will ich nur an eine Adresse eine Mail schicken, wo der empfänger auf einen Link klickt. schau mal bei www.lightdesk.de rein, bitte. auf der Startsite der Newsletter. habe es jetzt mit dem Meta Befehl gelöst, finge den anderen aber eleganter.
                  sven

                  1. Wow. Sieht nett aus. Schickst du mir die newsletter.php zu?

                    V.

                    PS: Hab die Mail gelöscht.

      2. Hallo sven!

        Fehlermeldung:

        Warning: Cannot add header information - headers already sent by (output started at /is/htdocs/32292/www.logicsoftware.de/lightdesk/newsletter1.php:8) in /is/htdocs/32292/www.logicsoftware.de/lightdesk/newsletter1.php on line 61

        Du hast in der newsletter1.php in Zeile 8 irgendeine Ausgabe stehen, und header kannst du nur vor der Ausgabe senden.

        Also schau dir Zeile 8 mal an, da liegt das Problem, nicht in 61.

        MfG
        Götz

        1. Hallo sven!

          Du hast in der newsletter1.php in Zeile 8 irgendeine Ausgabe stehen, und header kannst du nur vor der Ausgabe senden.

          Also schau dir Zeile 8 mal an, da liegt das Problem, nicht in 61.

          Hier der Quelltext. Die erste Zeile ist Zeile 8.

          <?
          function check_mail_val($wmail)
           {
           global $fehler,$fehlerstr,$status;
           $Kmail = ereg_replace("%40","@",$wmail);
           if(!preg_match("/^([A-Za-z0-9.-\]{2,})(@)([A-Za-z0-9.-\]{3,})(.)([A-Za-z]{2,3})$/i",$Kmail))
           {
                  $fehler++;
                  $fehlerstr .= "1";
                  $status="1";
                  //return "ERROR";
                  }
            else return $Kmail;
                  }

          if($wahl=="eintragen")
          {
           $betreff="Anmeldung zum Lightdesk Newsletter";
           $message="Hallo,\n\num sich endgültig für den LightDesk Newsletter anzumelden klicken Sie bitte auf untenstehenden Link.\n\nSollten Sie sich nicht für den Newsletter Interessieren, ignorieren Sie diese Mail.\n\nIhr Lightdesk Team\n\nwww.lightdesk.de/newsletter.php?wahl=eintragen&email=$email";
           $from="info@lightdesk.de";

          $ch_mail=check_mail_val($email);

          if ($status!=1)
           {
            mail($email, $betreff, $message, "From: $from");
           }
           else
           {
            echo"Bitte geben Sie eine korrekte e-Mailadresse an!";
            $stat="1";
           }
           }

          if($wahl=="austragen")
          {
           $betreff="Abmeldung vom Lightdesk Newsletter";
           $message="Hallo,\n\num sich von dem LightDesk Newsletter abzumelden klicken Sie bitte auf untenstehenden Link.\n\nSollten Sie sich nicht abmelden wollen, ignorieren Sie diese Mail.\n\nIhr Lightdesk Team\n\nwww.lightdesk.de/newsletter.php?wahl=austragen&email=$email";
           $from="info@lightdesk.de";

          $ch_mail=check_mail_val($email);

          if ($status!=1)
           {
            mail($email, $betreff, $message, "From: $from");
           }
           else
           {
            echo"Bitte geben Sie eine korrekte e-Mailadresse an!";
            $stat="1";
           }
           }
           if (stat!="1")
           {
            echo"<p></p><div align='center'><font face='Arial, Helvetica, sans-serif'>Sie erhalten umgehend eine Mail, worin der weitere Prozess beschrieben steht.</font></div>";
           }
           echo"<meta http-equiv='refresh' content='3; URL=http://www.lightdesk.de/index.php'>";
          ?>

          MfG
          Götz

          danke sven

          1. Hallo sven!

            Hier der Quelltext. Die erste Zeile ist Zeile 8.

            So, den Quelltext schau ich mir gar nicht genauer an, weil hier liegt schon "des Rätsels Lösung"!

            Was steht vor Zeile 8? - Egal, auch wenn nur Leerzeichen stehen ist es eine Ausgabe, die da nicht stehen darf.
            Header können nur _VOR_ der ersten Ausgabe gesendet werden!

            MfG
            Götz