Frage zu PHP E-Mail Formular
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
adresse
antworten
betreff
domain
email
ermitteln
feedback
fehler
feld
folgende zeilen
formular
http
kommentar
muster
nachricht
offensichtlicher unsinn
schwachsinn
versand
zeichen
zeitpunkt
-
Hallo Zusammen
Ich habe gestern begonnen PHP zu lernen.
Heute habe ich so ein Ding gemacht wo leute, die keine E-Mail adresse habe eins senden k?nnen ohne adresse.
f?r euch profis ist das ein billiger script aber f?r mich ist es ein meilenstein, da ich alles selber gemacht habe. nix tutorial.
zu meiner frage:
ich habe zwei scripte: einmal: formulareingabe.php
einmal: formular.php
script aus formular.php:
<?php
$empfaenger="$email";
$betreff = "$betreff";
$nachricht = "Von: $textfeld
$textarea
-----------------------
Bitte nicht an diese E-Mail Adresse zur?ckschreiben.
Free E-Mail versand von http://www.chriwy.tk";
mail($empfaenger, $betreff, $nachricht, "FROM: Formular");
echo "Dein Mail wurde versendet"
?>
Wie kann ich machen, das es die Felder erst ?berpr?ft bevor es gesendet wird????
Das z.b. steht: Nicht korrekte E-Mailadresse???
Vielen Dank f?r eure Hilfe.
gruss chriwy
ps: hier k?nnt ihr es testen:
http://chriwy.pyrokar.lima-city.de/formulareingabe.php -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Kann mir denn niemand helfen?
ich kann auch noch denn anderen script geben.
please help!!!
Visit: http://www.chriwy.tk
-
Ich glaube, das geht nich, das mit PHP zu ?berpr?fen ob es die Mailaddy gibt, aber du kannst schauen ob es z.B. ein "@" in der Variable $email gibt, wei? nur grad den genauen code nich, is wahrscheinlich was mit ner If schleife. ich kann mal den Code nachschauen, warte aber nich...
-
hi ja das geht
nen kolleg hat mir das mal gemacht als ich noch knapp html konnte. es muss irgendwie funzen!! -
Mit PHP geht das nicht, wirklich, du kannst nur gucken ob die Adresse richtig eingegeben wurde. Such doch einfach mal nach "PHP-mail" oder so bei http://www.google.de
-
wie hat das denn mein freund gemacht???
ich kopiere dir hier mal den script von ihm:
<?
$error="";
if(isset($_POST["email"] )){
if($_POST["name"]==""){
$error.='Kein Name <br>';
}
if($_POST["email"]==""){
$error.='Kein E-Mail <br>';
}
if($_POST["comment"]==""){
$error.='Kein Kommentar <br>';
}
$valid = (eregi ("^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]+$",$email));
if (!$valid == 1){
$error='Nicht korrekte E-Mail!';}
if($error==""){
mail("chriwy@gmx.net", 'Feedback', " Von:".$_POST["name"]. "\n E-Mail: ".$_POST["email"]."\n Nachricht:".$_POST["comment"]);
echo" Vielen Dank!!! Dein Feedback wurde versendet!!!";
}else{
echo"<p class='Fehlertitel'>Fehler: <p class='Fehler'> $error</p>";
}
}
// Nach Echo
echo"
<html>
<head>
<title>Feedback chriwy.tk</title>
<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'>
<link rel='stylesheet' type='text/css' href='format.css'>
<style type='text/css'>
<!--
body,td,th {
font-family: Verdana, Arial, Helvetica, sans-serif;
color: #CCFF00;
}
body {
background-color: #000000;
}
-->
</style></head>
<body>
<table width='70%' border='0' class='notice'>
<tr align='left' valign='top'>
<td><p class='titel'> </p>
<form name='form1' method='post' action='".$PHP_SELF."'>
<table width='74%' border='0' class='notice'>
<tr align='left' valign='top'>
<td width='24%'>Name: </td>
<td width='45%' colspan='2'><input name='name' type='text' size='25' value='".$_POST["name"]."'></td>
</tr>
<tr align='left' valign='top'>
<td>E-Mail: </td>
<td colspan='2'><input type='text' name='email' size='25' value='".$_POST["email"]."'></td>
</tr>
<tr align='left' valign='top'>
<td>Kommentar:</td>
<td colspan='2'><textarea name='comment' value='".$_POST["comment"]."'></textarea></td>
</tr>
<tr><td><input type='submit' value='Abschicken'></td></tr>
</table>
</form></td>
</tr>
</table>
<p> </p>
</body>
</html>
";
//Bis vor "
?>
Vieleicht kannst du ja was damit anfangen!
gruss chriwy -
Hoi.
aliendwarf's Antworten sind v?lliger schwachsinn. Folgende Zeilen sind hier wichtig:
$valid = (eregi ("^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]+$",$email));
if (!$valid == 1){
$error='Nicht korrekte E-Mail!';
}
Da ist das @-Zeichen bei. Es gibt keine Mail-Adresse, ohne ein @-Zeichen!
Liebe Gr??e,
Ballu -
Hallo,
<?php
if(!ereg("^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*$", $email))
{
echo "mail falsch";
}
else
{
echo "Mail richtig";
}
so m?sste es gehen habs aber nicht gepr?ft.
-
merci
aber was muss ich genau bei den scrips reinschreiben dammit das nicht nur bei der e-mail geht???
bitte um erkl?hrung! -
ballu schrieb:
Hoi.
aliendwarf's Antworten sind v?lliger schwachsinn. Folgende Zeilen sind hier wichtig:
$valid = (eregi ('^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]+$',$email));
if (!$valid == 1){
$error='Nicht korrekte E-Mail!';
}
Da ist das @-Zeichen bei. Es gibt keine Mail-Adresse, ohne ein @-Zeichen!
Liebe Gr??e,
Ballu
n?, er sagt genau das selbe wie du
kwirsch schrieb:
Hallo,
<?php
if(!ereg('^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*$', $email))
{
echo 'mail falsch';
}
else
{
echo 'Mail richtig';
}
so m?sste es gehen habs aber nicht gepr?ft.
steht doch oben
chriwy schrieb:
merci
aber was muss ich genau bei den scrips reinschreiben dammit das nicht nur bei der e-mail geht???
bitte um erkl?hrung!
?hm
das is egal welche email addy eingegeben wird!
es muss nur immer so aussehen
asfadigb3145@ab35.agh9?3h
oder auch xy@xy.xy
bloss halt nach dem muster -
das hilft mir nicht weiter!
-
Es ist technisch absolut unm?glich, zu ?berpr?fen, ob es eine vom User eingetragene E-mail-Adresse gibt.
M?glich ist:
a) ?berpr?fung, ob in der scheinbaren E-Mail-Adresse ein (keine 2, keine 5, nur 1x) "@" vorkommt,
b) ?berpr?fung, ob VOR dem "@" es deutsche Umlaute gibt (was noch nicht sein darf).
c) ?berpr?fung, ob es nach dem "@" die Domain auch tats?chlich gibt.
zu a:
Einfache Abfrage, die wurde oben schon gepostet
zu b:
Die E-Mail-Adresse "H?nschen@M?ller.de" gibt es (noch) nicht, weil das "?" vor dem @ noch nicht Normgerecht ist. Das "?" in der Domain ist Normgerecht und akzeptabel. Also ein "Hans@M?ller.de" ist eine E-Mail-Adresse, die der Norm entspricht.
Ob es sie aber ?berhaupt gibt .... das weis man zu diesem Zeitpunkt nicht.
zu c:
Dazu m??test Du eine sehr sehr gro?e Liste F?hren, zumal jede neue Domain weltweit darin enthalten sein m??te. .. Das ist wegen der Datenmenge absolut unm?glich zu bewerkstelligen.
Was Du machen kannst ist:
Pr?fe, ob die Adresse normgerecht ist
Pr?fe, ob kein offensichtlicher Unsinn rein geschrieben wurde "nobody@nobody.de" oder so kannst Du ausfiltern mit "IF-Suchen".
Es ist nicht m?glich, die E-Mail-Adresse vor dem eigentlichen Absenden wirklich zu pr?fen.
Das w?re nur denkbar, wenn alle E-mail-Adressen irgendwo zentral gespeichert w?ren. So ein Verzeichnis gibt es aber nicht.
ODER
wenn man eine kurze "Pr?f-E-Mail" an den vorraussichtlichen Empf?nger schickt. Falls diese Pr?f-E-Mail mit dem Vermerk "Empf?nger unbekannt" zur?ckkommt wird es diese E-mail-Adresse nicht geben.
Falls diese E-mail aber nicht zur?ckkommt kann man NICHT schlu?folgern, dass es diese E-Mail-Adresse auch tats?chlich gibt.
Es kann sein, dass der Domain-Server E-Mails an nicht vorhandene Konten ignoriert, dass diese "Pr?f-E-mail" in einem totem Postfach landet oder dass sie mehrfach un- und weitergeleitet wird. ...
Also:
Es gibt keine tech. M?glichkeit, zu ermitteln, ob es eine eingegebene E-Mail-Adresse auch wirklich gibt. -
hi
du hast mich falsch verstanden. es muss nicht die adresse ?berpr?fen, sondern nur ob eine eingegeben wurde.
das gleiche bei den anderen feldern.
schau es dir mal an unter
http://chriwy.pyrokar.lima-city.de/html/formular/formulareingabe.php
gruss chriwy -
if(isset($_POST["email"] )){
if($_POST["name"]==""){
$error.='Kein Name <br>';
}
if($_POST["email"]==""){
$error.='Kein E-Mail <br>';
}
if($_POST["comment"]==""){
$error.='Kein Kommentar <br>';
}
Damit ?berpr?fst du ob in die Textfelder "email" "name" und "comment" (jeweils ohne die "") in deinem Formular etwas eingegeben wurde. -
warum einfach wenns kompliziert geht...
if (!empty($email) && !empty($name)){
mail ($empf?nger ....);
echo "Mail gesendet";
}else{
echo "Fehler";
}
mfg asmodeus -
hey jungs!
k?nnt ihr mir das an meinen script erkl?hren und gerade so einf?gen? so das ich es verstehe.
ich "lerne" php erst seit 2 tagen. also bitte etwas ausf?hrlicher.
danke f?r eure geduld
gruss chrigel -
?brigens, chriwy: So etwas wie deinen Service gibt es bestimmt schon 100mal!
Und warum sagst du nicht gleich was du willst?
-AlienDwarf -
@aliendwarf
ich kann ja noch nichts anderes also bastle ich mal so was. du konntest warscheinlich am zweiten tag auch noch nicht mega thunder scrips schrieben oder? -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage