sven32
Goto Top

Textnotiz mit HTML-Form erstellen und Formular prüfen ( PHP )

Hallo Leute,

ich brauche mal eure Hilfe. Und zwar möchte ich gerne
mittels eines HTML Formular eine .txt Datei erstellen.
Es gibt ein Feld in dem man den Namen der Datei festlegt
und ein Feld für den Inhalt der Datei. Wenn man beides eingetragen
hat, drückt man den "FERTIG" Button und der Text wird
gespeichert.

Mein Problem ist nun, dass ich zwar genügend Wissen in Sachen PHP habe
um das ganze einzeln Schritt für Schritt umzusetzen

1.) Datei wird erstellt
2.) Datei wird umbenannt
3.) Datei wird gefüllt

aber eben nicht als komplette Aktion mit Prüfung. Soll heißen die Datei wird erstellt,
betitelt und mit Inhalt gefüllt wenn mit dem „Fertig“ Button bestätigt wurde.
In meinem Fall würde die Datei ja auch schon erstellt werden, wenn
der User NUR den „Fertig“ Button drücken würde.

Hat vielleicht jemand ein Beispiel wie man so etwas "am Stück" mit Prüfung löst ?

Content-Key: 283579

Url: https://administrator.de/contentid/283579

Ausgedruckt am: 28.03.2024 um 16:03 Uhr

Mitglied: SlainteMhath
SlainteMhath 22.09.2015 um 14:40:51 Uhr
Goto Top
Moin,

also so ganz kann ich dir nicht folgen was dein Problem ist. Am besten du postest mal den Code den du schon hast, dann können wir daran arbeiten.

lg,
Slainte
Mitglied: kaiand1
kaiand1 22.09.2015 um 15:04:12 Uhr
Goto Top
Du brauchst doch nur "2" Seiten dafür.
Seite 1 ist das Formular wo die Daten eingegeben werden.
Seite 2 wo er hingelangt nachdem er Senden auf Seite 1 gedrückt hat.
Dort auf Seite 2 prüfst du den Code und wenn was nicht Stimmt echo Fehler... oder halt
Alles IO dann Datei erstellen mit den Inhalt.
Fertig.

Wenn du jedoch den Code schon während der Eingabe prüfen möchtest was ich etwas rauslese dann musst du auf der Formularseite mit Javascript Arbeiten der dies für dich erledigt.
Jedoch musst du damit auch Rechnen das der User ggfs dies nicht Aktiv hat wodurch eine Serverseitige Prüfung Pflicht ist.

Das ganze kannst du auch auf eine Seite machen halt mit IF Abfragen.
Da aber keine Angaben gemacht werden was genau geprüft werden soll, KLEIN / groß Schreibung ect oder Bad Codes, Strings ...
Mitglied: Sven32
Sven32 22.09.2015 um 15:25:27 Uhr
Goto Top
Sorry hab mich wohl etwas unpräzise ausgedrückt. Hier mal mein bisheriger Code:


Die Index.php

<form action="Funktion.php" method="get">  
 
<p>Dateiname<br />
<input type="Text" name="name" ></p>  
<p>Dateiinhalt<br />
<textarea rows="9" name="inhalt" cols="43"></textarea></p>  

<input type="Submit" name="" value="speichern">  
</form>


Die eigendliche PHP-Funktion

<?php
if ( $_GET['name'] <> "" )  
{
    $handle = fopen ( "mein-text.txt", "w" );  
    fwrite ( $handle, $_GET['name'] );  
    fwrite ( $handle, "|" );  
    fwrite ( $handle, $_GET['inhalt'] );  
    fclose ( $handle );
    echo "Das Speichern war erfolgreich";  
    exit;
}
?>


Was bisher noch nicht funktioniert ist die Umbenennung der Datei,
da ich nicht weiß wie ich das mit einbinden soll.
Wie gesagt eine Datei einfach nur per php Script umbenennen kann ich wohl
aber ich hab keine Ahnung wie das mit meinem Form geht, ich weiß nur wie
ich hinein schreibe.

Ich hoffe es ist jetzt besser verständlich
LG
Mitglied: SlainteMhath
SlainteMhath 22.09.2015 aktualisiert um 18:02:04 Uhr
Goto Top
Dein Code sieht ja ganz ok aus bisher..

Nur so ganz blick ich nicht durch was du mit dem Umbennen willst...

In PHP geht das mit
rename("mein-text.txt","neuer-name.txt");  

Was hindert dich daran die Datei gleich unter dem korrekten Name zu erstellen?
Mitglied: Sven32
Sven32 22.09.2015 um 15:49:38 Uhr
Goto Top
Das Problem ist, dass ich nicht so richtig weiß, wie ich das was im oberen Feld eingeben wird
dazu benutzen kann eine Datei daraus zu erstellen.
Im Moment schreibt er ja den Inhalt beider Felder in die Textdatei aber ich möchte das NUR der Inhalt des
zweiten Feldes in die Datei geschrieben wird.
Jetzt steht ja in meinem Quellcode er soll alles in die Datei "mein-text.txt" schreiben, dass steht aber nur
als Beispiel in meinem Script, damit es "im Moment" überhaupt funktioniert.
Das soll aber wenn alles geht raus weil der Text ja erst durch ausfüllen des ersten Feldes überhaupt
erstellt werden soll.

Verstehst du was ich meine ?
Mitglied: SlainteMhath
Lösung SlainteMhath 22.09.2015 aktualisiert um 18:00:36 Uhr
Goto Top
Der Inhalt des Formular-Felds "Name" soll der name der Datei sein?
so etwa:
 $handle = fopen ( $_GET['name'], "w" );   
?

Ich hoffe das ist nur eine Test-.Website und nichts im öffentlichen Internet...
Mitglied: Sven32
Sven32 22.09.2015 um 16:06:10 Uhr
Goto Top
Ja genau so sollte es sein und nein es ist nichts öffentliches, sonst könnte ja jeder einfach
wild drauf los Dateien erstellen.
Wo müsste ich den jetzt noch die Endung einfügen, er soll ja nur .txt datein erstellen ?
Mitglied: Sven32
Sven32 22.09.2015 um 17:58:28 Uhr
Goto Top
So habs jetzt,

$handle = fopen ( $_GET['name'].'.txt', "w");  


vielen Dank auch für deine Hilfe "SlainteMhath" allein hätte ichs warscheinlich
nicht hinbekommen.
Mitglied: SlainteMhath
SlainteMhath 23.09.2015 um 08:51:09 Uhr
Goto Top
Freud mich face-smile

Nochmal der explizite Hinweis: Wenn du den Code so implementierst kann jeder der auf die Website Zugriff hat in jedes Verzeichniss/jede Datei schreiben auf die der User unter dem der Webserver läuft Rechte hat!