 |
Willkommen im TP Hilfe Forum unter Traum-Projekt.com
Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen und Fragen stellen, privat mit anderen TPlern kommunizieren, an Umfragen teilnehmen und gratis Fotos runterladen. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Wir würden uns freuen, Dich in einer der freundlichsten Communitys als Mitglied begrüßen zu dürfen. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support Team.
Viel Spaß bei Traum-Projekt.com
|
09.09.2004, 14:29
|
#31
|
|
TP-Specialist
Registriert seit: Aug 2002
|
Natürlich kannst du das, aber außerhalb von PHP-Tags am besten (es sei denn du weißt was du tust).
|
|
|
09.09.2004, 14:34
|
#32
|
|
TP-Member
Registriert seit: Apr 2004
Ort: Grömitz
|
Ich dachte mir, wenn ich es so mache:
PHP-Code:
<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>mailer.php</title>
<link rel="stylesheet" href="groe%DFe.css" type="text/css">
</head>
<body bgcolor="#cccccc" oncontextmenu="return false">
<?PHP
/* Das Skript mailer.php*/
?>
</BODY>
</HTML>
Anschließend die Datei als mailer.php speichern.
Richtig? 
|
|
|
09.09.2004, 14:42
|
#33
|
|
TP-Specialist
Registriert seit: Aug 2002
|
Nicht immer fragen, testen und lernen soll der Mensch!  Aber ja, hast schon richtig gedacht.
|
|
|
09.09.2004, 15:18
|
#34
|
|
TP-Member
Registriert seit: Apr 2004
Ort: Grömitz
|
Hat alles funktioniert...
Danke...
Ist ja nicht so schwer wie ich dachte... 
|
|
|
08.01.2005, 01:27
|
#35
|
|
TP-Newbie
Registriert seit: Jan 2005
|
Nabend ihr alle,
echt feines HowTo, ich glaube ich habe es auch soweit verstanden, was mich jetzt noch interessieren würde:
Wie bekomme ich es hin, dass z.B. nicht einfach der Fehlertext "Sie haben den Vornamen nicht eingegeben." ausgegeben wird, sondern das ich auf eine andere Seite umgeleitet werde.
Also, wenn ich keinen Vornamen angebe, komme ich z.B. auf diese Seite:
/formmailer/vornamefehlt.htm
Vielen Dank schon mal im voraus!
Tuvok
|
|
|
08.01.2005, 02:11
|
#36
|
|
TP-Specialist
Registriert seit: Aug 2002
|
Da könnte man die beiden Funktionen pruefe_name() und pruefe_email() so umschreiben, dass sie als Argumente statt Fehlermeldungen die Links erhalten, auf die man dann weitergeleitet wird per header('Location: http ://...'):
PHP-Code:
function pruefe_name(&$name, $url_1, $url_2) /* ... */
{
$name = trim($name); /* ... */
if (empty($name)) :
$name = NULL; header('Location: '.$url_1); endif; /* ... */
if (preg_match("/^[- A-Za-zÄÖÜßäöü]{2,25}$/i", $name))
{
return $name;
}
else
{
$name = NULL;
header('Location: '.$url_2);
} /* ... */
}
function pruefe_email(&$email, $url_1, $url_2)
{
$email = trim($email);
if (empty($email)) : $email = NULL; header('Location: '.$url_1); endif;
if (preg_match(
"/^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/",
$email))
/* .. */
{
return $email;
}
else
{
$email = NULL;
header('Location: '.$url_2);
}
}
Und die Funktionen jetzt mit voller URL aufrufen. Etwa so:
PHP-Code:
pruefe_name($_POST['vorname'],
"http://www.domain.de/keine_eingabe_vorname.html",
"http://www.domain.de/unerlaubte_eingabe_vorname.html");
/* usw. */
So, jetzt bist du an der Reihe! 
|
|
|
08.01.2005, 17:34
|
#37
|
|
TP-Newbie
Registriert seit: Jan 2005
|
Hi!
Erstmal danke, aber das funktioniert irgendwie nicht wirklich:
Es kommt als Fehler immer der Link aus "$url_2" und außerdem kommt der Fehler zwar wie gesagt richtig, jedoch wird die eMail trotzdem an mich gesendet, warum?
Tuvok
|
|
|
08.01.2005, 19:16
|
#38
|
|
TP-Specialist
Registriert seit: Aug 2002
|
Welcher Fehler kommt denn genau?
|
|
|
08.01.2005, 20:04
|
#39
|
|
TP-Veteran
Registriert seit: Sep 2002
Ort: Schweiz
|
sorry wenn ich dazwischen funke, aber ich möchte gerne bei nem formular von mir die felder überprüfen. das ganze wollt ich halt über ne klasse lösen. dank diesem thread bin ich dann auf die referenzen gestossen.
meine klasse:
PHP-Code:
function check_form(&$field)
{
if(empty($field)): $msg = "fehlermeldung halt"; endif;
}
und im script dann
PHP-Code:
check_form($_POST['bla']); echo $msg;
müsste doch funktionieren oder?
|
|
|
08.01.2005, 20:14
|
#40
|
|
TP-Newbie
Registriert seit: Jan 2005
|
Hi!
Zitat:
|
Zitat von Strogij
Welcher Fehler kommt denn genau?
|
Sorry, da habe ich mich wohl schlecht ausgedrückt, was ich meine:
Es kommt in dem Sinne kein Fehler, sondern es wird immer, egal ob nun der Name angegeben wird, oder mit unerlaubten Zeichen versehen ist, die Meldung die kommen soll, wenn unerlaubte Zeichen vorliegen.
Gleichzeitig kommt zwar die Seite mit dem "Ungültige Zeichen liegen vor" jedoch bekomme ich eine eMail, wo dann eben der Name fehlt.
Habe ich mich jetzt verständlicher ausgedrückt?
Tuvok
|
|
|
08.01.2005, 20:42
|
#41
|
|
TP-Specialist
Registriert seit: Aug 2002
|
Versuch's mal damit:
PHP-Code:
function pruefe_name(&$name, $url_1, $url_2) /* ... */
{
$name = trim($name); /* ... */
if (empty($name)) :
$name = NULL; header('Location: '.$url_1); exit(); endif; /* ... */
if (preg_match("/^[- A-Za-zÄÖÜßäöü]{2,25}$/i", $name))
{
return $name;
}
else
{
$name = NULL;
header('Location: '.$url_2);
exit();
} /* ... */
}
function pruefe_email(&$email, $url_1, $url_2)
{
$email = trim($email);
if (empty($email)) : $email = NULL; header('Location: '.$url_1); exit(); endif;
if (preg_match(
"/^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/",
$email))
/* .. */
{
return $email;
}
else
{
$email = NULL;
header('Location: '.$url_2);
exit();
}
}
@Daniel: Dann musst du $msg vorher global definieren.
|
|
|
09.01.2005, 12:15
|
#42
|
|
TP-Veteran
Registriert seit: Sep 2002
Ort: Schweiz
|
Danke strogij, hätt ich mir auch denken sollen  aber jetzt ists bei mir halt so, dass die fehlermeldung (also wenn ein feld leer ist) schon ausgegeben wird wenn ich das formular aufrufe. die check-funktion rufe ich aber erst nach
PHP-Code:
if(isset($_POST['submit']): check_form($_POST['hans']); endif;
mir fällt dazu nur  ein..
EDIT
alles klar, ich sollte die variable auch noch leeren
[edit2] nur wie?? mit else: $msg = NULL; geht dat ned... ;( [/edit2]
Geändert von Daniel N. (09.01.2005 um 12:20 Uhr).
|
|
|
09.01.2005, 16:46
|
#43
|
|
TP-Specialist
Registriert seit: Aug 2002
|
Wie sieht denn dein Mailer überhaupt aus?
|
|
|
09.01.2005, 17:02
|
#44
|
|
TP-Veteran
Registriert seit: Sep 2002
Ort: Schweiz
|
ist kein mailer, einfach ne funktion um formulare zu cheken  habs aber jetzt gelöst 
|
|
|
09.01.2005, 17:07
|
#45
|
|
TP-Specialist
Registriert seit: Aug 2002
|
Zitat:
|
Zitat von Daniel N.
ist kein mailer, einfach ne funktion um formulare zu cheken  habs aber jetzt gelöst 
|
Du bist ja schnell... 
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
Forumregeln
|
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge anzufügen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
HTML-Code ist Aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 14:41 Uhr.
|
 |