Formular mittels senden.php auswerten
lima-city → Forum → Die eigene Homepage → HTML, CSS & Javascript
absender
array
ausgabe
code
dank
datei
domain
eintrag
email
fehler
fehlermeldung
formular
funktion
jemand
kontakt
nachricht
ort
post
riff
vorname
-
Guten Mittag,
nachdem mein Formular soweit fertig ist würde ich gerne wissen wie ich die einzelnen Felder auswerte.
Das Formular lautet ja:
<td valign="top" id="main" height="600" align="center" > <table align="center" id="main2" border="0" cellpadding="0" cellspacing="0"> <tr> <td id="inbox"> <form action="senden.php" target="_kontakt" method="post"> <fieldset> <legend>Bestellformular</legend> <div> <label for="anrede">Anrede</label> <select name="anrede" size="1" id="anrede"> <option>Frau</option> <option>Herr</option> <option>Dr.</option> <option>Prof.</option> </select> </div> <div> <div> <label for="Vorname">Vorname:</label> <input type="text" maxlength="30" name="vorname" id="Vorname"/> </div> <div> <label for="Name">Name:</label> <input type="text" maxlength="30" name="name" id="Name"/> </div> <div> <label for="Strasse">Strasse:</label> <input type="text" maxlength="30" name="strasse" id="Strasse"/> </div> <div> <label for="PLZ">PLZ:</label> <input type="text" maxlength="30" name="plz" id="PLZ"/> </div> <div> <label for="Ort">Ort:</label> <input type="text" maxlength="30" name="ort" id="Ort"/> </div> <div> <label for="Telefon">Telefon:</label> <input type="text" maxlength="30" name="telefon" id="Telefon"/> </div> <div> <label for="Email">Ihre E-Mailadresse:</label> <input type="text" maxlength="30" name="email" id="Email"/> </div> </div> <div> <label for="Land">Land</label> <select name="land" size="1" id="Land"> <option selected="selected">Deutschland</option> <option>Holland</option> <option>Schweiz</option> <option>Oesterreich</option> <option>Sonstiges</option> </select> </div> <div> <div> <input type="checkbox" name="extras[]" value="heizung" id="Heizung"> <label for="Heizung">Heizung</label> </div> <div> <input type="checkbox" name="extras[]" value="kuehlschrank" id="Kuehlschrank"> <label for="Kuehlschrank">Kühlschrank</label> </div> <div> <input type="checkbox" name="extras[]" value="solaranlage" id="Solaranlage"> <label for="Solaranlage">Solaranlage</label> </div> <div> <input type="checkbox" name="extras[]" value="tv" id="TV"> <label for="TV">TV</label> </div> <div> <input type="checkbox" name="extras[]" value="ersatzrad" id="Ersatzrad"> <label for="Ersatzrad">Ersatzrad</label> </div> <div> <input type="checkbox" name="extras[]" value="pannenset" id="Pannenset"> <label for="Pannenset">Pannenset</label> </div> </div> <div> <label for="Nachrichten">Nachricht:</label> <textarea name="nachricht" cols="40" rows="9" id="Nachrichten"></textarea> </div> <div> <input type="submit" name="Senden" value="Abschicken" id="senden"/> </div> </pre> </fieldset> </form>
Mein senden.php Datei ist bis jetzt so:
<?php //-->hier wird der Absender ermittelt $emailadresse = (!empty($_POST['emailadresse'])) ? $_POST['emailadresse'] : //-->wird als Standart Absender benutzt, wenn kein Absender eingegeben wurde (hier kann auch einen Fehlermeldung ausgegeben werden, so wie beim nächsten Schritt) 'website@domain.de'; $nachricht = (!empty($_POST['nachricht'])) ? $_POST['nachricht'] : ''; if ($nachricht == '') { //-->wird gezeigt wenn keinen Nachricht eingegeben wurde echo 'Bitte geben Sie eine Nachricht ein.'; } else { //-->bei 'mail@domain.de' muss die Empfänger Mailadresse rein (können auch mehrere sein) mail('*******@*******.com', '[Anfrage von der Website]', $nachricht, 'From: ' . $emailadresse . "\r\n"); //-->Ausgabe eines Dankessatzes, kann aber weggelassen oder verändert werden! echo 'Vielen Dank für Ihre Nachricht. Ich werden so bald wie möglich antworten.'; } ?>
Bis jetzt wird aber nur die Nachricht übermittelt wie mach ich jetzt das die Eingabefelder Pflichtfelder sind.
Ich hab mal versucht diesen Code ausschnitt:
$nachricht = (!empty($_POST['nachricht'])) ? $_POST['nachricht'] : ''; if ($nachricht == '')
umzuschreiben in
$vorname= (!empty($_POST['vorname'])) ? $_POST['vorname'] : ''; if ($vorname == '')
funktioniert ja nicht, wie lauten da die Befehle, ich hab es über SelfHtml versuch, bekomm es aber nicht hin.
Würde sich bitte jemand die mühe machen mir das zu erklären. Danke
Lg Timon
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Edit, beinahe vergessen.
Am Anfang natürlich dazu:
if ($_POST) { $Fehler = 0; $Fehlerliste = "";
Ich habe es bei einer Registrierungsroutine wie folgt gelöst:
if (!$_POST['Vorname']) { $Fehlerliste. = "Bitte geben sie ihren Vornamen an!"; $Fehler++; }
Am Ende der Abfragen, vor der Ausgabe dann:
if ($Fehler != 0) { echo $Fehlerliste; } else { -- Weitere Anweisungen --
Meine Lösung, funktioniert, gibt jedoch sicher eleganteres - vll. meldet sich ja noch jemand hier.
EDIT : Siehe oben.
Beitrag zuletzt geändert: 29.3.2010 15:57:06 von glowsoft -
Eine kleine Anmerkung zum Beitrag von glowsoft:
glowsoft schrieb:
if (!$_POST['Vorname']) { $Fehlerliste. = "Bitte geben sie ihren Vornamen an!"; $Fehler++; }
Das POST-Array enthält automatisch einen Eintrag für 'Vorname', wenn das abgesendete Formular ein Einfabefeld namens 'Vorname' vorgibt, unabhängig davon, ob tatsächlich etwas eingegeben wurde oder nicht. Vielleicht ist das auch nicht auf allen Systemen so, aber ich habe schon länger darüber gesessen, um das herauszufinden. Hier auf Lima-City wird jedenfalls dann im Array einfach ein leerer Array-Eintrag $_POST['Vorname'] übermittelt. Und !$_POST['Vorname'] wird auch nicht false, selbst wenn es leer bleibt.
Das prüfen mittels
bringt hier auch nichts, da es ja in jedem Fall gesetzt ist.isset($_POST['Vorname'])
Besser ist dann:
if (empty($_POST['Vorname'])) { $Fehlerliste. = "Bitte geben sie ihren Vornamen an!"; $Fehler++; }
-
Danke ihr zwei,
wie mach ich das eigentlich die Eingabefelder übertragen werden, ich bekomme immer einen Fehler 17 oder 11 -
Mit der Fehlermeldung kann ich so leider nichts anfangen. Kannst du da mal mehr posten (die komplette Meldung)?
Normalerweise steht der Wert eines INPUT Feldes, was so definiert wurde:
<input type='.......' name='email'>
im POST Array als
$_POST['email']
Du kannst Dir alles, was übertragen wurde auf einen Schlag mal ausgeben lassen, mittels
print_r($_POST)
-
Fehlermeldung gibst gerade keine mehr, hab zu viel rumgespielt.
Hab jetzt das Problem das nur der Nachrichten Text übermittelt wird.
In der .html Datei heißt es ja:
<label for="Nachrichten">Nachricht:</label> <textarea name="nachricht" cols="40" rows="9" id="Nachrichten"></textarea>
und in der .php wird es doch mit dem:
$naricht = 'Das ist der Nachrichtentext';
gespeichert.
und mit Hilfe des:
if (@mail($empfaenger, $betreff, $nachricht, $header) === true) {
an meine Email gesendet. Stimmt das so weil dann müsst ich doch einfach nur $vorname= 'Das ist der Vorname '; einfügen und der Vorname wird übermittelt.
EDIT:
ich habe die Fehlermeldung die ich immer bekomme mal erzeugt, vielleicht kann damit jemand mir helfen
Warning: include(funktionen.inc.php) [function.include]: failed to open stream: No such file or directory in /home/webpages/lima-city/nano-riff/html/kontakt/mail.php on line 12 Warning: include() [function.include]: Failed opening 'funktionen.inc.php' for inclusion (include_path='.:/usr/lib/php/') in /home/webpages/lima-city/nano-riff/html/kontakt/mail.php on line 12 Fatal error: Call to undefined function cleaninput() in /home/webpages/lima-city/nano-riff/html/kontakt/mail.php on line 15
Beitrag zuletzt geändert: 1.4.2010 23:29:16 von nano-riff -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage