Formulare in txt speichern

Hallo,

ich würde gerne mal ein Formular auf meine Homepage setzen.

Ich möchte es so machen, das der User seinen Namen und sein Passwort
eingeben kann, und es dann in eine txt auf dem Server gespeichert wird.
Nun habe ich es schon geschaft ein Formular mit html zu erstellen,
aber wie es dann über PHP weiterverarbeitet wird weiß ich nicht.
Mein bisheriger code:

Name:

Passwort:

Wie gehe ich jetzt weiter vor?
Ich bin noch am lernen, also wäre es nicht schlecht, wenn es etwas einfach/leicht zu verstehen wäre.

Gruß Hauke

Deine Inputs muessen noch ein name-Attribut haben.
Dann kannst du die Textdatei etwa so erzeugen und fortschreiben:

<?php if (strlen($text)<12) return;
$fp=fopen("server/datei.txt","a"); $z= date("d.M.Y-H:i"); fwrite($fp,$z." Text:".$text); fwrite($fp," Passwd:".$passwort.chr(13)); fclose($fp); echo ''; echo "Danke für die Nachricht "; echo " Klicken zum Schließen"; ?\>

Hallo,

was mein Vorredner nicht anfängergerecht beschrieben hat, war dass Du zum Speichern Deiner Formulardaten eine serverseitige Programmiersprache benutzen musst, das geht nicht mit HTML alleine. Er hat dafür PHP verwendet, das geht aber auch mit jeder anderen Sprache, z.B. ASP oder Perl bzw. C++ über die CGI-Schnittstelle. Wenn Du noch gar keine Ahnung von diesen Sprachen hast, würde ich Dir auch PHP empfehlen.

Dein Webspace muss die entsprechende Sprache/Schnittstelle aber auch unterstützen. Einfacher, billiger Webspace bietet sowas in der Regel nicht. Aus Deiner Serverkonfiguration musst Du dann entnehmen, wie und wo Du die entsprechende Datei speichern musst, ein PHP-Script muss meistens die Endung „.php“ haben und kann überall stehen.

Es empfiehlt sich aber in jedem Fall, die verwendete Programmiersprache zu lernen bzw. Programmieren allgemein, damit Du weißt, was Du da tust, denn damit kannst Du auch ne Menge falsch oder kaputt machen.

Andere Möglichkeiten als über eine serverseitige Programmiersprache gibt es nicht.

Gruß,
-Efchen

Wie kann ich meinen Inputs denn noch ein name-atribut geben?

Wie kann ich meinen Inputs denn noch ein name-atribut geben?

Lernen kann man am bestem am Beispiel, also ergaenze

usw.

Achso, so dachte ich mir das auch schon.
Muss ich denen jetzt die Namen von den Variablen der PHP
datei geben?

Moin.

Nein! Die Namen im HTML-Formular kannst Du frei wählen.
Allerdings musst Du im PHP-Script auf diese Namen referenzieren.

Wenn Du also in Deinem Formular ein

hast, dann referenzierst Du im PHP-Script darauf über die Variable
$_REQUEST[„vorname“] (oder $_POST[„vorname“] bzw. $_GET[„vorname“]).

Gruß,
-Efchen

Danke, Effchen für die Vertretung,
ich hatte mir auch eine Wochenend-Computerpause erlaubt.
Etwas weniger akademisch kann man sagen , dass die PHP-Variable (mit vorangestelltem $) und das name-Attribut im HTML gleich sein müssen.
Und da mein PHP-Script auch schon etwas erweitert ist,
hier noch zur Erläuterung:
$passwort.chr(13) bedeutet, dass nach Ausgabe des Passwort ein Zeilenvorschub erzeugt wird.
Und noch was, als Anfänger sollte man nicht mit Passwörten experimnetiern
und fremde Daten so abspeichern, dass jeder sie lesen kann.

Etwas weniger akademisch kann man sagen , dass die
PHP-Variable (mit vorangestelltem $) und das name-Attribut im
HTML gleich sein müssen.

