PHP formular
#1
Das Formular (ist für den User sichtbar)
Zunächst muss das "Gesicht" es Formulares entstehen. Das Beispielformular, das hier erstellt wird, besteht aus zwei Hauptfeldern. Zum einen aus dem einzeiligen Feld, in das der Besucher seinen Namen eingeben kann und zum anderen das mehrzeilige Feld, in der die Nachricht für den Webmaster kommt.
Der Code für das „Gesicht“ sieht wie folgt aus:

Code:
<form method="post" action="formular.php">
Ihr Name: <input type="text" name="name" size="20"><br>
Ihre Nachricht: <textarea name="nachricht" rows="1" cols="20"></textarea><br>
<input type="submit" name="Button" value="Abschicken">
</form>

In dem „Form“-Tag (beginnend mit <form> und endend mit </form>), womit jedes Formular beginnen muss, wird bereits die Datei „formular.php“ durch action angegeben, die nach der Betätigung des „Abschick“-Buttons erfolgt. In den beiden folgenden Zeilen werden zum einen …name="name"… und … name="nachricht"… angegeben. Das ist für die Variablen in der php-Datei wichtig! Nachher nährere Erläterungen
Nun ist das „Gesicht“ des Formulars fertig. Jetzt kommt es auf die Qualität an. Es muss versendet werden.

Versenden
Nach dem Betätigen des Buttons wird die Datei formular.php geöffnet. Darin wird dem Benutzer noch einmal vorgeführt, was er in das Formular eingegeben hat.
Der Code dafür sieht wie folgt aus

Code:
<?php
echo "Sie haben folgende Angaben gemacht:<br>";
echo "Ihr Name: $name<br>";
echo "Ihre Nachricht $nachricht";
?>

Um eine Erklärung dafür zu geben, brauche ich die Hilfe eines Beispieles:
Sagen wir der Besucher hat als Name „Der böse Mann“ und als Nachricht „Tolle Seite“ verwendet und den „Abschick“-Button benutzt. Durch den HTML-Code im Formular („<form method="post" action="formular.php">“) wird die Datei „formular.php“ in den Browser geladen. Nun kommen die Variablen, die ich vorhin erwähnt habe, zum Einsatz. Durch „$name“ und „$nachricht“ erscheinen die eingegebenen Texte des Benutzers, wie im Beispiel als Name „Der böse Mann“ und als Nachricht „Tolle Seite“ verwandt wurde.
Doch diese beiden Codes erfüllen nicht unsere eigentlichen Wünsche des Formulars. Es wurde noch nicht verschickt.Um diese Funktion umzusetzen, brauchen wir den folgenden Code, der ebenfalls in die PHP-Datei eingefügt werden muss!

Code:
<?php
$empfaenger="name@domain.de";
$betreff = "Feedback";
$nachricht = " $name hat Sie kontaktiert: $nachricht";
mail($empfaenger, $betreff, $nachricht, "FROM: Formular");
?>

Dieser Code wird wie gesagt für die Mail, die an deine Adresse gehen soll, benötigt. In der zweiten Zeile musst du deine E-Mail Adresse eintragen, darunter in dritter Zeile muss der Betreff, hier natürlich schon eingefügt, erscheinen Die Nachricht mit dem Namen des Benutzers des Formulares (siehe folgende Zeile) wird wieder durch Variablen automatisch eingefügt. Wie im Beispiel erwähnt, würde dann die E-Mail an sie wie folgt aussehen:
Empfänger: name@domain.de
Betreff: Feedback

Der böse Mann hat sie kontaktiert: Tolle Seite

Fertig
Hier sind nun alle Codes noch einmal aufgeführt.
Das Gesicht (z.B. kann die Datei „face.htm“ genannt werden)

[/code]
<form method="post" action="formular.php">
Ihr Name: <input type="text" name="name" size="20"><br>
Ihre Nachricht: <textarea name="nachricht" rows="1" cols="20"></textarea><br>
<input type="submit" name="Button" value="Abschicken">
</form>
[/code]

Die Eingabe und der E-Mailversand (wichtig: muss „formular.php“ heißen)

