formular/mail verschicken
vroni
- php
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);
}
?>
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
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
...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!
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.
genau ein kontaktformular!
die fehlermeldung lautet:
error 404: Datei nicht gefunden!
Das angegebene Dokument konnte auf diesem Server leider nicht gefunden werden.
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
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
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
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
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
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
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
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...
[x] kurz angeschaut (genauere Durchsicht folgt noch, habe aber nur bis um 2 Pause... :) )
Grüße aus dem kalten Nürnberg :)
Tobias
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*]
Und was muss da hin?
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".