Supportnet / Forum / Skripte(PHP,ASP,Perl...)
PHP Guestbook Problem .. Tabellen bei einem Eintrag mit Absatz
Frage
vorab tut es mir leid dass der code den Ramen sprengt, aber ich finde es so um einiges Übersichtlicher !
hi!
Und zwar habe ich mir ein neues Gbook geschrieben, welches auf TXT Basiert. Jetzt klappt alles schon wunderbar, nur wenn jemand einen Absatz in seinen Beitrag macht, sind die tabellen bei diesem Eintrag verschoben.. ich weiß nicht wieso. habe den Ausgabe weil vom Beitrag auch schon mit nl2br versehen.. hilft nix..
Hilfe: Es ist so aufgebaut, dass ich eine Tabelle hab, mit 2 Rows. In der Oberen Row ist eine weitere Tabelle mit einer row, in der die kleinen Grafiken für die Homepage, email und der Name, datum ip platz finden.
In der Unteren row is dann der eintrag.. also müsste eigentlich richtig sein ich finde keinen Fehler in den Tabellen.. also denke ich mir mal dass es am php und an den Absätzen liegt.
Der quellcode
[code]
<?php
$datei = fopen("gbook.txt","r");
if ($datei)
{
while(!feof($datei))
{
$lines = fgets($datei,1000);
$array = explode("|--|",$lines);
echo "
<TABLE WIDTH=464 BORDER=0 CELLPADDING=0 CELLSPACING=0>
<TR>
<TD>
<TABLE WIDTH=464 BORDER=0 CELLPADDING=0 CELLSPACING=0>
<TR>
<TD width=13 height=29></TD>
<TD width=28 height=29><a href=mailto:".$array[1]."><IMG SRC="02.jpg" WIDTH=28 HEIGHT=29 border="0" alt="E-Mail schreiben"></a></TD>
<TD width=29 height=29><a href=".$array[2]."><IMG SRC="03.jpg" WIDTH=29 HEIGHT=29 border="0" alt="Homepage besuchen"></a></TD>
<TD width=28 height=29><IMG SRC="04.jpg" WIDTH=28 HEIGHT=29 border="0" alt="".$array[3].""></TD>
<TD width=10 height=29></TD>
<TD width=148 height=29><font face="Tahoma" size="2">".$array[0]."</font></TD>
<TD width=99 height=29><font face="Tahoma" size="2">".$array[5]."</font></TD>
<TD width=90 height=29><font face="Tahoma" size="2">".$array[6]."</font></TD>
<TD width=19 height=29></TD>
</TR>
</TABLE>
</TD>
</TR>
<TR>
<TD WIDTH=464><font face="Tahoma" size="2">".nl2br(wordwrap($array[4]))."</font></TD>
</TR>
</TABLE>";
}
fclose($datei);
}
?>
[/code]
damit ihr es auch sehr, der Link [url=http://www.electronic-skill.de/login/index.php?sec=gbook]hier..[/url]
gruß
Antwort 1 von Nessus
Hi,
wie liegen die Daten in dem Textfile?
Ist da der Absatz da auch vorhanden?
Übrigens solltest Du nl2br besser Insert laufen lassen.
Arbeitest Du auch mit Strip_tags, etc?
Nessus
wie liegen die Daten in dem Textfile?
Ist da der Absatz da auch vorhanden?
Übrigens solltest Du nl2br besser Insert laufen lassen.
Arbeitest Du auch mit Strip_tags, etc?
Nessus
Antwort 2 von alfred0.der.analt0rpedo
Ja der is vorhanden.. müsse ja eigentlich auch habe nämlich per
eingetragen..
in der txt ist alles eigentlich wie es soll.. jeder Eintrag ist in einer Zeile.. auch wenn in diesem Absätze drin sind..
Übrigens solltest Du nl2br besser Insert laufen lassen.
<< was heißt / bewirkt das ?
Arbeitest Du auch mit Strip_tags, etc?
<< eigentlich nicht.. weiß auch nicht was es ist.. ^^
danke schonmal..
gruß
$datei = fopen("gbook.txt","a");
fputs($datei, "\n$name|--|$email|--|$homepage|--|$icq|--|$eintrag|--|$hi|--|$ip");eingetragen..
in der txt ist alles eigentlich wie es soll.. jeder Eintrag ist in einer Zeile.. auch wenn in diesem Absätze drin sind..
Übrigens solltest Du nl2br besser Insert laufen lassen.
<< was heißt / bewirkt das ?
Arbeitest Du auch mit Strip_tags, etc?
<< eigentlich nicht.. weiß auch nicht was es ist.. ^^
danke schonmal..
gruß
Antwort 3 von alfred0.der.analt0rpedo
function mynl2br ($text) {
$cell=explode("\n",$text);
$ar=array();
for($i=0;$i<count($cell);$i++) {
$ar[]=trim($cell[$i]);
}
$output=implode("<BR>",$ar);
return $output;
}
und dann eben den Text auf der textarea (nennen wir sie comment)
$comment = mynl2br($comment);
wurde mir in einem andrem Forum gesagt.. aber damit kann ich wenig anfangen. da ich mich auch nicht mit funktionen so gut auskenn....
*schääm*
$cell=explode("\n",$text);
$ar=array();
for($i=0;$i<count($cell);$i++) {
$ar[]=trim($cell[$i]);
}
$output=implode("<BR>",$ar);
return $output;
}
und dann eben den Text auf der textarea (nennen wir sie comment)
$comment = mynl2br($comment);
wurde mir in einem andrem Forum gesagt.. aber damit kann ich wenig anfangen. da ich mich auch nicht mit funktionen so gut auskenn....
*schääm*
Antwort 4 von Nessus
Strip_tags : Damit entfernst Du alle HTML-Tags der Eingabe. Dadurch wird verhindert, das man JS-Code oder Bilder uvm. mit einbindet.
www.php.net, da wirst Du geholfen.
Poste mal einen Teil der gbook.txt, ich werde es mir (wenn ich dazu komme) heute Abend mal anschauen.
Aber ohne Gewähr, das ich zeitlich dazu komme.
Nessus
www.php.net, da wirst Du geholfen.
Poste mal einen Teil der gbook.txt, ich werde es mir (wenn ich dazu komme) heute Abend mal anschauen.
Aber ohne Gewähr, das ich zeitlich dazu komme.
Nessus
Antwort 5 von alfred0.der.analt0rpedo
Jo Strip Tags habe ich also drin..
So teile aus der txt
das ist ein Eintrag von vorher.. also ohne nl2br($eintrag)
Hast du den Sinn meiner Tabellen verstanden ? Ich glaube nämlich das ist wichtig um das Problem zu verstehen..
So teile aus der txt
bla|--|kane@csdemos.de|--|http://www.csdemos.de|--|147724105|--|Neue Zeile kommt <br /> <br /> JETZT !<br /> <br /> <br /> NOCHMAL<br /> <br /> geht eh ned.. grml|--|31.8.2003|--|80.129.104.161 diese Zeile habe ich neu, nachdem ich beim abspeichern der einträge JETZT NEU nl2br($eintrag) verwended habe.. aber es ist trotzdem noch so wie vorher.. die gleiche Sche***!
clemens|--|@|--|http://|--||--|Test test test Hallo Hallo Blubb Blubb|--|31.8.2003|--|80.129.104.161das ist ein Eintrag von vorher.. also ohne nl2br($eintrag)
Hast du den Sinn meiner Tabellen verstanden ? Ich glaube nämlich das ist wichtig um das Problem zu verstehen..
Antwort 6 von alfred0.der.analt0rpedo
Wäre wohl auch besser noch den Teil der eintragung zu haben..
gruß, und danke dass du dir die Mühe machst
$datei = fopen("gbook.txt","a");
$einrag2 = nl2br($eintrag);
fputs($datei, "\n$name|--|$email|--|$homepage|--|$icq|--|$einrag2|--|$hi|--|$ip");
fclose($datei);
gruß, und danke dass du dir die Mühe machst
Antwort 7 von Nessus
Hi,
so, ich habe ihn mir mal angeschaut. Folgendes: Du solltest gerade dabei auf Valid-HTML achten, d.h. korrekten HTML-Code. Anführungszeichen mit einem "\" escapen und Zeilenumbrüche einsetzen.
Ich habe den Code so mal umgebastelt:
Deinen Fehler konnte ich nicht dann nicht mehr rekonstruieren, probiere es mal aus. Falls nicht, melde dich noch mal, bitte dann mit einem größeren Ausschnitt der gbook.txt
HTH
Nessus
so, ich habe ihn mir mal angeschaut. Folgendes: Du solltest gerade dabei auf Valid-HTML achten, d.h. korrekten HTML-Code. Anführungszeichen mit einem "\" escapen und Zeilenumbrüche einsetzen.
Ich habe den Code so mal umgebastelt:
<?php
$datei = fopen("gbook.txt","r");
if ($datei)
{
while(!feof($datei))
{
$lines = fgets($datei,1000);
$array = explode("|--|",$lines);
$array4= nl2br(wordwrap($array[4]));
echo "<TABLE WIDTH=\"464\" BORDER=\"0\" CELLPADDING=\"0\" CELLSPACING=\"0\">\n";
echo "<TR><TD><TABLE WIDTH=\"464\" BORDER=\"0\" CELLPADDING=\"0\" CELLSPACING=\"0\"><TR>\n";
echo "<TD width=\"13\" height=\"29\"></TD>\n";
echo "<TD width=\"28\" height=\"29\"><a href=mailto:$array[1]><IMG SRC=\"02.jpg\" WIDTH=\"28\" HEIGHT=\"29\" border=\"0\" alt=\"E-Mail schreiben\"></a></TD>\n";
echo "<TD width=\"29\" height=\"29\"><a href=$array[2]><IMG SRC=\"03.jpg\" WIDTH=\"29\" HEIGHT=\"29\" border=\"0\" alt=\"Homepage besuchen\"></a></TD>\n";
echo "<TD width=\"28\" height=\"29\"><IMG SRC=\"04.jpg\" WIDTH=\"28\" HEIGHT=\"29\" border=\"0\" alt=$array[3]></TD>\n";
echo "<TD width=\"10\" height=\"29\"></TD>\n";
echo "<TD width=\"148\" height=\"29\"><font face=\"Tahoma\" size=\"2\">$array[0]</font></TD>\n";
echo "<TD width=\"99\" height=\"29\"><font face=\"Tahoma\" size=\"2\">$array[5]</font></TD>\n";
echo "<TD width=\"90\" height=\"29\"><font face=\"Tahoma\" size=\"2\">$array[6]</font></TD>\n";
echo "<TD width=\"19\" height=\"29\"></TD>\n";
echo "</TR></TABLE>\n";
echo "</TD></TR><TR>\n";
echo "<TD WIDTH=464><font face=\"Tahoma\" size=\"2\">$array4</font></TD></TR>\n";
echo "</TABLE>\n\n";
}
fclose($datei);
}
?>
Deinen Fehler konnte ich nicht dann nicht mehr rekonstruieren, probiere es mal aus. Falls nicht, melde dich noch mal, bitte dann mit einem größeren Ausschnitt der gbook.txt
HTH
Nessus
Antwort 8 von alfred0.der.analt0rpedo
Tut mir leid.. aber es hat sich nix geändert :(
wie gesagt, die <br /> werden jetz durch das nl2br beim ABSPEICHERN dazugesetzt...
Falls es wichtig ist, oder interessiert: Bei dem Eintrag von Jana, war es auch am Anfang so.. ich habe diesen dann rausgeschnitten aus der TXT, um ihn zu sichern, dann wieder eingefügt und hochgeladen.. danach ging es... also es waren zwar die Absätze weg.. aber sonst alles richtig gewesen..
Ist es denn sehr schlimm dass ich so viele Tabellen habe ? sind insgesammt 3.. und die eine wird halt pro eintrag wiederhohlt .. aber anders kann ich es und mir wurde immer gesagt ich soll mit Tabellen Arbeiten..
Falls du irgendwas noch brauchst sag bescheid... oder vielleicht kennste ja ne möglichkeit die Sache mit nur 2 oder 1 Tabelle zu lösen.. aber das Design an sich wird wohl schon die tabelle brauchen...
gruß
jana|--|RuheImKarton@web.de|--|http://www.beepworld.de/members38/riddimkillagirl|--|169226425|--|Morgen Spatz.. *grinst* wie schauts aus? da du mich erkoren hast, dein gästebuch zu entjungfern, nehm ich die sache natürlich sehr ernst un möchts nich gleich mit belanglosem zeug zumüllen ;D deshalb reiss ich mich am riemen un erzähl nur sachen, die halbwegs liberal (liberal?) klingen un nirgends als anstössig empfunden werden. zu allererst, ich mag des design hier. sehr schnieke. bloss keine fotos *murrt* aber was nich is, kann ja noch werden.. ;D gut gut, ich husche nu wieder von dannen. hab dich ends lieb.. weisst du. adieu, jana =)|--|30.8.2003|--|80.135.118.86
clemens|--|@|--|http://|--||--|Test test test Hallo Hallo Blubb Blubb|--|31.8.2003|--|80.129.104.161
clemens|--|fam.guenthermann@web.de|--|http://www.csdemos.de|--|147724105|--|Wer ein Plan hat warum der scheiß hier ned gescheit dargestellt wird wenn man einen<br /> ABSATZ <br /> macht, der soll sich bei mir melden |--|31.8.2003|--|80.129.99.227
wie gesagt, die <br /> werden jetz durch das nl2br beim ABSPEICHERN dazugesetzt...
Falls es wichtig ist, oder interessiert: Bei dem Eintrag von Jana, war es auch am Anfang so.. ich habe diesen dann rausgeschnitten aus der TXT, um ihn zu sichern, dann wieder eingefügt und hochgeladen.. danach ging es... also es waren zwar die Absätze weg.. aber sonst alles richtig gewesen..
Ist es denn sehr schlimm dass ich so viele Tabellen habe ? sind insgesammt 3.. und die eine wird halt pro eintrag wiederhohlt .. aber anders kann ich es und mir wurde immer gesagt ich soll mit Tabellen Arbeiten..
Falls du irgendwas noch brauchst sag bescheid... oder vielleicht kennste ja ne möglichkeit die Sache mit nur 2 oder 1 Tabelle zu lösen.. aber das Design an sich wird wohl schon die tabelle brauchen...
gruß
Antwort 9 von Nessus
Hi,
dann setze doch die verschobenen Daten Fix in eine weitere Tabelle mit nur einer Zelle, z.B. 80% der Breite, rechts. Ansonsten verstehe ich den Fehler nicht.
Nessus
dann setze doch die verschobenen Daten Fix in eine weitere Tabelle mit nur einer Zelle, z.B. 80% der Breite, rechts. Ansonsten verstehe ich den Fehler nicht.
Nessus
Antwort 10 von alfred0.der.analt0rpedo
Hmm... das heißt praktisch in dieser Form:
echo "<TD WIDTH=464><TABLE WIDTH=\"80%\" BORDER=\"0\" CELLPADDING=\"0\" CELLSPACING=\"0\"><tr><td>$array[4]</td></tr></table></TD></TR>\n"Antwort 11 von alfred0.der.analt0rpedo
Habe grad das div vergessen..
aber auch mit der tabelle gehts nicht.. naja danke trotzdem für die hilfe.. :/
gruß
aber auch mit der tabelle gehts nicht.. naja danke trotzdem für die hilfe.. :/
gruß
Antwort 12 von alfred0.der.analt0rpedo
Also es liegt ganz klar NICHT an den Tabellen..
Habe jetzt mal auf einer Testseite die gleiche Tabelle, neu erstellt, ( ich finde ordentlicher ), und alles gleich, aber nur EINEN Eintrag aus der gbook.txt eingefügt, der aber auch <br>`s enthält.. und da geht alles.. ohne probleme..
grml !
Habe jetzt mal auf einer Testseite die gleiche Tabelle, neu erstellt, ( ich finde ordentlicher ), und alles gleich, aber nur EINEN Eintrag aus der gbook.txt eingefügt, der aber auch <br>`s enthält.. und da geht alles.. ohne probleme..
grml !
Antwort 13 von alfred0.der.analt0rpedo
$hi = date("j.n.Y");
$ip = $_SERVER['REMOTE_ADDR'];
$datei = fopen("gbook.txt","a");
$einrag2 = nl2br(wordwrap($eintrag));
fputs($datei, "\n$name|--|$email|--|$homepage|--|$icq|--|$einrag2|--|$hi|--|$ip");
fclose($datei);ist ein Teil aus dem Eintrag-Script.. da ist auch nichts falsch oder ??!?
jedenfalls finde ich nichts.. aber hier oder bei der gbook.txt muss der Fehler liegen.. :/
nur falls es noch jmd interessiert
gruß
Antwort 14 von Nessus
Hi,
ich verstehe jetzt allerdings gar nicht mehr wo dein Problem ist....
Nessus
ich verstehe jetzt allerdings gar nicht mehr wo dein Problem ist....
Nessus
Antwort 15 von alfred0.der.analt0rpedo
Jo das Problem ist, wenn ich jetzt meine html Sachen ( eigentlich ist das noch html und ohne while schleife.. etc. ) mit dem php verbinde.. dann siehts wieder genauso aus..
deshalt sag ich ja dass da was mit dem eintrag oder mit der gbook.txt ned stimmt.. aber ich weiß einfach NICHT was.. verdammte k.acke :(
deshalt sag ich ja dass da was mit dem eintrag oder mit der gbook.txt ned stimmt.. aber ich weiß einfach NICHT was.. verdammte k.acke :(

