Supportnet Computer
Planet of Tech

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

Antwort 2 von alfred0.der.analt0rpedo

Ja der is vorhanden.. müsse ja eigentlich auch habe nämlich per

$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*

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

Antwort 5 von alfred0.der.analt0rpedo

Jo Strip Tags habe ich also drin..

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.161


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..

Antwort 6 von alfred0.der.analt0rpedo

Wäre wohl auch besser noch den Teil der eintragung zu haben..


$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:


<?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 :(


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

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ß

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 !

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

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 :(

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: