vroni: formular/mail verschicken

ich trottel hab das script vergessen.... sorry

hallo,
bin totaler nullchecker bei php. wer ist so nett und hilft mir bei dem folgendem script? komm damit nicht klar...
mein ziel ist, dass der kommentar an mich (meineadresse@gmx.de) verschickt wird.
wie ist denn das? sind das drei verschiedene dokumente oder ein langes? kapier gar nichts...

<?PHP
  //Wird vom Formular ausgefuellt
  $email_to = "$name_freund<$email_freund>";
  //Absender-Email
  $email_from_mail = "mail@selfphp4.de";
  //Absender-Name
  $email_from_name = "Damir Enseleit";
  //Betreff in der Mail
  $email_betreff = "Selfphp-Mailer";
  //CC
  $email_to_cc="Matthias Huppmail@selfphp3.de";
?>
<html><head>
<title>Selfphp-Mailer</title>
</head>
<body bgcolor="#FFFFFF">
<h4>Selfphp-Mailer</h4>
<?php
if(!isset($email_freund)){
?>
<form action="index.php" method="post">
<table width="58%" border="0" cellspacing="2" cellpadding="0">
  <tr>
    <td width="15%" valign="top">
      Name/Freund:
    </td>
    <td width="85%">
      <input type="text" name="name_freund">
    </td>
  </tr>
  <tr>
    <td width="15%" valign="top">
      Email/Freund:
    </td>
    <td width="85%">
      <input type="text" name="email_freund">
    </td>
  </tr>
  <tr>
    <td width="15%" valign="top">
      Kommentar:
    </td>
    <td width="85%">
      <textarea cols="30" rows="6"name="kommentar"></textarea>
  </td>
   </tr>
   <tr>
     <td width="15%" valign="top"> </td>
     <td width="85%">
       <input type="submit" value="HTML-Mail senden" name="submit">
    </td>
  </tr>
</table>
</form>
<?php
}
else{
  $header="From:$email_from_name<$email_from_mail>\n";
  $header .= "Cc: $email_to_cc\n";
  mail($email_to,$email_betreff,$kommentar,$header);
}
?>

  1. Hallo,

    [...]

    Wie vor einigen Postings[1] hier schonmal erwähnt, sind solche Scripte, bei denen die E-Mail Adressen von "außen" gesetzt werden können, sehr böse[tm] und können unter anderem sehr leicht von Spammern mißbraucht werden.

    [1] [pref:t=31513&m=170487]

    Gruß,
    dimde

  2. Hallo Vroni,

    ich trottel hab das script vergessen.... sorry

    dann öffne bitte keinen neuen Thread, sondern schreibe eine Antwort auf dein erstes Posting. btw. das Script steht sowieso hier: http://www.selfphp.info/funktionsreferenz/mail_funktionen/mail.php#beispiel2 :)

    bin totaler nullchecker bei php. wer ist so nett und hilft mir bei dem folgendem script? komm damit nicht klar...

    wo hängt es denn genau?

    wie ist denn das? sind das drei verschiedene dokumente oder ein langes? kapier gar nichts...

    das ist ein langes, das je nach gesetzten Variablen anders ausgegeben wird.

    Schreib bitte, wo genau das Problem liegt (bzw. leis einfach mal den Text auf der Seite, wo du das Script her hast (s.o.)). Alternativ kannst du auch den Formmailer in selfhtml[1] verwenden (entsprechend umschreiben).
    Dein Konzept (verschicken eines Textes an eine frei einfügbare e-mailadresse) ist allerdings schlecht[tm], da das leicht zum spamen missbraucht werden kann.

    Grüße aus Nürnberg
    Tobias

    [1] http://aktuell.de.selfhtml.org/tippstricks/php/form-mail/index.htm

    1. ...ich krieg das einfach nicht hin. mein problem ist erstmal:
      es soll ein antwortformular werden also an mich geschickt werden. wo geb ich meine adresse ein?
      dann hab ich  das script ins netz gestellt. wenn ich die mail verschicke kommt eine fehlermeldung weil die datei nicht gefunden wird....
      dankeschön!

      1. Hallo Vroni,

        es soll ein antwortformular werden also an mich geschickt werden. wo geb ich meine adresse ein?

        in welches Script? In das von selfphp?
        Was meinst du mit Antwortformular? Ein Kontaktformular, über das man mit dir Kontakt aufnehmen kann?

        dann hab ich  das script ins netz gestellt. wenn ich die mail verschicke kommt eine fehlermeldung weil die datei nicht gefunden wird....

        welche Datei wurde nicht gefunden? Genaue Fehlermeldung?

        Grüße aus Nürnberg
        Tobias

        ps: http://learn.to/quote - wäre hilfreich, damit ich (und andere auch) wissen, worauf du dich beziehst.

        1. genau ein kontaktformular!
          die fehlermeldung lautet:
          error 404: Datei nicht gefunden!
          Das angegebene Dokument konnte auf diesem Server leider nicht gefunden werden.

          1. Hallo,

            die fehlermeldung lautet:
            error 404: Datei nicht gefunden!
            Das angegebene Dokument konnte auf diesem Server leider nicht gefunden werden.

            Das kommt daher, weil in dem <form action="index.php" [..]> die Zieldatei fest eingebunden ist - einer von vielen schlecht programmierten[1] Teilen in dem Script...

            [1] bzw. beim html-code nicht programmiert, sondern geschrieben ;)

            Gruß,
            dimde

            1. Hallo

              Das kommt daher, weil in dem <form action="index.php" [..]> die Zieldatei fest eingebunden ist - einer von vielen schlecht geschriebenen Teilen in dem Script...

              deswegen ist auch folgendes üblich:
              <form action="<?=$_SERVER['SCRIPT_NAME']?>">
              Gruß,
              Benne

              1. Hallo,

                deswegen ist auch folgendes üblich:
                <form action="<?=$_SERVER['SCRIPT_NAME']?>">

                Ich sehe (und benutze) üblicherweise eigentlich lieber
                $_SERVER['PHP_SELF'], aber egal :)

                Trotzdem sollte es doch besser so aussehen:

                <form action="<?php echo $_SERVER['SCRIPT_NAME']; ?>">

                Gruß,
                dimde

                1. Hallo dimde,

                  <form action="<?=$_SERVER['SCRIPT_NAME']?>">

                  Ich sehe (und benutze) üblicherweise eigentlich lieber
                  $_SERVER['PHP_SELF'], aber egal :)

                  Das habe ich mir aber auch gedacht, aber ein Blick in phpinfo() sagte mir, dass da das gleiche drinsteht... keine Ahnung ob das Zufall war, aber egal :)

                  Trotzdem sollte es doch besser so aussehen:
                  <form action="<?php echo $_SERVER['SCRIPT_NAME']; ?>">

                  so habe ich es auch immer geschrieben, aber die Variante oben ist auch richtig.

                  Grüße aus Nürnberg
                  Tobias

                  1. Hallo,

                    Das habe ich mir aber auch gedacht, aber ein Blick in phpinfo() sagte mir, dass da das gleiche drinsteht... keine Ahnung ob das Zufall war, aber egal :)

                    Ich hatte auch vorher nachgeschaut :)

                    so habe ich es auch immer geschrieben, aber die Variante oben ist auch richtig.

                    Ja, aber sie funktioniert nur, wenn short_open_tags eingeschaltet sind,
                    was wieder zu Problemen mit xml headern und so unnötiger Schreibarbeit wie <?php echo "<?xml version="1.0"?>\n"; ?> führt...

                    Gruß,
                    dimde

                    1. Hallo dimde,

                      so habe ich es auch immer geschrieben, aber die Variante oben ist auch richtig.
                      Ja, aber sie funktioniert nur, wenn short_open_tags eingeschaltet sind,

                      mhh... das mag sein.

                      was wieder zu Problemen mit xml headern und so unnötiger Schreibarbeit wie <?php echo "<?xml version="1.0"?>\n"; ?> führt...

                      was meinst du jetzt damit? Hier gibst du doch einen String aus und nicht eine Variable...
                      btw. bei so einer Konstruktion ist der Strichpunkt übrigends optional :)

                      Grüße aus Nürnberg
                      Tobias

                      1. Hallo Tobias,

                        Sorry, dass ich erst jetzt antworte, ich war übers Wochenende weg und
                        hatte (leider) keinen Internetzugang *das sehr vermisst hab* :)

                        Ja, aber sie funktioniert nur, wenn short_open_tags
                        eingeschaltet sind,
                        mhh... das mag sein.

                        Nein, das *ist* so :)

                        siehe: http://www.php.net/manual/en/function.echo.php

                        <quote>
                        echo() also has a shortcut syntax, where you can immediately
                        follow the opening tag with an equals sign.

                        I have <?=$foo?> foo.

                        Note: This short syntax only works with the short_open_tag
                        configuration setting enabled.
                        </quote>

                        was wieder zu Problemen mit xml headern und so unnötiger
                        Schreibarbeit wie <?php echo "<?xml version="1.0"?>\n"; ?>
                        führt...
                        was meinst du jetzt damit? Hier gibst du doch einen String aus
                        und nicht eine Variable...

                        Schreib doch mal ein XHTML-Dokument in dem PHP Code vorkommt, dann
                        weißt du, was ich meine.

                        kleiner Tipp: die "<? ?>" im XML-Header "<?xml version="1.0" [...]?>"
                        werden natürlich vom PHP Parser (falls short_tags on sind) als PHP
                        Short Tags interpretiert und nicht als XML-Header. Deswegen muss man
                        den XML-Header (der ja für ein korrektes XHTML Dokument zwingend
                        erforderlich ist) von PHP ausgeben lassen, was zu oben erwähnter
                        Konstruktion führt.
                        Eine strikte Trennung von Layout und Code entschärft die Situation
                        natürlich meistens, aber gerade bei kleineren Projekten, kann dises
                        Problem äußerst lästig werden.

                        btw. bei so einer Konstruktion ist der Strichpunkt übrigends optional :)

                        Wenn man ihn aber hinschreibt, hält man einen einheitlichen Syntax
                        ein und schreibt sauberen Code.
                        Man kann ja auch if ($foo == "bar") machdas(); schreiben - da sind
                        die geschweiften Klammern auch optinal. Trotzdem wird der code
                        durch Verwendung derselben um einiges lesbarer und übersichtlicher.

                        (Genauso macht auch ein <?php statt einem <? den Code lesbarer, weil
                        man sofort erkennt, dass es sich um PHP handelt (meine Meinung)...)

                        Ich persönlich halte mich in dieser Hinsicht an die PEAR Coding Standards[1],
                        so finden sich andere Programmierer leichter in meinen Scripten zurecht und
                        müssen sich nicht erst auf spezielle Vorlieben hinsichtlich der Schreibweise
                        einstellen.

                        [1] http://pear.php.net/manual/en/standards.php

                        Gruß,
                        dimde

                        1. Hallo Dimde,

                          Nein, das *ist* so :)
                          siehe: http://www.php.net/manual/en/function.echo.php

                          ok, hast ja recht :) dann werde ich das ganze besser so lassen wie
                          ich es bisher habe...

                          <quote>
                          echo() also has a shortcut syntax, where you can immediately
                          follow the opening tag with an equals sign.

                          och nöö... ich mag kein Englisch :) (habe mal in der url en durch de
                          ersetzt, dann hat man die Deutsche version :) )

                          Schreib doch mal ein XHTML-Dokument in dem PHP Code vorkommt, dann
                          weißt du, was ich meine.

                          mit xhtml habe ich mich noch nicht weiter beschäftigt.

                          kleiner Tipp: die "<? ?>" im XML-Header "<?xml version="1.0" [...]?>"
                          werden natürlich vom PHP Parser (falls short_tags on sind) als PHP
                          Short Tags interpretiert und nicht als XML-Header.

                          logisch. Aber wie wird von php (mit short_tags=on) '<?xml' gelesen, sieht
                          der das so, dass ein php-Bereich geöffnet werden soll? Das mit '?>' der
                          Bereich geschlossen wird ist ja klar.

                          btw. bei so einer Konstruktion ist der Strichpunkt übrigends optional :)
                          Wenn man ihn aber hinschreibt, hält man einen einheitlichen Syntax
                          ein und schreibt sauberen Code.

                          ja, es war auch nur eine theoretische Möglickeit, ich schreibe auch meistens den
                          Strichpunkt hin.

                          Man kann ja auch if ($foo == "bar") machdas(); schreiben - da sind
                          die geschweiften Klammern auch optinal.

                          if-Abfragen schreibe ich immer mit geschweiften Klammern, ohne ist mir das
                          ganze etwas suspekt :)

                          (Genauso macht auch ein <?php statt einem <? den Code lesbarer, weil
                          man sofort erkennt, dass es sich um PHP handelt (meine Meinung)...)

                          ja, meine auch, ich bemühe micht immer <?php zu schreiben...

                          [1] http://pear.php.net/manual/en/standards.php

                          [x] kurz angeschaut (genauere Durchsicht folgt noch, habe aber nur bis um 2 Pause... :) )

                          Grüße aus dem kalten Nürnberg :)
                          Tobias

                          1. Hallo Tobias,

                            och nöö... ich mag kein Englisch :) (habe mal in der url en durch de
                            ersetzt, dann hat man die Deutsche version :) )

                            Wie Du willst :)

                            logisch. Aber wie wird von php (mit short_tags=on) '<?xml' gelesen, sieht
                            der das so, dass ein php-Bereich geöffnet werden soll? Das mit '?>' der
                            Bereich geschlossen wird ist ja klar.

                            Jep, genau. Er meint dann, dass jetzt ein PHP Code Block beginnt
                            und meldet natürlich lauter Syntaxfehler wegen dem "xml version...".
                            Deswegen muss man - falls man XHTML verwendet - entweder
                            short_tags ausschalten (meiner Meinung nach die bessere Lösung), oder
                            man "escaped" den XML Header mit PHP.

                            Grüße aus dem kalten Nürnberg :)

                            Gruß,
                            dimde
                            [der das Wochenende über in Füssen (und den ganzen Samstag im
                            Eisstadion) war, wo es zur Zeit auch richtig schön kalt ist *g*]

            2. Und was muss da hin?

              1. Hallo,

                LIES DIE FAQ!

                Und was muss da hin?

                Mal eine ganz ernst gemeinte Frage:
                Willst du das PHP-Skript (bzw. PHP allgemein) wirklich verstehen, oder
                bist du nur auf der Suche nach einem Formmailer für deine Homepage?
                Im ersteren Fall: Fang mit den Grundlagen an. (Kauf dir ein Buch.)
                Im zweiteren Fall: Wieso verwendest du nicht einfach einen der
                kostenlosen Formmailer-Dienste im Internet, wie z.B.
                http://www.formmailer.com. (Weitere unter http://www.kostenlos.de.)

                Tobias

                PS: Des weiteren heißt dieses Forum Selfforum, mit Betonung auf "Self".