Thema: Kann mir einer Helfen => *Formular erstellen*

Leider kenne ich mich mit PHP nicht aus. Deshalb wurde mir von nem Freund geraten mich hier bei Devshare anzumelden und zu fragen !

So ich benötige ein einfaches Formular mit 3 Felder:
1. Name
2. Emailadresse
3. Text

Nachdem der Besucher dieses ausgefüllt hat sendet er das Fomrular ein eine Bestimmte Emailadresse.
Nachdem er dies gesendet hat soll automatisch eine andere Seite aufgerufen werden.


Ich hoffe es kann mir einer Helfen => deshalb schon mal Danke im Voraus !

2

Re: Kann mir einer Helfen => *Formular erstellen*

Hi und willkommen auf devshare!

Deine Frage zu beantworten ist ganz leicht:
http://www.dclpfaq.de/q/q-formular-variablen.html

Lies Dir das bitte mal durch, wenn Du dann noch Fragen hast, sehen wir weiter smile

HTH,

tink

Beleidigungen sind die Argumente derer, die keine Argumente haben

Re: Kann mir einer Helfen => *Formular erstellen*

Vielen Dank für den Link, jedoch bringt der Inhalt dieser Seiten mich kein Stück weiter !

Ich kann kein PHP, und deshalb sind für mich die ganzen Fragen und die dazugehörigen Antworten nicht nachvollziehbar => Ich verstehe hier nur Bahnhof !


Ich möchte doch nur ein einfaches Formular mit 3 Eingabemöglichkeiten:
1. Name
2. Emailadresse
3. Text

Dazu sollte es so sein das nach dem Absenden ein andere Seite geladen wird ...
Ich glaube nicht das es für jemanden der PHP aus dem FF kennt ein Problem ist so ein Formular zu machen !

4

Re: Kann mir einer Helfen => *Formular erstellen*

Hi,

normalerweise ist devshare da, um bei Problemen zu helfen und nicht, um Hausaufgaben zu erledigen.
Aber dies hier sollte Dir schon weiterhelfen:

<html>
<head>
<title>Mein erstes PHP Formular</title>
<meta name="author" content="Dieter">
<meta name="generator" content="Ulli Meybohms HTML EDITOR">
</head>
<body text="#000000" bgcolor="#FFFFFF" link="#FF0000" alink="#FF0000" vlink="#FF0000">
<?
// start if wenn Formular noch nicht abgeschickt
if ( !isset($_POST["submit"]) )
{
?>
<form action="form.php" method="POST" target="_self">
Name: <input type="Text" name="name" value="" size="" maxlength=""><br>
Emailadresse: <input type="Text" name="email" value="" size="" maxlength=""><br>
Text: <textarea name="text" cols="50" rows="5"></textarea><br>
<input type="Submit" name="submit" value="abschicken!">
</form>
<?
// hier gehts weiter wenn der Submit Button gedrückt wurde
} elseif ( isset($_POST["submit"]) )
{
?>
Sie haben folgende Werte im Formular eingegeben:<br>
Name: <?=$_POST["name"]?><br>
Emailadresse: <?=$_POST["email"]?><br>
Text: <?=$_POST["text"]?><br>
<br>
Vielen Dank für Ihre Eingabe!
<?
  $mailtext = "Name: ".$_POST["name"];
  $mailtext .= "nEmailadresse: ".$_POST["email"];
  $mailtext .= "nText:n".$_POST["text"];
  // hier wird die mail verschickt:
  $mail_sent = mail("joinventure@devshare.de","Mail aus dem PHP-Formular",$mailtext);
  if ( $mail_sent )
  {
  ?>
  Mail wurde verschickt!
  <?
  }
}
// Ende der IF-ELSEIF Geschichte
?>
</body>
</html>

Speziell die mail() Funktion solltest Du Dir ansehen und da Deine richtige Adresse eintragen.
Außerdem in dem "action" Wert des Formulars den Dateinamen angeben, den Du dem PHP Skript geben wirst.

Viel Spaß und viel Erfolg,

tink

Beleidigungen sind die Argumente derer, die keine Argumente haben

Re: Kann mir einer Helfen => *Formular erstellen*

Ich habe das Beispiel oben auch mal vesucht in meine Seite einzubauen.

http://www.zwei5.de/Mailformular.htm

Ich bekomme aber immer eine Fehlermeldung http://www.zwei5.de/form.php
mit "Die Seite wurde nicht gefunden." Fehler 404 - Datei nicht gefunden.

Was muss ich noch beachten. Ich habe leider Null Ahnung.

6

Re: Kann mir einer Helfen => *Formular erstellen*

Moin und willkommen auf devshare! smile

Wie hast Du denn die form.php Datei auf Deinen Web-Server geladen?
Möglicherweise stimmen die Rechte der Datei nicht (sprich: der Web-Server darf die Datei nicht lesen, weil sie einem anderen Benutzer gehört).
In den Beschreibungen Deines Providers (besser: Deinem Hoster) sollte eine Anleitung zu finden sein, wie man die Rechte der Dateien ändern kann. FTP-Programme können das normalerweise auch.

