Ankündigung

Einklappen
Keine Ankündigung bisher.

Variable per Mail versenden

Einklappen

Neue Werbung 2019

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

  • Variable per Mail versenden

    Hi, ich verzweifle gerade an einem eigentlich einfachen Fall:

    (ich arbeite mit globalen Variablen)

    ich definiere einfach einen Menüstatus, dadurch wird die richtige Seite geladen, und andere Actions durchgeführt. Anschließend lasse ich noch eine Variable auf das jeweilige Thema setzen:

    if ($menuestatus == 0)
    {
    $Herkunft="Startseite";
    }

    Die Variable $Herkunft soll mir in einer Mail darüber Aufschluss geben, auf welcher Seite der User sich befunden hat, als er das Kontaktformular versendet hat.

    Das Formularscript wird mittels Include in die Seite gebettet.

    Im Formularscript lasse ich der Vollständigkeit halber die Variable Herkunft schon mal mit echo anzeigen, ich sehe auch dass diese immer den Inhalt hat, der gewünscht ist, hier z.B. "Startseite".

    Wenn ich dann die Mail zusammen baue habe ich folgende Anweisungen:
    $mailText.= 'Mitteilung____________'.$trenner.htmlspecialchars ($_POST['Message'])."\n";
    $mailText.= 'Herkunftsseite____________'.$trenner.htmlspecialc hars($_POST['Herkunft'])."\n";

    Die "Message" kommt aus dem Formular, aber Herkunft ist beim senden immer leer. Der Trenner ist ein Doppelpunkt.

    Irgend etwas mache ich falsch, und wäre für jeden Tipp dankbar.

    noch etwas stört mich(das ist aber nicht so dass Problem):
    Die Seiten werden nach Menüstatus aufgerufen, index.php?MS=1 z.B.
    Wenn ich das Formular abschicke lande ich wieder auf der Index.php, gibt es da keine Möglichkeit den Menüstatus der zuletzt aufgerufenen Seite mit zu übergeben ? Hab gesucht, jedoch nichts passendes gefunden.

    Grüße

    David

  • #2
    PHP-Code:
    htmlspecialc hars 

    Wenn ich das Formular abschicke lande ich wieder auf der Index.php, gibt es da keine Möglichkeit den Menüstatus der zuletzt aufgerufenen Seite mit zu übergeben ? Hab gesucht, jedoch nichts passendes gefunden.
    Den Menüstatus in einem hidden-feld übertragen oder in einer session ablegen
    [COLOR=#A9A9A9]Relax, you're doing fine.[/COLOR]
    [URL="http://php.net/"]RTFM[/URL] | [URL="http://php-de.github.io/"]php.de Wissenssammlung[/URL] | [URL="http://use-the-index-luke.com/de"]Datenbankindizes[/URL] | [URL="https://www.php.de/forum/webentwicklung/datenbanken/111631-bild-aus-datenbank-auslesen?p=1209079#post1209079"]Dateien in der DB?[/URL]

    Kommentar


    • #3
      Hi, soll das nun auch gegen das Übertragungsproblem helfen ? Oder nur dafür, dass die Seite den selben Menüstatus behält ?

      Grüße

      david

      Kommentar


      • #4
        Du frägst für dein Mail ja auch die falsche Var ab, sollte eine Notice sogar geben wenn error_erporting ganzo aufgedreht ist.

        PHP-Code:
        if ($menuestatus == 0
        {
        $Herkunft="Startseite";

        PHP-Code:
        $mailText.= 'Herkunftsseite____________'.$trenner.htmlspecialc hars($_POST['Herkunft'])."\n"
        => $Herkunft statt $_POST["Herkunft"] abfragen?

        Ausserdem ist da ein Leerzeichen drinnen: htmlspecialc hars
        The string "()()" is not palindrom but the String "())(" is.

        Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
        PHP.de Wissenssammlung | Kein Support per PN

        Kommentar


        • #5
          Hi,

          (ich arbeite mit globalen Variablen)
          warumhttp://home.mengelke.de/html-php-mys...it-global.html

          ich definiere einfach einen Menüstatus, dadurch wird die richtige Seite geladen, und andere Actions durchgeführt. Anschließend lasse ich noch eine Variable auf das jeweilige Thema setzen:

          if ($menuestatus == 0)
          {
          $Herkunft="Startseite";
          }
          Ohne code unverständlich!

          Wenn ich dann die Mail zusammen baue habe ich folgende Anweisungen:
          $mailText.= 'Mitteilung____________'.$trenner.htmlspecialchars ($_POST['Message'])."\n";
          $mailText.= 'Herkunftsseite____________'.$trenner.htmlspecialc hars($_POST['Herkunft'])."\n";
          Ohen deinen Quellcode zu kennen, bin ich mir ziemlich sicher, dass Du keine Mailerklasse nutzt und da liegt dein Problem! Nutze PHPMailer oder SWIFTMailer und VPh hat dich schon darauf hingewiesen, das du ein Leerzeichen in deinem Befehl hast! Dreh mal dein Error Reporting hoch und lass Dir Fehler vernünftig ausgeben, dann siehst du auch dein Problem...die Post Variable existiert so nicht.

          Die Seiten werden nach Menüstatus aufgerufen, index.php?MS=1 z.B.
          Validierst du deine GEt-Parameter den auch?

          Wenn ich das Formular abschicke lande ich wieder auf der Index.php, gibt es da keine Möglichkeit den Menüstatus der zuletzt aufgerufenen Seite mit zu übergeben ? Hab gesucht, jedoch nichts passendes gefunden.
          Sicherlich, aber wir können nur raten ohne code.

          mfg Wolf29
          while (!asleep()) sheep++;

          Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.

          Kommentar


          • #6
            @Hausl:

            die Variable Menuestatus wird ja immer in der Seite Angezeigt, und diese hat immer den richtigen Wert.

            Ich will ja die Variable $Menuestatus benutzen.

            aber sie ist in den versendeten Emails immer leer, daher steht da immer "Startseite", weil wenn menuestatus 0 oder leer $Herkunft=Startseite ist.


            Hier das Script:
            $empfaenger = '<xx@diewebsite.de>';
            $absender = 'www.diewebsite.de';
            $betreff = diewebsite.de'; //Msg-Type noch anhängen !
            $trenner = ":\t\t";
            $header = 'From:' . $absender . "\n";
            $thema = '';

            $mailText = ''; // ersma leer!

            // Datum und Uhrzeit am Anfang
            $heute = "Datum: ";
            $heute.= date("d.m.Y");
            $heute.= " Uhrzeit: ";
            $heute.= date("G:i");
            $heute.= "\n\n";
            $mailText .= $heute;

            if (isset($_POST['submit']))
            {
            $fehler = '';

            if (empty($fehler))
            {

            // mail

            $betreff.= '-'.htmlspecialchars($_POST['']);

            $mailText.= ' '."\n";
            $mailText.= '######## DieWebsite ###########################################'."\n";
            $mailText.= ' '."\n";
            $mailText.= 'Farbe__'.$trenner.htmlspecialchars($_POST['Material'])."\n";
            $mailText.= 'Aufdruck___________'.$trenner.htmlspecialchars($_ POST['Art'])."\n";
            $mailText.= 'Auflagevolumen_____'.$trenner.htmlspecialchars($_ POST['Stueckzahl'])."\n";
            $mailText.= 'Firma______________'.$trenner.htmlspecialchars($_ POST['Firma'])."\n";
            $mailText.= 'Name_______________'.$trenner.htmlspecialchars($_ POST['Name'])."\n";
            $mailText.= 'Telefonnummer______'.$trenner.htmlspecialchars($_ POST['Telefonnummer'])."\n";
            $mailText.= 'E-Mailadresse______'.$trenner.htmlspecialchars($_POS T['eMail'])."\n";
            $mailText.= 'Mitteilung____________'.$trenner.htmlspecialchars ($_POST['Message'])."\n";
            $mailText.= $Herkunft;




            // Danke - Ausgabe:

            echo '<p style="margin-left: 4px;margin-top:18px;"><u><b><font face="Verdana">Vielen Dank für Ihre Anfrage!</b></u><br />Sie erhalten in der Regel spätestens am nächsten Werktag eine Antwort.</font></p><br>';
            echo "\n";
            echo "\n";
            echo '<p style="margin-left: 4px;margin-top:18px; width:500px; font-face:verdana;"><a target="_parent" href="http://www.diewebsite.de" style="width:500px;">Klicken Sie hier, um zur Seite zurückzugelangen.</a></p>';
            echo "\n";
            echo $fehler;

            mail($empfaenger, $betreff, $mailText, $header)
            or die("Die Mail konnte nicht versendet werden.");
            exit;
            }

            else
            {
            echo '<p style="margin-left: 4px;margin-top:18px;"><u><b><font face="Verdana">Fehler!</font></b></u></p><br>';
            echo "\n";
            echo $fehler;
            echo'<p style="margin-left: 4px;"><font face="Verdana"><a href="http://www.diewebsite.de" target="_parent">zurück</a></font></p>';
            echo"\n";
            exit();
            }
            }
            }
            ?>


            Danke
            David

            Kommentar


            • #7
              Jössas:

              1. Bitte Code immer in die dafür vorgesehenen PHP-Tags hier im Forum geben

              2. Dein Code ist total buggy (oder es ist Phantasiecode), da sind überall Leerzeichen dazwischen, das kann so nicht funktionieren - hier achte mal rund um $_POST
              PHP-Code:
              ...
              $mailText.= 'Name_______________'.$trenner.htmlspecialchars($_ POST['Name'])."\n";
              $mailText.= 'Telefonnummer______'.$trenner.htmlspecialchars($_ POST['Telefonnummer'])."\n";
              $mailText.= 'E-Mailadresse______'.$trenner.htmlspecialchars($_POS T['eMail'])."\n";
              ... 
              3. Nutze eine Mailerklasse: http://php-de.github.io/jumpto/mail-class/

              4.
              die Variable Menuestatus wird ja immer in der Seite Angezeigt, und diese hat immer den richtigen Wert.
              Ich will ja die Variable $Menuestatus benutzen.
              Wenn die den richitgen Wer hat, dann nutze die doch einfach korrekt. Debugge und finde deine Fehler selbst, das gehört zum programmieren auch nunmal dazu: http://php-de.github.io/#debugging

              LG
              The string "()()" is not palindrom but the String "())(" is.

              Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
              PHP.de Wissenssammlung | Kein Support per PN

              Kommentar

              Lädt...
              X