Archivlink: javarea.de Forum > PHP, MySQL & CGI > Ausgabe des Gästebuches
Vollständigen Link anzeigen: javarea.de Forum > PHP, MySQL & CGI > Ausgabe des Gästebuches

Pages: [1]

geschrieben von abdullah am 16.01.2008 - 15:20
Hallo Leute,
ich habe ein Gästebuch programmiert, der Code für die Ausgabe sieht folgendermaßen aus:
HTML-Quelltext
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
17: 
18: 
19: 
20: 
21: 
22: 
23: 
24: 
25: 
26: 
27: 
28: 
29: 
30: 
31: 
32: 
33: 
34: 
35: 
36: 
37: 
38: 
39: 
40: 
41: 
42: 
43: 
44: 
45: 
46: 
47: 
48: 
49: 
50: 
51: 
52: 
53: 
54: 
55: 
56: 
57: 
58: 
59: 
60: 
61: 
62: 
63: 
64: 
65: 
66: 
67: 
68: 
69: 
70: 
<div class="titel">Gästebuch Einträge</div>
<div class="gastbucheintrag">

<?php
define("LIMIT_NUM",5);
define("MYSQL_HOST", "localhost");
define("MYSQL_USER", "root");
define("MYSQL_PASS", "");
define("MYSQL_DATABASE", "abdullah");

function connectmysql() {
    mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS) or die(mysql_error());
    mysql_select_db(MYSQL_DATABASE);
}

connectmysql();

$sql = "SELECT count(*) as Anzahl FROM gaestebuch;";
$anzahl = mysql_fetch_assoc(mysql_query($sql));

echo '<p style="text-align:center">'."Seiten:\n";
for ($i=1; $i<=(ceil($anzahl['Anzahl']/LIMIT_NUM)); $i++) {
    echo '    <a';
    if($_GET['page'] == $i or ($i == 1 AND !isset($_GET['page'])))
        echo ' style="text-decoration:underline;"';
    echo ' href="index.php?site=eintrag&page='.$i.'">'.$i.'</a> '."\n";
}
echo '</p><br />';

if(isset($_GET['page']))
    $offset = LIMIT_NUM*($_GET['page']-1);
else
    $offset = 0;
    
connectmysql();

$sql = "SELECT Id, Ts, Email, Ort, Name, Kommentar, IP FROM gaestebuch ORDER BY Id DESC LIMIT ".$offset.",".LIMIT_NUM.";";
$result = mysql_query($sql);

while($zeile = mysql_fetch_array($result)) {
    echo '<table align="left" border="0" cellpadding="3px" cellspacing="0px" width="100%">
       <tr>
        <td style="background-color:orange; color:black;">
         '.$zeile['Name'].' aus <i><a style="text-decoration:none;" href="mailto:'.$zeile["Email"].'">'.$zeile['Ort']. "</a></i> schrieb " . $zeile['Ts'] .
        "</td>
       </tr>
       <tr>
<!-- Hier läuft der Text über den div - Bereich aus-->
        <td align='left' style='background-color:white; color:black;' colspan='2'>".trim(htmlspecialchars($zeile['Kommentar'])) ."\n 
        </td>
       </tr>
      </table><p>&nbsp;</p>";
}

$server = $HTTP_SERVER_VARS["REMOTE_ADDR"];

echo '<p style="text-align:center">'."Seiten:\n";
for ($i=1; $i<=(ceil($anzahl['Anzahl']/LIMIT_NUM)); $i++) {
    echo '    <a';
    if($_GET['page'] == $i or ($i == 1 AND !isset($_GET['page'])))
        echo ' style="text-align:center; text-decoration:underline;"';
    echo ' href="index.php?site=eintrag&page='.$i.'">'.$i.'</a> '."\n";
}
echo '</p><br />';

echo '<p align="center"><a href="index.php?site=guestbook">Zur&uuml;ck zum G&auml;stebuch</a><p>&nbsp;</p></p>';

?>

</div>


Es funktioniert genau so wie ich es möchte, jedoch wird die Tabelle breiter falls über den Formular im Bereich <textare></textarea> viel text eingegeben wird. Siehe den code im roten Bereich an.

Was muss ich machen damit der Inhalt des Gästebuches, die von der Datenbank angezeigt wird nicht
über den Rand des Div - Bereiches hinaus läuft ?

Vielen Dank
PS:
Siehe auch bild anhang

geschrieben von Klaush am 16.01.2008 - 16:25
Das Zauberword lautet: wordwrap()

Zitat
 
wordwrap

(PHP 4 >= 4.0.2, PHP 5)
wordwrap -- Bricht einen String nach einer bestimmten Anzahl Zeichen mittels des angegebenen Trennzeichens um.
Beschreibung:
string wordwrap ( string str [, int width [, string break [, bool cut]]] )

Bricht den String str an der mittels des optionalen Parameters width angegebenen Position um. Als Zeilenumbruch wird der (optionale) Parameter break verwendet.

Die Funktion wordwrap() bricht einen String automatisch nach dem 75sten Zeichen unter Verwendung des Steuerzeichens '\n' (neue Zeile) um, sofern die Parameter width und/oder break nicht angegeben sind.

Ist für cut der Wert 1 angegeben, wird der String immer an der vorgegebenen Position umgebrochen. Ist also ein Wort länger als die vorgegeben, wird der Zeilumbruch innerhalb des Wortes eingefügt (siehe zweites Beispiel).

Anmerkung: Der optionale Parameter cut wurde in PHP 4.0.3 eingeführt.

Beispiel 1. wordwrap()-Beispiel:
$text = "Der schnelle braune Fuchs sprang über den faulen Hund.";
$neuertext = wordwrap( $text, 20, "<br />\n" );

echo $neuertext;

Dieses Beispiel gibt aus:

Der schnelle braune<br />
Fuchs sprang über<br />
den faulen Hund.

Beispiel 2. wordwrap()-Beispiel:
$text = "Ein sehr langes Wooooooooooort.";
$neuertext = wordwrap($text, 8, "\n", 1);

echo "$neuertext\n";

Dieses Beispiel gibt aus:

Ein sehr
langes
Wooooooo
oooort.


quelle: http://www.php-resource.de/handbuch....rdwrap.htm

geschrieben von abdullah am 16.01.2008 - 17:27
Hallo Klaush

Ich bedanke mich bei dir für deine Hilfe. Das Problem habe ich mit dem wordwrap() gelösst.

bye


Powered by: JBB v.2.0.4 Copyright ©2000-2006, www.javarea.de.