• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Kontaktformular bisschen erweitern

Status
Für weitere Antworten geschlossen.

Sven_SN

Neues Mitglied
Hallo,
ich erstelle gerade ein Kontaktformular zum üben ( bin dabei php zu lernen :) ).
Nun wollte ich, aber nicht nur ein einfaches ( kann ich schon ) erstellen sondern noch ein " Feature " einbauen.

Erstmal der logische Aufbau:

1. Wenn Absende Button gedrückt wird
1.1. Fehler ausgeben, wenn nicht alle Felder ausgefüllt sind
2. Wenn alles Ok, soll alles nochmal über dem Formular ausgegeben werden
2.1 durch erneutes klicken auf "Ok", soll das Formular versendet werden an E-Mail / Datenbank ( erstmal egal wohin )
2.2 Wenn versendet " Vielen Dank " oder so ausgeben

Mein Code:

PHP:
<?php
$hpname = $_POST[hpname];
$url = $_POST[url];
$burl = $_POST[burl];
$beschreibung = $_POST[beschreibung];
$ausgabe = $_POST[ausgabe];
$ok = true;

if(isset($ausgabe)) {
    // es wurde kein Hompage-Name eingetragen
    if($hpname == "") {
        echo "<p>Du hast den Namen deiner Homepage nicht angegeben!</p>";
        $ok = false;
    }
    // es wurde keine URL eingetragen
    if($url == "") {
        echo "<p>Du hast keine Homepage Adresse nicht angegeben!</p>";
        $ok = false;
    }
    // es wurde keine Banner Adresse eingetragen
    if($burl == "") {
        echo "<p>Du hast die Adresse zu deinem Banner nicht angegeben!</p>";
        $ok = false;
    }
    // es wurde keine Nachricht eingetragen
    if($beschreibung == "") {
        echo "<p>Du hast keine Nachricht eingegeben!</p>";
        $ok = false;
    }
    // Alles ok, Eingabe = Ausgeben
    elseif ($ok) {
        echo "<p>Bitte überprüfe deine Angaben, bevor du sie abschickst</p>";
        echo "<p>Homepage-Name: $hpname </p>";
        echo "<p>URL: $url </p>";
        echo "<p>Banner-URL: $url </p>";
        echo "<p>Beschreibung: $beschreibung </p>";
        $ok = true;
    }
}
?>

<form action="http://www.html.de/" method="post">
<p>Homepage-Name:</p>
<input type="text" name="hpname" value="<?php echo "$hpname" ?>" size="20" maxlength="50">
<p>Url:</p>
<input type="text" name="url" value="<?php echo "$url" ?>" size="20" maxlength="50">
<p>Banner-Url:</p>
<input type="text" name="burl" value="<?php echo "$burl" ?>" size="20" maxlength="50">
<p>Beschreibung:</p>
<textarea name="beschreibung" rows="20" cols="20"><?php echo "$beschreibung" ?>
</textarea>
<input type="Submit" name="ausgabe" value="Absenden">
</form>
Bis Punkt 2. bin ich also. Nun brauch ich, ja aber noch ein " Submit - Button ", gehe ich mal von aus ? Desweiteren eine weitere " Post - Variable ", weil die $_POST[ausgabe] ist ja schon vergeben.
Und wie schicke ich die Daten jetzt an eine E-Mail beispielsweiße ohne, dass es aussieht wie ein Formular ? ( wie die Ausgabe halt )

Hier kann sich das ganze nochmal in Aktion angeschaut werden.

http://www.lernfaktor.de/test/index.php

Geht das überhaupt ?

mfg
Sven

P.S. bin wie gesagt ganz neu bei php, also falls ihr irgendwelche Fehler findet oder irgendwas aus Sicherheitsgründen nicht i.O. ist bitte sagen ;)
 
Zuletzt bearbeitet:
Werbung:
Hallo,

ich versuche es mal.

Ich würde jetzt bei
<input type="Submit" name="ausgabe" value="Absenden">
eine Variable einbauen die nur was übergibt wenn die erste Prüfung ok war
z.B.:
PHP:
elseif ($ok) {
        $senden = "senden"; 
        echo "<p>Bitte überprüfe deine Angaben, bevor du sie abschickst</p>"; 
....
und im Formular
PHP:
<input type="Submit" name="ausgabe<?php echo $senden; ?>" value="Absenden">

jetzt brauchst oben nur wieder eine Prüfung machen die das mit mail() verschickt.
PHP:
if(isset($ausgabesenden)) {
#hier die mail() Funktion
}

So würde ich das jetzt weiter machen.

Gruß Cheffchen
 
Hi Sven,
bevor Du Dich da in ein komplettes Kontaktformular hineinkniest, checke ersteinmal Deinen PHP-Code. Ich habe das jetzt nicht ausprobiert, aber ich kann mir kaum vorstellen, dass Deine Zeichensetzung mit """ und echo Variable etc. wirklich funktioniert.
Grundsätzlich: $_POST["xyz"] (der Name des Feldes gehört in Tüttelchen)
Der Inhalt einer Variablen $xyz wird mit echo $xyz; ausgegeben. Echo "$xyz"; würde eben die Zeichenfolge $xyz ausgeben, wobei Dir wahrscheinlich das "$" noch einen Streich spielen würde.
Wie gesagt, mag sein, dass der Code funktioniert, weil sich die Fehler gegenseitig aufheben, ich habe jetzt keine Lust, so etwas auszuprobieren, aber Du wirst irgendwann furchtbar auf den Bauch fallen und weißt dann nicht warum.
Kalle
 
Werbung:
Echo "$xyz"; würde eben die Zeichenfolge $xyz ausgeben
Das ist nicht richtig. Das würde den Inhalt der Variablen $xyz ausgeben.
Anderswo ist es so, dass echo '$xyz' den String anstelle des Variableninhalts ausgibt, ich hab das jetzt nicht getestet, gehe aber davon aus. Deine Schreibweise gibt aber die Variable aus, das weiß ich sicher.
 
Hast Recht,
ich dachte nicht daran, dass man in PHP auch Variableninhalte innerhalb von Zeichenketten ausgeben kann, ohne erst eine Zeichenkette mit "Verbindungspunkten" zu konstruieren. Trotzdem wären hier bei einer einzigen Variablen ohne weiteren Text die Tüttel überflüssig.
Ich mache Webseiten und PHP nur ganz nebenbei und bin da wohl durch andere Programmiersprachen ein wenig "verdorben".
 
bin da wohl durch andere Programmiersprachen ein wenig "verdorben".
Das kenn ich...erst macht man PHP, dann wieder C, dann schreibt man ein Perl-Script in PHP um, dann muss ein bash-Script her und demnächst werd ich mir wohl noch Python aneignen müssen. Beim einen schreibt man Arrays mit @ statt $, beim anderen fehlt das $ bei Zuweisungen völlig usw usf. *ächtz* ;-)
 
Werbung:
Status
Für weitere Antworten geschlossen.
Zurück
Oben