Code:
<?PHP
echo "Sie haben folgende Angaben gemacht:<br>";
echo "Ihr Name: $name<br>";
echo "Ihre Nachricht $nachricht";
?>

<?php
$empfaenger="name@domain.de";
$betreff = "Feedback";
$nachricht = " $name hat Sie kontaktiert: $nachricht";
mail($empfaenger, $betreff, $nachricht, "FROM: Formular");
?>

Das war es nun. Ich hoffe du kommst mit meiner Beschreibung zurecht, bekommst ein funktionelles Formular und hast etwas gelernt.
Viel Spaß!

© by nobody



Könnt ihr mir sagen, was ihr schlecht, gut findet oder was sogar falsch ist?
MFG nobody
  Zitieren
#2
Ich habe zu PHP Formularen eine Frage:
<input type="submit" name="Button" value="Abschicken">

ich möchte neben Abesenden noch ein Button mit Vorschau. Klickt man darauf gelangt man erst zur Vorschau.

Was muss ich bei dem Button angeben wenn ich einen Vorschau button haben möchte?

<input type="submit" name="Button1" value="Vorschau">
  Zitieren
#3
jup Wink

Auch wenn es hier nicht hingehört:
Kannst du mir mal sagen, wie/wo man diese "schnelle Antwort erstellen" direkt unter den beiträgen aktivieren kann?
  Zitieren
#4
<input type="submit" name="Button1" value="Vorschau">
klappt aber nicht weil er dann trotzdem die seite ***.php?action=insert öffnet und alles einträgt. Big Grin

Schnelle Antwort ist ein Hack den es auf mywbb gibt. Such mal auf mywbb mit dem Begriff Quickreply und lade dir die Version 1.5 runter.
  Zitieren
#5
vielleicht musst du ein neues formular anlegen, worauf dieser abschickbutton "reagiert". Das, was dem user gezeigt werden soll, müsstest du dann vielleicht als Varialbe übergeben....

Danke
  Zitieren
#6
ja, habe ich schon versucht.

so in etwa:
if($action=="insert" AND !$Button1){
also wenn action insert ist und die variable vom vorschau button nicht vorhanden ist, soll er eintragen.
}
else {
vorschau
}

müsste doch klappen :grübel:
  Zitieren
#7
*lol* joa. Funktioniert es denn nicht?

Kann es sein, dass mywbb die ganzen hacks nicht mehr hat? Die haben jetzt auf wbbportal umgerüstet und keine hacks mehr fürs normale forum? Ich weiß nicht ob ich zu doof bin das zu finden oder was auch immer Wink
  Zitieren
#8
Doch, die haben meiner Meinung nach noch die meisten
hier:
http://mywbb.info/board/thread.php?threadid=55294
  Zitieren
#9
nach ein paar Jahren nochmal btt :

Mal davon abgesehen das deine Variablen "falsch" sind wird deine variante so net funktionieren
1) Die variablen müssten $_POST["Button1oderwieauchimmer"] heißen
2)Deine If abfrage ist sinnlos ^^
Schon wenn du einen der beiden buttons drückst wird er auf die empfagsphp gehen. Ergo :
Deine action & button variable können nicht beide gesetzt sein , oder Big Grin
greetings,
Moritz

Follow me on twitter !
  Zitieren
#10
Najo bin ein bisschen anderer Meinung. Ich würd nie direkt auf ein superglobal Array zugreifen und es immer zuerst überprüfen und danach in eine andere Variable speichern. Ok damals war register_globals off noch normal, da hatt es auch direkt so funktioniert Wink

Außerdem würd ich die Abfrage sogar noch genauer machen und nicht einfach nur ein else hinschreiben. Gerade durch ungenaue Abfragen lassen sich öfters Attacken auf die Logik einer Applikation machen.
Write this on my gravestone, write this right on my grave, "To whisky and women, here lies a poor slave".

[Bild: 10_en_btn.gif]

Computer- und Mediensicherheit - FH Hagenberg
Hagenberger Kreis zur Förderung der digitalen Sicherheit
Security Forum
  Zitieren


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 14 Gast/Gäste