Die Dateirechte auf Linux setzen sich so zusammen:
http://www.easylinux.de/2003/09/071-guru-chmod/

Ergo:
Deine Datei sollte "mindestens": 755 haben (rwx für Besitzer, r+x für die Gruppe und den Rest der Welt)

HTH,

tink

P.S.: Unter welchem Dateinamen hast Du den Code von weiter oben auf Deinem Server abgelegt?
In dieser Zeile:
<form action="form.php" ...
wird nämlich festgelegt, dass die Daten, die über das Formular eingegeben werden, an die Datei "form.php" gesendet werden. Heißt die auch wirklich so, oder hast Du den Code als "Mailformular.htm" gespeichert?

Beleidigungen sind die Argumente derer, die keine Argumente haben

Re: Kann mir einer Helfen => *Formular erstellen*

Ups... sorry, da hab ich wohl einiges nicht bedacht.
Ich habe (peinlich zu sagen) keine form.php auf den Server geladen.

Welche HTML-Datei und welche form.php muss ich denn erzeugen und auf dem Server bereitstellen? Ich weiß nur, dass mein Hoster auch MySQL für mich bereitstellt und ich habe eine Datenbank auf einem SQL2.your-server.de mit drei verschiedenen Login's

Aber was es mit php / Perl oder ähnlichen auf sich hat ist für mich noch schwer verständlich.
Ich bin gerade dabei mich mit SELFHTML zu befassen und mich einzuarbeiten. Ich habe einen Artikel gefunden (http://aktuell.de.selfhtml.org/artikel/ … /index.htm) aber ich möchte erst mal ein ganz einfaches Formular machen.

Ich wäre sehr sehr dankbar wenn Du mir weiterhelfen kannst.

Re: Kann mir einer Helfen => *Formular erstellen*

Ich möchte Mailprogramm unabhängig sein uns suche nach einer Lösung bei der ein Programm auf dem Server-Rechner (ein CGI-Script) aufgerufen wird, welches mir die Daten irgendwie zuleitet. Ich komme mit dem SELFHTML nicht recht weiter, da der gesamte Ablauf von der von mir favorisierten Variante nicht auffindbar oder verständlich für mich ist.

Re: Kann mir einer Helfen => *Formular erstellen*

O.k. ich müsste also meine Formulardaten mit der Methode "GET" übertragen wenn ich Mailprogramm unabhängig auf dem User Browser-PC arbeiten möchte.

Ich habe dazu gefunden:

In einem HTML-Formular erzwingen Sie diese Methode durch die Angabe von method="get" im einleitenden <form>-Tag. Bei dieser Angabe werden die ausgefüllten Formulardaten zuerst an die Server-Software übertragen und von dieser in einer bestimmten Umgebungsvariablen mit dem Namen QUERY_STRING zwischenspeichert. Ein CGI-Script, das aufgrund der Angabe von action im einleitenden Formular-Tag aufgerufen wird, muss den Inhalt dieser Umgebungsvariablen auslesen, um an die Formulardaten heranzukommen (siehe auch den Abschnitt über  CGI-Umgebungsvariablen). In Perl ist das beispielsweise mit einer Anweisung wie $form_daten = $ENV{'QUERY_STRING'}; möglich. Wenn ein HTML-Formular die GET-Methode verwendet, wird der Formulardatenstrom, getrennt durch ein Fragezeichen, zum URI des CGI-Programmaufrufs hinzugefügt. Im Web-Browser des Anwenders ist dies nach dem Absenden des Formulars in der Adresszeile sichtbar.

... Ich weiß aber nicht was ich weiter am Server machen muss oder wie so ein CGI Auswertungstool gemacht werden muss.  :-( 

Wo finde ich da mehr info?

Re: Kann mir einer Helfen => *Formular erstellen*

Ich habe also begriffen, dass man das mit Hilfe eines PHP-Scriptes machen müsste. Aber wie geht das?

11

Re: Kann mir einer Helfen => *Formular erstellen*

Moin Wolfgang,

also:
Zunächst mal, der Code, den ich dort oben gepostet hatte, WAR die form.php wink

Ich habe bei Deinem Kontaktformular 2 Fehler festgestellt:
a) die Datei heißt ".htm". Benenne dies bitte in ".php" um, damit die PHP-Skripte in der Datei (die Absätze, die mit "<?" beginnen und mit "?>" enden) von der PHP-Engine auf Deinem Server interpretiert werden.

b) die Datei, die das Formular anzeigt (Kontaktformular.htm) ist ungleich der Datei, an die das Formular seine Daten versendet (das ist die, die im "ACTION" Attribut des FORM-Tags angegeben wird)

Was Du nun eigentlich nur tun müsstest, ist:
Den Code von weiter oben (oder den, den Du auf Deinem Server hast) nach Kontaktformular.php umbenennen und im FORM-Tag die Action von "form.php" auf "Kontaktformular.php" umbenennen.

HTH,

tink

P.S.: Du hast ja eh schon ein anderes Formular eingebaut. Funzt das jetzt besser?

Beleidigungen sind die Argumente derer, die keine Argumente haben