PHP formular auswerten und mailen

JBO_Zocker

Cadet 3rd Year
Registriert
März 2007
Beiträge
45
eine der wichtigsten sachen, die man mit php machen kann, denke ich ist es formularfelder auszuwerten. und es gibt auch viele gute anleitungen dafür aber eines hab ich bis jetzt noch nicht gefunden und dafür bräuchte ich eure hilfe:
HTML:
<form action="" method="post">
ich weiß, dass man einen parameter bei action angeben muss aber ich weiß nicht, wie ich eine von mir geschriebene funktion ausführen lassen kann.die funktion heißt
PHP:
send()
und in ihr ist angegeben, dass der inhalt des formulars versendet werden soll. ich bin nur nicht in der lage herauszufinden wie ich definiere, dass genau diese funktion beim klick auf
HTML:
<input class="input" type="submit" value="Senden">
die funktion ausgeführt wird.
danke schon mal im vorraus für eure hilfe

mfG
JBOZocker
 
Du brauchst doch nur deine Funktion in eine php Seite speichern und bei Form Action auf die Seite verweisen.
Also so:
<form action = "Bsp.php" method= "post">
Und in Bsp.php schreibst du die Funktion.
mfg
IRID1UM
 
Du kannst auch auf die Datei zeigen, in der das Formular ist. Und da rein setzt du dann noch nen PHP-Block in dem du checkst, ob das Formular abgeschickt wurde und verarbeitest dann die Daten. Das Formular brauchst du eh nochmal, wenn ein Plausibilitätscheck fehlschlägt.
 
Das Prinzip ist einfach. Im action Parameter einfach die *.php Datei angeben welche die Daten verarbeiten soll. Naja, dann gibt es mehrere Möglichkeiten wie du weiter verfahren kannst. Meiner Meinung nach wäre es geschickter die Daten auszulesen und als Kontrolle anzuzeigen. Und die angezeigten Daten dann in eine Funktion send() zu packen und diese dann zu versenden. Hab mal nen bisschen was zusammengetippt.

<?php

if($_POST) {
$message = '<html><body><h3>Nachricht verschickt! </h3><br />mit folgenden Daten:<table>';


$required = split("," , $_POST["required"]);

while(list($name,$value) = each($_POST)) {
$message .="\n<tr>\n";
if(is_array($value)) {
foreach($value as $value_array) {
$message .= $name.$delimiter.$value_array."\n";
}
}
else {
$message .= "<td>$name</td><td>$value</td>\n";
}
$message .="</td>";

// hier könnte deine Funktion send() stehen, der du z.b. die Daten aus POST mitgibst
// oder speicherst die Daten beim Zerlegen oben schon in ein Array oder ähnliches zwischen
// gibt hier mehrere Möglichkeiten
send($_POST);
}

//fuer sicherheit
if(get_magic_quotes_gpc()) {
$message = stripslashes($message);
}

echo $message;
}


?>

Bitte nicht steinigen wenn Tippfehler drin sind, war on the fly.
 
ich möchte gerne erst überprüfen, ob eine absenderadresse und ein betreff eingetragen sind. wenn das nicht der fall ist soll eine Fehlermeldung kommen. ich möchte aber gerne auf der seite bleiben, auf der ich bin. das bedeutet ich kann nicht einfach eine andere php seite angeben auf die weitergeleitet wird. also ich möchte einfach nur eine in genau dieser datei definierte funktion ausführen. ist das möglich?
 
Ja. Genau das haben wir doch alle gesagt. Du verweist in dem Formular auf die Datei in der das Formular ist. Und dann kannst du mit PHP die Daten überprüfen. Sollte alles stimmen werden die Daten verarbeitet, sonst eben nicht.
 
Schau dir mal den ISSET Befehl an, der könnte dir da helfen.
Bei der Form Action kannst du auch die Seite verweisen, auf der du schon bist, bzw. den SELF Befehl verwenden, von dem ich grad nicht im Kopf habe, wie die genaue Schreibweise war ($PHP_SELF oder sowas)
mfg
IRID1UM
 
PHP:
<?php print $PHP_SELF ?>

oder

PHP:
<?php $_SERVER['PHP_SELF'] ?>

Wie schon richtig gesagt wurde, überprüfe es mit dem isset() befehl.

PHP:
if(isset($_POST["formularname"])) {
$email = mysql_real_escape_string(trim($_POST["email"]));
$betreff = mysql_real_escape_string(trim($_POST["betreff"]));

//Hier vielleicht noch überprüfen ob es eine gültige Email Adresse ist...

if(!empty($email) and !empty($betreff)) {

Hier deinen code zum verarbeiten!

} 
//wenn die felder leer sind fehler
else {
//?was du willst
header("location: deineseite.php?wasduwillst");
}
}

//dann einfach in deiner Seite folgendes einbauen:


if(isset($_GET["wasduwillst"])) {
//Fehler
echo 'Es ist ein Fehler aufgetreten, Absender und Betreff dürfen nicht leer sein';
}

Funktionen:

trim()
mysql_real_escape_string()
isset()
empty()
header()
 
Zuletzt bearbeitet: (Funktion gelistet.. and POST Fehler behoben)
Zurück
Oben