Leerzeile...
Faint
- php
0 MudGuard0 Faint
0 Edgar Ehritt0 Beat0 Oh Tannenbaum
Hallo,
Ich hab hier ein script von einem Gästebuch.
Das basiert auf einer TXT datei.
Mein Problem ist, dass da immer eine Leerzeile gemacht wird...
Und dann wird ein zweiter leerer Eintrag angezeigt.
Wieso das?
Hier ist das form in der gästebuch.php
----------
<html>
<head>
<title></title>
</head>
<body>
<hr>
<form action="neuerbeitrag.php" Method="post">
<p>Name:<br>
<input name="Name" size="40">
<br>
<br>
Inhalt:<br>
<textarea name="inhalt" cols="40" rows="12"
wrap="physical"></textarea>
</p>
<p><br>
<input type="submit" value="Absenden">
</p>
</form>
<p> </p>
<p>
<?
$beitrag = file("gaestebuch.txt");
krsort($beitrag);
foreach($beitrag as $ausgabe)
{
$ausgabe = stripslashes($ausgabe);
$zerlegen = explode("|", $ausgabe);
echo "
<table id="gb" align="center"
border="1" cellspacing="0"
cellpadding="5"
width="100%">
<tr>
<td>
Von $zerlegen[1] am $zerlegen[2]
</td>
</tr>
<tr>
<td>
$zerlegen[3]
</td>
</tr>
</table><br>
";
}
?>
</p>
<p>
<?
$beitrag = file("gaestebuch.txt");
?>
</p>
</body>
</html>
------------
Hier ist die neuerbeitrag.php:
------------
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title><? include ("Title.php"); ?> Link</title>
</head>
<link href="style.css" rel="stylesheet" type="text/css" media="screen" />
<body>
<!-- start header -->
<!-- end header -->
<div id="banner"> </div>
<!-- start page -->
<div id="wrapper">
<div id="page">
<div class="bgtop">
<div class="bgbtm">
<!-- start content -->
<div id="content">
<div class="post">
<h1 class="title">Gästebuch!</h1>
<div class="entry">
<p>
<?php
$user = $_POST["Name"];
$user = htmlentities($user);
$inhalt = $_POST["inhalt"];
$inhalt = htmlentities($inhalt);
$inhalt = str_replace("\n", "<br>", $inhalt);
$email = $_POST["EMail"];
$email = htmlentities($email);
if ($inhalt == "" or $user == "")
{
echo "Sie müssen das Feld "Namen"
und "Inhalt" ausfüllen";
}
else
{
$datum= date("d.m.Y H:i:s");
$eintrag="$email|$user|$datum|$inhalt";
$datei = fopen("gaestebuch.txt", "a");
fwrite($datei, "\n".$eintrag);
fclose($datei);
echo "Ihr Eintrag wurde erfolgreich gespeichert";
}
?>
<a href="guest.html"><h3>Zurück zum Gästebuch</h3></a>
</div>
<p class="meta"> </p>
</div>
</div>
<!-- end content -->
<!-- start sidebar -->
<div id="sidebar">
<? include ("Navi.php"); ?>
</div>
<!-- end sidebar -->
<div style="clear:both"> </div>
</div>
</div>
</div>
</div>
<div id="footer">
<p>©2008 Faint • Content by Users and <a href="http://www.subrosabrand.com/">SubrosaBrand</a>.</p>
</div>
</body>
</html>
---------------
und hier der Inhalt der gästebuch.txt mit einem Eintrag:
---------------
|Faint|31.05.2008 23:23:07|Test...Test...Test...Test...Test...Test...Test
---------------
Und genau die Leerzeile über dem eigentlichen eintrag in der TXT stört mich, da diese als zusätzlicher eintrag ohne angaben erkannt wird.
Wie bekomm ich die weg?
Hi,
fwrite($datei, "\n".$eintrag);
Und genau die Leerzeile über dem eigentlichen eintrag in der TXT stört mich, da diese als zusätzlicher eintrag ohne angaben erkannt wird.
Warum schreibst Du vor dem Eintrag einen Zeilenumbruch, wenn Du den gar nicht haben willst?
cu,
Andreas
oO
Wieso hab ich das da nur rein?...
ach egal...
Danke :D
Hallo,
fwrite($datei, "\n".$eintrag);
fwrite($datei,$eintrag);
Gruß aus Berlin!
eddi
Wie bekomm ich die weg?
Indem du das tust, was du immer tun solltest:
Prüfen was in den Dingen drin ist, bevor du es verbaust.
mfg Beat
Sag mal, was passiert eigentlich, wenn der Besucher einen Betrag verfasst, in dem ein "|" vorkommt? ;)
SCNR
ich übrigens auch nicht
liebe Grüße mbr
Sag mal, was passiert eigentlich, wenn der Besucher einen Betrag verfasst, in dem ein "|" vorkommt? ;)
das verstehe ich nicht, wieso sollte das gefährlich sein? hat dieser senkrechte strich bei php eine bedeutung? hab gegoogelt und finde ihn nur bei perl als verkettungsoperator. also hat er auch bei php eine funktion? und wenn ja, was soll man dann in dem fall tun, um sich davor zu schützen?
danke
häschen
Hallo,
Sag mal, was passiert eigentlich, wenn der Besucher einen Betrag verfasst, in dem ein "|" vorkommt? ;)
das verstehe ich nicht, wieso sollte das gefährlich sein?
schau' Dir bitte die Form an, in der der Ausgangsposter seine Einträge speichert (etwa viertletzte Zeile) und verarbeitet (relativ weit oben, es gibt da eine foreach-Anweisung).
hat dieser senkrechte strich bei php eine bedeutung?
Ja sicher, Operator für bitweises Oder.
hab gegoogelt und finde ihn nur bei perl als verkettungsoperator. also hat er auch bei php eine funktion? und wenn ja, was soll man dann in dem fall tun, um sich davor zu schützen?
Davor muss man sich nicht "schützen". Es hat auch nichts damit zu tun.
Freundliche Grüße
Vinzenz
Thank you, sir!
Hab gestestet und da passeirt gar nix...der strich wird enfach nict angezeigt
Hallo Faint,
Hab gestestet und da passeirt gar nix...der strich wird enfach nict angezeigt
Sowie ich den Code verstehe dürfte auch nichts nach dem Strich angezeigt werden.
Viel schlimmer wird es aber sein, wenn ich in den Namen oder die Mail einen | einfüge. Also escape das Trennzeichen bitte, alternativ kannst du es auch in Namen und Mail verbieten (bzw. nur da escapen) und aus
$zerlegen = explode("|", $ausgabe);
folgendes machen:
$zerlegen = explode("|", $ausgabe,4);
Jonathan