kostenloser Webspace werbefrei: lima-city


PHP Problem

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    jocko

    Kostenloser Webspace von jocko

    jocko hat kostenlosen Webspace.

    Hallo zusammen.Ich brauche unbedingt eure PHP Kenntnisse, denn ich habe keine Ahnung von PHP.Ich will ein Mail Formular machen für meine Webseite.Mit Folgendem Code.
    Nun möchte ich,dass im Mail,dass ich bekomme, der Absender als Absender steht und nicht meine Mail adresse.
    Desweiteren hätte ich gerne,dass bei erfolgreichem Senden die Seite danke.html gezeigt wird und bei Fehlern fehler.html.
    Hoffe es ist verständlich und Ihr könnt mir Helfen
    <?php
    require(\"./formmail.php\");
    formmail(\"mailadresse des absenders\",
    \"mailadresse von mir\",
    \"Kontakt-Mail\",
    \"Ein Besucher hat das Formular ausgef&#65533;llt
    und abgeschickt:\",
    \"email,kommentar\",
    \"danke.html\",
    \"fehler.html\");
    ?>
    
    [HTML-Code]
    
    <form action=\"?\" method=\"POST\" enctype=\"multipart/form-data\">
    
    Ihr Name & Vorname: <input type=\"text\" name=\"Name\" size=\"20\">
      <br />
    Ihre E-Mail Adresse: <input type=\"text\" name=\"email\" size=\"20\">
      <br />
    Ihre Webseite: <input type=\"text\" name=\"Webseite\" size=\"20\" value=\"http://\">
      <br />
    Ihre Adresse: <textarea name=\"Adresse\" rows=\"4\" cols=\"40\"></textarea>
      <br />
    
    Ihre Telefonnummer: <input type=\"text\" name=\"Telefon\" size=\"20\">
      <br />
    Ihre Webseite: <input type=\"text\" name=\"Webseite\" size=\"20\">
      <br />
        Ihre Kommentar:&nbsp <textarea name=\"kommentar\" rows=\"10\" cols=\"40\"></textarea>
    <br>
      <input type=\"submit\" value=\"Absenden\">
     </form>
    
    [HTML-Code]



    und so sieht \"formmail.php\" aus

    <?php
    class FormMailClass
    {
      var $version;
      var $sender;
      var $recipients;
      var $subject;
      var $intro;
      var $required;
    
      var $errorURL;
      var $followupURL;
    
      function FormMailClass()
      {
        $this->version = \"0.1\";
        $this->sender = null;
        $this->recipients = array();
        $this->subject = sprintf(\"formmail %s at %s\", $this->version, $this->getScriptURL());
        $this->intro = sprintf(\"The following was entered into the form at\\n%s\", $this->getScriptURL());
        $this->required = array();
        $this->errorURL = null;
        $this->followupURL = null;
      }
    
      function fail($m, $c = 1)
      {
        printf(\"<html><title>formmail.php</title><body>%s</body></html>\", $m);
        exit($c);
      }
    
      function setSender($s)
      {
        if (!$this->isEmail($s)) {
          $this->fail(\"Die E-mail Adresse des Senders \'$s\' ist keine gültige Adresse.\");
        }
        $this->sender = $s;
      }
    
      function addRecipient($r)
      {
        if (!$this->isEmail($r)) {
          $this->fail(\"Recipient address \'$r\' is not a valid email address.\");
        }
        $this->recipients[] = $r;
      }
    
      function setSubject($s)
      {
        $this->subject = $s;
      }
    
      function setIntro($i)
      {
        $this->intro = $i;
      }
    
      function setRequiredFields($req)
      {
        $this->required = array();
        foreach ($req as $r) {
          if (trim($r) != \"\") {
            $this->required[] = $r;
          }
        }
      }
    
      function setFollowupURL($u)
      {
        $this->followupURL = $this->absoluteURL($u);
      }
    
      function setErrorURL($u)
      {
        $this->errorURL = $this->absoluteURL($u);
      }
    
      function absoluteURL($r)
      {
        if (!ereg(\"^https?://\", $r) && !ereg(\"^/\", $r)) {
          $r = sprintf(\"%s%s\",
          	     dirname($_SERVER[\"SCRIPT_NAME\"]),
          	     $r);
        }
        if (!ereg(\"https?://\", $r)) {
          if (isset($_SERVER[\"HTTPS\"]) && $_SERVER[\"HTTPS\"] == \"on\") {
            $scheme = \"https\";
          } else {
            $scheme = \"http\";
          }
          $r = sprintf(\"%s://%s%s\",
          	     $scheme,
          	     $_SERVER[\"HTTP_HOST\"],
          	     $r);
        }
        return $r;
      }
    
      function getScriptURL()
      {
        return sprintf(\"http://%s%s\", $_SERVER[\"HTTP_HOST\"], $_SERVER[\"SCRIPT_NAME\"]);
      }
    
      function isEmail($email)
      {
        // Ensure there is only one @ symbol and the parts have the
        // correct lengths
        if (!ereg(\"([^@]{1,64})@([^@]{1,255})\", $email, $parts)) {
          return false;
        }
    
        // Split local part
        $local = explode(\".\", $parts[1]);
    
        // Check individual local parts
        foreach ($local as $l) {
          if (!ereg(\"^(([A-Za-z0-9!#$%&\'*+/=?^_`{|}~-][A-Za-z0-9!#$%&\'*+/=?^_`{|}~\\.-]{0,63})|(\\\"[^(\\\\|\\\")]{0,62}\\\"))$\", $l)) {
            return false;
          }
        }
    
        // Check if domain is an IP address
        if (ereg(\"^\\[?[0-9\\.]+\\]?$\", $parts[2])) {
          return true;
        }
        
        // Split domain part
        $domain = explode(\".\", $parts[2]);
        
        // Check individual domain parts
        foreach ($domain as $d) {
          // Since there are IDN\'s, nothing can be tested here anymore
          // except if there is an empty domain part (means that there
          // were two consecutive dots).
          if ($d == \"\") {
            return false;
          }
        }
    
        return true;
      }
    
      function process()
      {
        // Check if all data fields are available
        if ($this->sender == null) {
          $this->fail(\"Sender address not set.\");
        }
        if (0 == count($this->recipients)) {
          $this->fail(\"No recipients are set.\");
        }
    
        // Check if all required fields are set
        foreach ($this->required as $r) {
          if (empty($_POST[$r]) || trim($_POST[$r]) == \"\") {
            if ($this->errorURL != null) {
              header(sprintf(\"Location: %s\", $this->errorURL));
              exit(0);
            } else {
              $this->fail(sprintf(\"Required field \'%s\' not set.\", $r));
            }
          }
        }
    
        $boundary = md5(uniqid(time()));
    
        $h = array();
        $h[] = sprintf(\"X-Mailer: formmail.php %s at %s\", $this->version, $this->getScriptURL());
        $h[] = \"MIME-Version: 1.0\";
        $h[] = sprintf(\"Content-Type: multipart/mixed; boundary=\\\"%s\\\"\", $boundary);
        $h[] = sprintf(\"From: %s\", $this->sender);
        for ($i = 1; $i < count($this->recipients); $i++) {
          $h[] = sprintf(\"To: %s\", $this->recipients[$i]);
        }
    
        $m  = \"This is a multi-part message in MIME format.\\n\";
        $m .= \"\\n\";
        $m .= sprintf(\"--%s\\n\", $boundary);
        $m .= \"Content-Type: text/plain; charset=iso-8859-1\\n\";
        $m .= \"\\n\";
        $m .= sprintf(\"%s\\n\", $this->intro);
        $m .= \"\\n\";
    
        foreach ($_POST as $n => $v) {
          $m .= sprintf(\"%s: %s\\n\", $n, $v);
        }
    
        foreach ($_FILES as $n => $v) {
          if (@$fd = fopen($v[\"tmp_name\"], \"rb\")) {
            $m .= sprintf(\"\\n--%s\\n\", $boundary);
            $m .= sprintf(\"Content-Type: application/octet-stream; name=\\\"%s\\\"\\n\", $v[\"name\"]);
            $m .= \"Content-Transfer-Encoding: base64\\n\";
            $m .= sprintf(\"Content-Description: %s\\n\", $v[\"name\"]);
            $m .= sprintf(\"Content-Disposition: attachment; filename=%s\\n\\n\", $n);
    
            $buf = fread($fd, $v[\"size\"]);
            $m .= chunk_split(base64_encode($buf), 76, \"\\n\");
            fclose($fd);
    
            unset($buf);
          }
        }
    
        mail($this->recipients[0],
             $this->subject,
             $m,
             join(\"\\n\", $h));
    
    
        if ($this->followupURL != null) {
          header(sprintf(\"Location: %s\", $this->followupURL));
          exit(0);
        } else {
          fail(\"Thank you for submitting the form.\", 0);
        }
      }
    }
    
    function formmail($mailfrom,
    		  $mailto,
    		  $subject = \"formmail.php\",
    		  $intro = \"Your web form was sent:\",
    		  $required = \"\",
    		  $followup = \"\",
    		  $error = \"\")
    {
      if ($_SERVER[\"REQUEST_METHOD\"] != \"POST\") {
        return;
      }
    
      $f = new FormMailClass();
    
      $f->setSender($mailfrom);
      $f->addRecipient($mailto);
      $f->setSubject($subject);
      $f->setIntro($intro);
      $f->setRequiredFields(explode(\",\", $required));
      $f->setFollowupURL($followup);
      $f->setErrorURL($error);
      $f->process();
    }
    
    ?>

  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. http://www.php.net/manual/de/function.mail.php
    Einfach deine Adresse in dem Format Jocko<jocko@anbieter.endung> übergeben.

    Mit der Weiterleitung kannst du es entweder per header(\'Location: http://www.example.com/\'); lösen, wenn du davor keine Ausgabe tätigst, also das Formular and eine separate Datei sendest oder per HTML-Metatag, also <meta http-equiv=\"refresh\" content=\"5; URL=http://example.com/\">.
  4. action=\"?\"

    Statt ? musst du die adresse des zieles eintragen, in diesem falle muss dort stehen action=\"./formmail.php\"
  5. $header = \"From: DEIN NAME <OPTIONAL DEINE MAIL>\\n\";
    $header .= \"Reply-To: DEINE MAIL\\n\";
    $header .= \"Mailer: PHP/\".phpversion().\"\\n\";
    $header .= \"Sender-IP: \".$_SERVER[\'REMOTE_ADDR\'].\"\\n\";
    $header .= \"Content-Type: text\\n\";
    $content = \"DER INHALT DEINER MAIL\";
    if(mail(\"MAIL ADRESSE EMPFÄNGER\", \"BETREFF\", $content, $header))
         header(Location: danke.html);
    else
         echo \"FEHLER MELDUNG!\";


    Einfach die mit großen Buchstaben geschriebenen Platzhalter mit deinen Angaben ersetzen.

    Hoffe das hilft dir weiter.
  6. Autor dieses Themas

    jocko

    Kostenloser Webspace von jocko

    jocko hat kostenlosen Webspace.

    mergener schrieb:
    action=\'?\'

    Statt ? musst du die adresse des zieles eintragen, in diesem falle muss dort stehen action=\'./formmail.php\'

    Hab das ganze Zeigs aus dem Internet,und dort steht,dass man das ? dort lassen muss...

    --------------------------------------------------------------------------------------------

    econline schrieb:
    $header = \'From: DEIN NAME <OPTIONAL DEINE MAIL>\\n\';
    $header .= \'Reply-To: DEINE MAIL\\n\';
    $header .= \'Mailer: PHP/\'.phpversion().\'\\n\';
    $header .= \'Sender-IP: \'.$_SERVER[\'REMOTE_ADDR\'].\'\\n\';
    $header .= \'Content-Type: text\\n\';
    $content = \'DER INHALT DEINER MAIL\';
    if(mail(\'MAIL ADRESSE EMPFÄNGER\', \'BETREFF\', $content, $header))
     header(Location: danke.html);
    else
     echo \'FEHLER MELDUNG!\';


    Einfach die mit großen Buchstaben geschriebenen Platzhalter mit deinen Angaben ersetzen.

    Hoffe das hilft dir weiter.

    Muss ich dass eifach am ende von formmail.php einfügen?
    *keine Ahnung von PHP hab*


    Beitrag geändert: 18.2.2008 18:16:59 von jocko
  7. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!