PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP Grundlagen (http://www.selfphp.de/forum/forumdisplay.php?f=12)
-   -   Datei in Formular einlesen und ausgeben (http://www.selfphp.de/forum/showthread.php?t=7106)

hardcorecologne 05.03.2004 13:17:43

Datei in Formular einlesen und ausgeben
 
Hallo!

Ich habe mal eine Frage an Euch. Habe eine index.php und eine speichern.php geschrieben, die den Formulartext verwalten soll. Allerdings kommt es nie zum speichern. Kann mir jemand weiterhelfen?

INDEX.PHP:

<form action="<?php $PHP_SELF ?>" method="post">
<textarea name="neu_eingabe" cols="100" rows="20">
<?php
include(notes);
?>
</textarea>
<input type="submit" value="Abschicken">
</form>

SPEICHERN.PHP:

<?php
$externalfile = fopen("notes", "a");
fputs($externalfile, "$neu_eingabe");
fclose($externalfile);
readfile($externalfile);
?>

diver-network 05.03.2004 13:30:46

Hi,

sehe ich es richtig, daß Du dein Formular an die Datei index.php (siehe action="$PHP_SELF") sendest?
Falls ja kann der Formulartext NIE mit einer anderen php Datei als index.php verwaltet werden.

Ändere das mal in action="speichern.php" und schau nach, was dann passiert.

HTH,

Andy

hardcorecologne 05.03.2004 13:42:13

funktioniert auch nicht
 
Hallo! Ich habe das geändert, aber es funktioniert nach wie vor nicht.

Du kannst es ja mal hier testen:

www.nightworkers.net.tc/testarea



ggf. index.php/speichern.php

Small-Talk 05.03.2004 15:35:11

Zitat:

fputs($externalfile, "$neu_eingabe");
Warum $neu_eingabe in "" ?
Und zum Auslesen $_Post['Form-Variable']

Versuch es mal so:
fputs($externalfile, $Post_['neu_eingabe']);

hardcorecologne 05.03.2004 15:45:15

Das ist es leider auch nicht. Ich habe mal durch den print-Befehl die Variable vor dem Speichern anzeigen lassen. Es kam nix. Deshalb vermute ich mal, dass sie leer ist und somit auch nix gespeichert wird. Dann muss der Fehler doch eigentlich in der anderen sein, oder? Habe die Dateien mal umgeschrieben. Aber die Definition mit "name" in der Textarea ist doch richtig, oder?

INDEX.PHP:

<form action="speichern.php" method="post">
<textarea name="neu_eingabe" cols="93" rows="20">
<?php
include(notes);
?>
</textarea>
<br>
<input type="submit" value="jetzt rocken!" >
</form>


SPEICHERN.PHP:

<?php
print($neu_eingabe);
$file = fopen("notes", "a");
// fputs($file, $neu_eingabe);
fputs($file, $post_['neu_eingabe']);
fclose($file);
?>

...hat gerockt.

Small-Talk 05.03.2004 15:51:18

NA bei print($neu_eingabe)
mußt du natürlich auch $_POST['$neu_eingabe'] angeben:

print($_POST['$neu_eingabe']);

und was steht hier genau drin?
include(notes);
?>

hardcorecologne 05.03.2004 15:59:16

Ich habe es mit print versucht. Funktionieren tut es (keine Fehlermeldung), aber mir scheint, dass die Variable nach wie vor leer ist. In der notes steht der bisherige Text. Er soll ja nur geändert werden, bzw. jetzt nur hinzugefügt.

Small-Talk 05.03.2004 16:36:58

So geht es bei mir (Datei wird überschrieben)

speichern.php

PHP-Code:

<?php
echo $_POST['data'];
$text $_POST['data'];
$file "test.txt";
$fo fopen($file,"w+");
fputs($fo$text);
fclose($fo);
echo 
"Gespeichert";
?>

index.php

<html>
<head></head>
<body>
<form action="speichern.php" method="post">
<textarea name="data" cols="93" rows="20">die hat gerockt</textarea>
<br>
<input type="submit" value="an LNK senden" >
</form>
</body>
</html>

hardcorecologne 05.03.2004 17:48:22

Rockt!
 
OK, ich hab es jetzt geschafft. Waren mehrere Fehler, wie ein $ zuviel, etc. Hab es jetzt komplett php-risiert. :-) Hier kann man sich es anschauen:

www.nightworkers.net.tc/testarea

Jetzt habe ich aber diesbezüglich noch eine Frage:

Wie kann ich denn mit diesen Methoden ein Gästebuch realisieren? Wie die Textfelder, etc. erstellt werden, weiß ich, aber wie kann ich die Datensätze so von einander trennen, dass ich die ohne Probleme in Datensatzform ausgeben kann?

xabbuh 06.03.2004 11:08:42

Re: Rockt!
 
Zitat:

Original geschrieben von hardcorecologne
Wie kann ich denn mit diesen Methoden ein Gästebuch realisieren? Wie die Textfelder, etc. erstellt werden, weiß ich, aber wie kann ich die Datensätze so von einander trennen, dass ich die ohne Probleme in Datensatzform ausgeben kann?
Trenne die einzelnen Beiträge durch ein bestimmtes Zeichen (z.B. ||||). Informationen zu den einzelnen Beiträgen kannst du beispielsweise so trennen: ||

Die Datei würde dann mit ein paar Einträgen so aussehen:

324234345||autor||nachricht||||3242343315||autor2||nachricht2

Auslesen geht dann ungefähr so:

PHP-Code:

$datei="./gaestebuch.txt";            //URL DER GÄSTEBUCH-DATEI
$fp=fopen($datei"r");
$inhalt=fread($dateifilesize($datei));
fclose($fp);

$array=explode("||||"$inhalt);        //EINTRÄGE WERDEN IN EIN ARRAY GESCHRIEBEN

foreach($array as $eintrag){
    
$tmp=explode("||"$eintrag);        //INFORMATIONEN ZU DEM EINTRAG IN EINEM ARRAY ABLEGEN
    
echo "<p>Beitrag geschrieben von " $tmp[1] . " am " date("d.m.Y"$tmp[0]) . " um " date("H:i:s"$tmp[0]) . " Uhr</p>";
    echo 
"<p>Nachricht:<br>";
    echo 
nl2br(htmlentities($tmp[2])) . "</p>";
    } 



Alle Zeitangaben in WEZ +2. Es ist jetzt 15:31:38 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.