Das ist so natürlich nicht ganz richtig, denn dazu müsste register_globals aktiviert sein. Ansonsten müssen die Formularwerte über die Servervariablen $_REQUEST, $_GET oder $_POST abgefragt werden, denn dann gibt es keine Variable mit dem Namen des name-Attributs.

Wie die Variablen im Server entstehen ist mir zu kompliziert, Systemvariablem muss man jedenfalls nicht abfragen oder gar stellen.
Es funktioniert als Standard bei zwei gehosteten Domains und auch beim lokalen Apache in Win98 und bei XAMPP in meinem Knoppix-System, also überlall, wo ich es getestet habe.
Was bisher noch nicht so deutlich war:
Die HTML-Seite sollte folgenden Tag enthalten:

Oder mann ruft auf „datei.php?password=x0y1z2&text=wunderbar“ als open oder link.
Dann sind die Variablen auch da.

Für nicht Phishing Seiten wäre noch eine Verschlüsselung mit MD5 zu empfehlen …
z.B $passwort = md5($_POST[‚passwort‘]);

Wie die Variablen im Server entstehen ist mir zu kompliziert,

Wie willst Du dann programmieren? Beim Programmieren muss man schon „akademisch“ vorgehen, wenn man ein Ergebnis haben will, das das macht, was man bezweckt.

Systemvariablem muss man jedenfalls nicht abfragen oder gar
stellen.

Doch. $_POST z.B.

Es funktioniert als Standard bei zwei gehosteten Domains und
auch beim lokalen Apache in Win98 und bei XAMPP in meinem
Knoppix-System, also überlall, wo ich es getestet habe.

Wie gesagt, das ist Sache der Serverkonfiguration. Ich kenne nur Systeme, wo register_globals deaktiviert ist und dann gibt es keine Variablen mit dem Namen aus dem name-Attribut.

Was bisher noch nicht so deutlich war:
Die HTML-Seite sollte folgenden Tag enthalten:

Oder mann ruft auf „datei.php?password=x0y1z2&text=wunderbar“
als open oder link.
Dann sind die Variablen auch da.

Nein, das ist schlichtweg falsch.

Ohne register_globals muss man bei Deiner Variante 1 über $_POST und bei Deiner Variante 2 über $_GET darauf zugreifen, bzw. bei beiden ist auch $_REQUEST möglich, also z.B. $_REQUEST[„password“].

Grüße,
-Efchen

Irgedwie geht es immer noch nicht…

mein html code

mein 1. Formular

name:

mein php code:

<?php if (strlen($text)<12) return;
$fp=fopen("http://xxxx/txt.txt","a"); $z= date("d.M.Y-H:i"); fwrite($fp,$z." Text:".$text); fclose($fp); echo ''; echo "Testtext. "; echo " Klicken zum Schließen"; ?\> habt ihr vielleicht einen Fehler bemerkt, oder gehe ich es komplett falsch an?

Irgedwie geht es immer noch nicht…

Wie „irgendwie“?

Hier sind zwei form-Tags.
Validiere Deinen Code, bevor Du von ihm verlangst, so zu funktionieren, wie Du es willst.

name:

Es gibt kein wertloses Attribut „input“ und das Attribut „name“ gibt es zweimal.
Nutzerfreundliche Formulare haben außerdem ein zu jedem Eingabefeld, aber das ist jetzt für Dein Problem nicht ausschlaggebend.

mein php code:

Sollte der nicht auch den vorher eingegebenen Text ausgeben?

echo "Testtext.
";

Du gibst nur „Testtext“ aus.

habt ihr vielleicht einen Fehler bemerkt, oder gehe ich es
komplett falsch an?

Du hast ja nicht beschrieben, was nicht geht, bzw. was tatsächlich passiert. Vielleicht gibts noch mehr Fehler.

Grüße,
-Efchen

Ich möchte den Text nur abspeichern, und das geht nicht.

Und was geht?

Bis zu welcher Programmzeile kommt er?

Wie lauten die Fehlermeldungen?

Sorry, aber mit „geht nicht“ kann man kein Programm debuggen.