Kleines Diskussionsfeld
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
ausgabe
datei
dingen
eingabe
folgenden form
formen
formular
funktion
komma
kommentar
konflikt
message
neuling
paar kleine syntaxfehler
rewind
script
smiley
speicher
textdatei
weihnachten
-
Hallo.
Ich w?nsche allen erstmal sch?ne Weihnachten und einen guten Rutsch ins neue Jahr.
OK. Ich m?chte euch hier um euren Rat fragen, wie ich einen kleinen Disskusionsbereich erstellen kann.
Das ganze soll in der Form sein, dass ich ein Text ?ber ein bestimmtes Thema habe und unterhalb dieses Textes (evtl. in einem Rahmen) Kommentare bzw. Diskussionen ?ber diesen Text von den Usern ge?u?ert werden.
Die Kommentare der User sollten dann in einem .txt-File gespeichert und in dem genannten Bereich ausgegeben werden.
Konkrete Frage:
Wie lasse ich in einen vorhandenen .txt-File schreiben (durch den User) und wie gebe ich das wieder aus.
Wenn ihr mir Script-Vorschl?ge (PHP) geben k?nntet w?re ich euch sehr dankbar.
mfg -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Da du genug Gulden hast (und durch mich jetzt 2 mehr *gg*) w?rde ich dir raten, eine Datenbank zu ersteigern:
Damit gehen solche Sachen bedeutend einfacher!
In eine Datei zu schreiben ist wesentlich komplizierter, wie Sachen in eine Datenbank einzutragen bzw. auszulesen.
Au?erdem ist von deinem Prinzip (meiner Meinung nach) abzuraten.
Ich w?rde eher ein Forum installieren, in welches du dann in deinem Artikel verlinkst.
Ansonsten kannst du im Google nach div. News-Scripts suchen. Meistens steht so oder so dabei, ob eine Kommentar-Funktion dabei ist! -
Mir ist schon klar, dass das auch mit einer DB geht. Aber ich wollte auch mal diese Variante mit einem .txt-file ausprobieren. Vielleicht stellt sich heraus das f?r meine Anspr?che (wie ich oben erkl?rt habe) dieses viel praktischer ist als mit einer DB.
Ich hab so ein Grundger?st f?r den Seitenlayout entworfen: http://econline.pyrokar.lima-city.de/btanetwork/800x600/bta_protokoll_biochemie_001.php
(Bitte erst als Gast anmelden!)
Ein Forum wollte ich auch nicht machen. Das w?re f?r diesen Zweck zu umfangreich und es ist schon eins auf meiner Site vorhanden.
Aber dennoch danke f?r deine Antwort. -
naja is eigentlich kein ding:
Zuerst eine html mit form:
- input-text (name: user)
- textarea (name: text)
- input-submit
action = message.php
method= post
Ins php file
//variablen holen
$mes=$HTTP_POST_VARS["text"];
$user=$HTTP_POST_VARS["user"];
//message von umbr?chen befreien, smileys einbauen
//immer merken diese schritte sind wichtig:
//slashes weg, zeilenumbr?che, smileys :)
//der smiley -kann man auch erweitern
$mes = ereg_replace(":)","<img src='smiley.gif'>",mes);
//die umbr?che
$mes = nl2br($mes);
//slashes weg
$mes = stripslashes($mes);
//nachicht bauen
$message="<font size='-1' color='#000000' face='Verdana, Helvetica, sans-serif'>", $user ,"</font>";
$message.=" <font size='-1' color='#F00000' face='Verdana, Helvetica, sans-serif'>", $mes, "</font>";
//datei ?ffnen und speichern
$dat=fopen("nachichten.txt", r+);
$mes_old=fgets($dat, filesize(nachichten.txt)+1);
$mes.="/n";
$mes.="<br>";
$mes.=$mes_old;
rewind($dat);
fwrite($dat, $mes);
fclose($dat);
//ende
so das isses mit textdatei, hast recht, is keiner
datenbank wert...k?nnte ein paar kleine syntaxfehler
drin sien, wiel iuch das jetzt komplett ausm stehgreif
geschreieben habe
mfg -
Herzlichen Dank f?r deine M?he.
Da hast du mir ja fast das ganze script gegeben. Ich denke das m?sste f?r mein Vorhaben reichen. Ich hoffe, dass ich dich bei Unklarheiten nochmal fragen kann, da ich noch ein "Neuling" in php bin.
Vielen Dank nochmal. mfg -
Hab mal das in der folgenden Form eingebaut. Funkts nicht ganz. ich glaub da ist ein kleiner fehler drin. (file ist der .txt-file name, der wird immer variabel sein)
<?
$autor=$HTTP_POST_VARS["autor"];
$file=$HTTP_POST_VARS["text"];
$text=$autor."<br>";
$text.=$HTTP_POST_VARS["kommentar"];
$text = nl2br($text);
$text = stripslashes($text);
//$text = ereg_replace(":)","<img src='smiley.gif'>",text);
$datname=$file.".txt";
$dat=fopen("$datname","r+");
$text_old=fgets($dat, filesize("$datname")+1);
$text.="\n";
$text.="<br>";
$text.=$text_old;
rewind($dat);
fwrite($dat, $text);
fclose($dat);
echo $text;
?>
(Das mit den Smilies mach ich sp?ter.) -
Im Grunde funktioniert alles, nur das mit dem speichern in die .txt datei kriegt der irgendwie nicht so richtig hin.
Er speichert zwar die neue eingabe, daf?r l?scht er immer etwas vom ende. Zumindest ist das bei der Ausgabe der gespeicherten Texte so.
Kannst dich mal selber davon ?berzeugen:
http://econline.pyrokar.lima-city.de/btanetwork/800x600/bta_protokoll_biochemie_001.php
(Bitte erst auf der Startseite als Gast anmelden.)
"Ich mach dir aber umst?nde oder? Danke f?r deine Hilfen." -
Ich hab das mal etwas ver?ndert. Hier die Scripte
Auf der Seite mit dem Formular:
<?
$localip = bta_protokoll_biochemie_001;
$file = bc001txt;
$file .= ".txt";
$dat = fopen("$file","r");
$text = fgets($dat, filesize($file)+1);
fclose($dat);
$text = nl2br($text);
$text = stripslashes($text);
echo $text;
?>
In der php-datei (mit backlink auf die seite mit formular):
<?
$location = $HTTP_POST_VARS["localip"].".php";
$file = $HTTP_POST_VARS["file"];
$autor = $HTTP_POST_VARS["autor"];
$text = $HTTP_POST_VARS["kommentar"];
$text = nl2br($text);
$text = stripslashes($text);
$dat = fopen("$file","r+");
$save_old = fgets($dat, filesize($file)+1);
$save_new = "<p style=\"margin-left: 0; margin-right: 0; margin-top: 0; margin-bottom: 0\" align=\"left\"><b>".$autor."</b></p><p style=\"margin-left: 10; margin-right: 0; margin-top: 0; margin-bottom: 6\" align=\"left\">".$text."</p>";
$save_new .= "\n";
$save_new .= $save_old;
rewind($dat);
fwrite($dat, $save_new);
fclose($dat);
header("Location: $location");
?>
Aber es funktioniert immer noch nicht. Ich bekomme immer nur zwei zeilen ausgelesen. K?nnte es vielleicht an fgets($dat, filesize($file)+1); liegen. Das das mit dem filesize nicht richtig funktioniert??? -
verstehe was du meinst :)
ich hab dir ne funktion rausgesucht, mit
der du das meistern kannst...hab mir nochmal
meine codes angesehen:
fread(filename,l?nge)
==>
message=fread($datei, filesize($datei)+1);
mfg -
SUPER!
Vielen Dank f?r deine Hilfen. Ich hoffe mal das ich nicht genervt habe.
Aber zu guter letzt funktioniert das Script.
Und jetzt -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage