$_Post - Array im Header zerlegen (Formularmailer)

Akimo

Grünschnabel
Guten Tag an alle zusammen,
ich habe folgende Frage(n):

Ich möchte einen Formularmailer machen, der auf der Seite der Kanzlei meines Praktikumchefs Besuchern die Möglichkeit gibt Fragen zu stellen etc.

So nun möchte ich, nachdem das Formular ausgefüllt wurde überprüfen ob:
a) etwas eingegeben wurde
b) das Formular nicht durch eingabe der URL schlicht umgangen wurde (Spam)
(das würde ich einfach machen indem ich überprüfe ob das Post - Array überhaupt vorhanden ist)

Dafür muss ich ja bereits im Header der php - Seite anfangen das Post - Array zu zerlegen und zu überprüfen. -> Wie mache ich das?

Von der formular.html - Seite werden folgende Werte übergeben:
Betreff, Name, Nachname, Email, Telefon/Fax, Adresse, Schilderung des Sachverhaltes.
Bis auf Telefon/Fax sollen alle Werte geprüft werden ob etwas enthalten ist.

Und ja bei google gibts viele Antworten, aber den Code kopieren kann jeder, ich will aber was lernen und das geht mit Copy + Paste nicht.

Noch ne Minifrage: Der Befehl zum wegschicken der Mail ist dann mail (a, b, c) oder?
Ich traue google nicht wirklich... :D

Schonmal danke im Vorraus
Fabi
 
b) das Formular nicht durch eingabe der URL schlicht umgangen wurde (Spam)
(das würde ich einfach machen indem ich überprüfe ob das Post - Array überhaupt vorhanden ist)

Das Post-Array kann von erfahrenen Leuten auch mitgesendet werden ohne dein Formular zu nutzen.

Dafür muss ich ja bereits im Header der php - Seite anfangen das Post - Array zu zerlegen und zu überprüfen. -> Wie mache ich das?

Die Daten vom Formular befinden sich in $_POST. Was genau meinst du mit "zerlegen"?

Bis auf Telefon/Fax sollen alle Werte geprüft werden ob etwas enthalten ist.

Ich habe fast immer das "Handbuch" (php.net) genutzt und daraus lernt man schon viel: http://de3.php.net/manual/de/function.empty.php
Und unter "Siehe auch" gibt es noch mehr Möglichkeiten.

Noch ne Minifrage: Der Befehl zum wegschicken der Mail ist dann mail (a, b, c) oder?

Auch hier einfach mal bei php.net in der Suche "mail" eingeben ;)
 
Hi Zodiac,

das php.net Handbuch is spitze, vielen Dank

Habe den Mailer jetzt funktionsfähig hinbekommen sodass er mir ne Mail schickt, aber wie ich jetzt überprüfen kann ob in meinem $_Post - Array auch wirklich Angaben enthalten waren weis ich nicht.

Hier ist mal der Code bisher, sieht bestimmt total unbeholfen aus :p :
Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<?php
		$var1 = $_POST['nachname'];
		$var2 = $_POST['vorname'];
		$var3 = $_POST['adresse'];
		$var4 = $_POST['tele/fax'];
		$var5 = $_POST['email'];
		$var6 = $_POST['gebiet'];
		$var7 = $_POST['text'];
?>
</head>
<body>
<?php
$empfaenger = "bigbully@live.de";
$datum = date("d.m.Y");
$uhrzeit = date("H:i");
$senden =   "Guten Tag, mein Name ist $var1 $var2. \n
			Meine Adressdaten: \n
			$var3 \n
			$var4 \n
			$var5 \n
			\n
			Ich bräuchte Ihre Hilfe im $var6, hier eine genauere Beschreibung: \n
			$var7 \n
			\n
			Nachricht wurde gesendet: $datum um $uhrzeit";
			
mail ($empfaenger, $var5 , $senden)
	or die ("Es tut uns Leid aber es ist ein Fehler bei der Bearbeitung aufetreten");
?>
</body>
</html>

So nun zu dem Teil an dem ich nicht mehr weiter weis hab jetz schon bisschen rumprobiert aba irgendwie hat nichts davon geklappt:

Ich möchte gleich im Header überprüfen ob im $_Post - Array Werte enthalten sind.
Wie stell ich das an? Mit var_dump (); komm ich nicht weiter, auch wenn ich einzeln alles prüfen lasse.
Habe auch das versucht: if ($_Post="")
Und gibt es jetzt noch ne Möglichkeit, nachdem alles gesendet wurde, automatisch wieder auf die index.html weiterleiten zu lassen? Ich habs zwar gelesen aba ich versteh nicht inwiefern da include(); jetzt Abhilfe schaffen soll (google eben...).
 
Mit var_dump (); komm ich nicht weiter, auch wenn ich einzeln alles prüfen lasse.
Mit [phpf]var_dump[/phpf] überprüfst du nichts, du gibst die Variable nur aus. Ist also nur zu Testzwecken nützlich.

Habe auch das versucht: if ($_Post="")
Da müssen zwei Gleichheitszeichen hin, sonst ist es eine Zuweisung. Allerdings glaube ich nicht, dass der Vergleich zwischen einem Array und einem String etwas vernünftiges zurückgibt. Probier doch mal if (isset($_POST)).

Falls die Variablen kompliziertere Bedingungen erfüllen müssen, brauchst du vielleicht noch reguläre Ausdrücke.

Und gibt es jetzt noch ne Möglichkeit, nachdem alles gesendet wurde, automatisch wieder auf die index.html weiterleiten zu lassen? Ich habs zwar gelesen aba ich versteh nicht inwiefern da include(); jetzt Abhilfe schaffen soll (google eben...).
[phpf]include[/phpf] nützt dir nichts, das dient dazu, Seiten einzubinden, aber nicht weiterzuleiten. Dafür kannst du [phpf]header[/phpf] verwenden, dazu darf allerdings vor diesem Befehl kein einziges Zeichen an den Browser gesendet werden (also HTML-mässig). Auch kein Leerzeichen.
 
Zurück