PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : einfache GET Abfrage



klaus1
17-06-2007, 11:11
Hi!

Kann mir jemand helfen bei folgendem SCRIPT:

<form name="form1" method="GET" action="gaestebuch.php">
<p>
<textarea name="text" cols="50" rows="10" id="text"></textarea>
</p>
<p>
<input type="submit" name="Submit" value="Senden">
</p>
</form>

<?
if(empty($_GET['text']))
{
$datenbank = "daten.dat";
$fp = fopen($datenbank, "r+w");
if($fp!=NULL)
{
$contents = fread ($fp, filesize ($datenbank));
echo $contents;
fclose($fp);
}
}
else
{
$text=$_GET['text'];
$datei = fopen("daten.dat","a+");
fwrite($datei,"<br>---------------------------------<br>");
fwrite($datei, $text);
fclose($datei);
echo "<script language=\"JavaScript\"> location.href = \"gaestebuch.php\"; window.location.reload(); </script>";
}

?>

Ich benötige nach einem Eintrag ein RELOAD auf dieselbe datei nochmal. leider klappt das nicht mit meinem JavaScript Code, da ständig neu geladen wird.
Kann mir jemand helfen wie ich ein einziges mal nach einem POST neu lade?

Wichtig auch: Alle Daten die eingegeben werden, sollten nicht konvertiert werden.

Danke,
Klaus

Pingu
17-06-2007, 11:57
Warum machst Du es so kompliziert? Warum soll die Seite neu geladen werden?
<form name="form1" method="GET" action="gaestebuch.php">
<p>
<textarea name="text" cols="50" rows="10" id="text"></textarea>
</p>
<p>
<input type="submit" name="Submit" value="Senden">
</p>
</form>

<?
$datenbank = "daten.dat";

if(!empty($_GET['text']))
{
$text=$_GET['text'];
$datei = fopen($datenbank,"a+");
fwrite($datei,"<br>---------------------------------<br>");
fwrite($datei, $text);
fclose($datei);
}

$fp = fopen($datenbank, "r");
if($fp!=NULL)
{
$contents = fread ($fp, filesize ($datenbank));
echo $contents;
fclose($fp);
}

?>
Wobei man noch einiges abkürzen könnte:
<form name="form1" method="GET" action="gaestebuch.php">
<p>
<textarea name="text" cols="50" rows="10" id="text"></textarea>
</p>
<p>
<input type="submit" name="Submit" value="Senden">
</p>
</form>

<?
$datenbank = "daten.dat";

if(!empty($_GET['text']))
{
$datei = fopen($datenbank,"a+");
fwrite($datei,"<br>---------------------------------<br>");
fwrite($datei, $_GET['text']);
fclose($datei);
}

readfile($datenbank);

?>

klaus1
17-06-2007, 12:29
danke, scheint logisch! :-)

EIn Problem hab ich noch, ich möchte gerne mehrere zeilen öfters reinstellen und da sollte das zeilenende mit \n durchgeführt werden.
bei der method=GET werden allerdings irgendwie die zeichen in einer wurst in das file geschrieben.
Gibts hier eine möglichkeit?

Wäre es besser über POST das ganze zu machen? klappt dass dann mit dem zeilenende?
Wie schaut die änderung dann im obigen script aus?

MFG
Klaus

Pingu
17-06-2007, 15:21
siehe Manual: http://de3.php.net/nlbr