Problem mit einem Mailscript

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

  • Problem mit einem Mailscript

    Hallo zusammen,

    ich habe folgenden Mailscript:

    PHP-Code:
    <title>Kontaktformular</title>
    <STYLE TYPE="TEXT/CSS">
    td {
    font-size:10px; font-family: Verdana; }
    th {
    font-size:10px; font-family: Verdana; }
    body {
    font-family: Verdana; color:#4A4949; font-size:10px; }
    a:link, A:visited  {
    text-decoration: none; color:#3C3B3B; }
    A:active, A:hover {
    text-decoration: none; color:#A63E4A; }
    select {
    color: #7990A5; font-family: Verdana; font-size: 10px; border: 1px solid #003A74; background-color: #003A74}
    input {
    font-family: Verdana; font-size: 10px; color: #000000; border: 1px solid #000000; background-color: #FFFFFF}
    #box {
    font-family: Verdana; font-size: 10px; color: #000000; border: 0px solid #000000; background-color: #EFEFEF }
    #textarea {
    font-family: Verdana; font-size: 10px; color: #000000; border: 1px solid #000000; background-color: #FFFFFF }
    </style>
    <body style="background-color: #ffffff">
    <div align="center">
    <form method="POST" action="<?php $self ?>">
    <table border="1" cellspacing="0" style="border-collapse: collapse" bgcolor="#F6F6F6" bordercolor="#CFCDCD" width="600" id="AutoNumber2" cellpadding="2">
    <tr>
    <td width="600" bgcolor="#F6F6F6"><p align="left"><b>Kontaktformular</b></p></td>
    </tr>
    <tr>
    <td width="600" bgcolor="#FDFDFD">
    <table border="0" width="100%" cellspacing="0" cellpadding="3">
            <tr>
                    <td width="70">Name:</td>
                    <td>
                    <input type="text" name="name" size="27" style="color: #000000; font-family: Verdana; font-size: 8pt; border: 1px solid #CFCDCD; background-color: #FDFDFD"></td>
            </tr>
            <tr>
                    <td width="70">eMail:</td>
                    <td>
                    <input type="text" name="email" size="27" style="color: #000000; font-family: Verdana; font-size: 8pt; border: 1px solid #CFCDCD; background-color: #FDFDFD"></td>
            </tr>
            <tr>
                    <td width="70">Betreff:</td>
                    <td>
                    <input type="text" name="betreff" size="27" style="color: #000000; font-family: Verdana; font-size: 8pt; border: 1px solid #CFCDCD; background-color: #FDFDFD"></td>
            </tr>
            <tr>
                    <td valign="top" width="70">Nachricht:</td>
                    <td>
                    <textarea rows="13" name="text" cols="72" style="color: #000000; font-family: Verdana; font-size: 8pt; border: 1px solid #CFCDCD; background-color: #FDFDFD"></textarea></td>
            </tr>
            <tr>
                    <td width="70">&nbsp;</td>
                    <td>
                    <input type="submit" value="Absenden" name="submit" style="font-family: Verdana; font-size: 8pt; color: #000000; border: 1px solid #CFCDCD; background-color: #FDFDFD">
                    <input type="reset" value="Zurücksetzen" name="del" style="font-family: Verdana; font-size: 8pt; color: #000000; border: 1px solid #CFCDCD; background-color: #FDFDFD"></td>
            </tr>
    </table>
    </form>
    </td>
    </tr>
    <tr>
    <td width="600" bgcolor="#F6F6F6">
    <p align="right"><a target="_blank" href="Link">
    Name</a></td>
    </tr>
    </table>
    <br>

    <?php
    include("config.php");
    if (isset(
    $_POST['submit'])) {
    if (empty(
    $_POST['name']))
    $error[] = "Du musst einen Namen angeben!";
    if (empty(
    $_POST['email']))
    $error[] = "Du musst eine eMail Adresse angeben!";
    if(!
    preg_match("/[a-z0-9_-]+(.[a-z0-9_-]+)*@([0-9a-z][0-9a-z-]*[0-9a-z].)+([a-z]{2,4}|museum)/i",$_POST['email']))
    $error[] = "Deine eMail Adresse ist ungültig!";
    if (empty(
    $_POST['betreff']))
    $error[] = "Du must einen Betreff angeben!";
    if (empty(
    $_POST['text']))
    $error[] = "Du musst einen Text angeben!";
    if (isset(
    $error)) {
    foreach (
    $error as $output) echo"<font color=\"#FF0000\"><b>" .$output "</b></font><br>";
      } else {
       
    $ip $_SERVER['REMOTE_ADDR'];
       
    $host gethostbyaddr($ip);
       
    $browser $HTTP_USER_AGENT;
       
    $tage = array(0=>"Sonntag",
                     
    1=>"Montag",
                     
    2=>"Dienstag",
                     
    3=>"Mittwoch",
                     
    4=>"Donnerstag",
                     
    5=>"Freitag",
                     
    6=>"Samstag");
       
    $monate = array(1=>"Januar",
                       
    2=>"Feber",
                       
    3=>"M&auml;rz",
                       
    4=>"April",
                       
    5=>"Mai",
                       
    6=>"Juni",
                       
    7=>"Juli",
                       
    8=>"August",
                       
    9=>"September",
                       
    10=>"Oktober",
                       
    11=>"November",
                       
    12=>"Dezember");
       
    $monat $monate[date("n")];
       
    $named  $tage[date("w")];
       
    $tag   date("d");
       
    $jahr  date("Y");
       
    $zeit date("G:i");
    $to "$mailto";
    $subject "$betreff";
    $headers "From: $email";

    $message "Absender........: $name ($email)
    Betreff.........: 
    $betreff
    Datum/Zeit......: 
    $named$tag.$monat $jahr / $zeit Uhr
    Absender-IP.....: 
    $ip
    Absender-Host...: 
    $host
    Browser.........: 
    $browser

    Nachricht:
    ----------------------------------------------------------------------
    $text
    ----------------------------------------------------------------------"
    ;
    mail($to$subject$message$headers);
    echo
    "<font color=\"#FF0000\"><b>Die Email wurde erfolgreich versandt!</b></font>";
    }}
    ?>
    Zu der Datei gehört noch eine Config die die E-Mail des Empfängers enthält.

    Wenn ich den script auf meinen Server hochlade, ausfülle und auf senden gehe, dann kommt beim Empfänger zwar eine E-Mail an, aber es ist weder der Betreff, Absender, Absenderemail, text zu sehen.

    Nur die IP + Datum, Zeit wird angezeigt.

    Weiss jemand an was das liegt?
    EDIT:
    PHP-Tags sponsored by Kropff
    Zuletzt geändert von Kropff; 03.12.2009, 19:51.

  • #2
    Hallo,

    hast du register_globals an oder wo kommen $betreff und $email her?

    Was kommst raus, wenn du mail(...) durch print_r(array(...)) ersetzt?

    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


    • #3
      Hi,

      super vielen Dank, habe es wie folgt gelöst:

      Code:
      $betreff = htmlspecialchars($_POST["betreff"]);
      $name = htmlspecialchars($_POST["name"]);
      $email = htmlspecialchars($_POST["email"]);
      $text = htmlspecialchars($_POST["text"]);
      So jetzt hätte ich da noch eine Frage/n ;-):
      Frage1:
      Ich möchte, wenn ein user auf senden klickt und er eine Falscheingabe gemacht hatte, das wenn die Fehlermeldung erscheint, die restlichen Eingaben nicht ebenfalls verschwinden, sonder erhalten bleiben

      Frage2:
      Wie mache ich es, dass der Absender auch eine Email bekommt (Bestätigungmail) mit meiner E-Mail (also $mailto) als Absender.

      Kommentar


      • #4
        Zu Frage 1: google nach "Affenformular"

        Zu Frage 2: Du rufst mail einfach nochmal auf, aber mit einem anderen Empfänger.
        [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


        • #5
          Zitat von igelmania Beitrag anzeigen
          Ich möchte, wenn ein user auf senden klickt und er eine Falscheingabe gemacht hatte, das wenn die Fehlermeldung erscheint, die restlichen Eingaben nicht ebenfalls verschwinden, sonder erhalten bleiben
          Stichwort: Affenformular

          Wie mache ich es, dass der Absender auch eine Email bekommt (Bestätigungmail) mit meiner E-Mail (also $mailto) als Absender.
          Wenn du es ein mal schaffst, die Funktion mail zu benutzen, dann schaffst du es sicher auch noch ein zweites mal.
          I don't believe in rebirth. Actually, I never did in my whole lives.

          Kommentar


          • #6
            Hi,

            habe die variante ausprobiert: $to = "$mailto,$email";

            ab dann kommt doch die E-Mail an den Absender zwar an, aber als Absender steht doch auch er drin.

            Oder stehe ich jetzt irgendwie auf dem Schlauch ??

            Kommentar


            • #7
              Vielleicht solltest du dann den From Header noch austauschen? So schwer kann das doch nicht sein, wenn man ein kleines bisschen mitdenkt. Sorry, aber ...
              [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


              • #8
                Ich kriege es nicht hin, es werden sonst immer beide E-Mails angezeit.

                Habe es mit Reply-To: probiert = geht irgendwie nicht.

                Habe es mit CC: probiert = gefällt mir nicht.

                Vlt. könntest du mir ein Bsp. Code posten ( Wäre nett ist schon spät ;-) )

                Noch etwas, wie macht man das, dass wenn die Mail gesendet wird, das sich das Formular (Inhalt) selber löscht.
                Zuletzt geändert von igelmania; 03.12.2009, 23:17.

                Kommentar


                • #9
                  Zitat von igelmania Beitrag anzeigen
                  Ich kriege es nicht hin, es werden sonst immer beide E-Mails angezeit.
                  Ich habe nicht gesagt, dass du beides in eine Mail packen sollst - sondern dass du mail() zwei mal aufrufen sollst.

                  Vlt. könntest du mir ein Bsp. Code posten ( Wäre nett ist schon spät ;-) )
                  Morgen ist auch noch ein Tag ...
                  I don't believe in rebirth. Actually, I never did in my whole lives.

                  Kommentar


                  • #10
                    So noch etwas aufgeffalen. Ich werde noch verrückt.

                    Habe diese Affenformular angewendet:
                    Code:
                    value="<?php if (isset($_REQUEST['name'])) echo htmlspecialchars($_REQUEST['name']);
                    => Funzt auch super, nun Funktioniert die Funktion zurücksetzen nicht. Wahrscheinlich löscht sich das formular dadurch auch nicht nach dem versenden selber.

                    Was ist nun hier los?

                    Kommentar


                    • #11
                      Zitat von igelmania Beitrag anzeigen
                      Was ist nun hier los?
                      Was soll da „los sein”?

                      Das Script macht immer nur genau das, was du ihm sagst.
                      Also musst du dich deutlicher ausdrücken.

                      Wenn die Formularfelder nach dem Versenden der Mail nicht mehr mit den übergebenen Werten vorbelegt sein sollen - dann gebe die Werte in diesem Fall halt nicht aus.
                      I don't believe in rebirth. Actually, I never did in my whole lives.

                      Kommentar


                      • #12
                        ??? Ok also verstehe fast nur Bahnhof ???

                        also ist das hier icht ganz richtig:

                        value="<?php if (isset($_REQUEST['name'])) echo htmlspecialchars($_REQUEST['name']);

                        und wie soll es dann sein,

                        das mein button reset und, dann auch nach dem senden alles gelöscht wird wieder funzt?

                        Kommentar


                        • #13
                          Zitat von igelmania Beitrag anzeigen
                          und wie soll es dann sein
                          So, wie ich es gerade beschrieben habe - wenn du die Mail versandt hast, dann mache diese Ausgaben im gleichen Scriptdurchlauf nicht mehr.
                          I don't believe in rebirth. Actually, I never did in my whole lives.

                          Kommentar


                          • #14
                            Warum sagst du mir einfach nicht wie, wenn du es doch weisst?

                            Kommentar


                            • #15
                              Das habe ich dir doch jetzt schon zwei mal gesagt ...


                              Wenn du willst, dass die Vorbelegung der Formularfelder von einer (zusätzlichen) Bedingung abhängt - dann füge eine entsprechende Bedingung in deinen Code ein.
                              I don't believe in rebirth. Actually, I never did in my whole lives.

                              Kommentar

                              Lädt...
                              X