Formular verschwindet nach Eingabe

Awesomo

Grünschnabel
Hallo Leute,

ich habe für meinen Handballverein einen Liveticker mittels PHP programmiert. Über ein HTML Textfeld in einem Formular können Kommentare zum Spiel in einem Admin Panel geschrieben werden. Das ganze funktionierte auf meinem Testserver (Pranho) ohne Probleme.

Heute habe ich das Script auf den Vereinsserver geladen jedoch wenn ich nun einen Kommentar schreiben will aktualisiert sich die Seite und nun sind die Formularfelder (Textfeld+Button) verschwunden. Der Kommentar wurde nicht hinzugefügt.

Das Textfeld hat PHP Code, der beim Absenden des Formulars den Kommentar in eine Textdatei auf dem Server schreibt. Die Datei ist auch vorhanden.

Bittte um Hilfe, das mus sirgendwas mit den Rechten auf dem Server sein anders kann ichs mir nicht erklären.

Vielen Dank Schonmal,

Frank
 
Wie öffnest du denn die Datei?
PHP:
$file = fopen("test.txt","r"); // Der 2. Parameter bestimmt die Rechte
if ($file)  // Prüfe mal, ob da nicht ein Fehler ist und ob der abhängig von den Rechten ist (oben)
{
  echo "error";
}
 
Zum Bearbeiten öffne ich die Datei so:

PHP:
$file = 'comment.txt';

$current = file_get_contents($file);

$current .= "[".date("H:i:s")."]"."\r".$_POST["Kommentar"]."\r\n";

file_put_contents($file, $current);

Und beim Auslesen so:

PHP:
$myfile = 'comment.txt';
$lines = file($myfile);    
for($i=count($lines);$i>0;$i--){
	if ($i % 2 == 0) { 
	echo "<font color='#000000'>$lines[$i]</font>";
	echo nl2br("\n");
	} 
	else {
	echo "<font color='#114312'>$lines[$i]</font>";
	echo nl2br("\n"); 
	}  
    
	
	}


Das ganze über die for Schleife da jede Zeile ne andere Farbe haben soll
 
sry für den Doppelpost aber hab das Problem erstmal gefunden:

Ich verwende zum Schreiben des Kommentars die Funktion file_get_contents und file_put_contents.

Habe nun vom Webmaster erfahren das auf dem Server kein Php5 installiert ist, und somit auch die funktion nciht existiert. (So ein mist)

Jetzt muss ich das ganze irgendwie mit fopen und fwrite machen, es geht aber irgendwie nicht so wie ich das denke.

Hier die normale Variante:

PHP:
$file='comment.txt';
$current = file_get_contents($file);

$current .= "[".date("H:i:s")."]"."\r".$_POST["Kommentar"]."\r\n";

file_put_contents($file, $current);

und hier mein Versuch über fopen:

PHP:
$handle = fopen('comment.txt','r+');

$current = "[".date("H:i:s")."]"."\r".$_POST["Kommentar"]."\r\n";

fwrite($handle,$current); 
fclose($handle);

Das Problem ist, dass ich die Textdatei nicht überschreiben will sondern nur den neuen Kommentar hinzufügen will. Also wärs am sinnvollsten den Inhalt erst in ein Array zu lesen und das ganze dann zum Array hinzuzufügen und dann erst in die Datei zu schrieben oder?

Für nen Codeschnipsel wär ich sehr dankbar
 
Im Internet gibt es genug Listen für die zulässigen Parameter, z.B. http://php.net/manual/de/function.fopen.php

PHP:
$handle = fopen('comment.txt','a+');   // a+ öffnet die Datei zum Schreiben und Lesen, setzt den Zeiger ans Ende

$current = "[".date("H:i:s")."]"."\r".$_POST["Kommentar"]."\r\n"; 

fwrite($handle,$current);  
fclose($handle);

EDIT: Ich würde unbedingt vorher den Text ($_POST) auf Skripte überprüfen!!
 
Danke! Hatte mir die Parameter angeschaut udn es ähnlich versucht, hat aber nie hingehauen. Jetzt funktioniert das ganze auch wieder.

Auf Skripte überprüfen ist glaube ich nciht notwendig, da nur einer den Ticker über ein Admin Panel mit Passwort nutzt.
 
Zurück