PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Notice: Undefined offset: 1 ... und warum ?



djaliced
01-06-2006, 16:45
Hallo,
ich habe folgendes Problem und komme einfach nicht mehr weiter.
Ich programmiere grade eine Shoutbox mit Datenbank. (PHP5)
Wenn die Shoutbox eine Nachrichten aus der Datenbank holt, wird geprüft ob ein Wort >= 13 Zeichen hat.
Wenn ja soll ein Zeilenumbruch eingefügt werden. Ist eine Satzfolge länger als 25 Zeichen soll ebenfalls ein Zeilenumbruch statfinden. Klappt eigentlich gut, bis auf diese Fehlermeldung ->

Notice: Undefined offset: 1 in /home/olly/public_html/Gods/php/shoutbox.php on line 37

Notice: Undefined offset: 1 in /home/olly/public_html/Gods/php/shoutbox.php on line 38

Hier mal der Teilausschnitt vom Script. Dazu muß ich noch sagen in der
$sql_in['message'] steht "Spamm Tralala Ist das hier ne Privatunterhaltung? ^^" bzw. "Satan du bist Privatunterhalter also..." (ohne Anführungszeichen)


31: $shout_message = $sql_in['message'];
32: if (preg_match('~(\S{13,})~',$shout_message))
33: {
34: preg_match_all('~(\S{13,})~',$shout_message,$messa ge);
35: foreach ($message as $id => $xmessage)
36: {
37: $wraptext = wordwrap($xmessage[$id], 13, "\n", 1);
38: $replacetext = str_replace($xmessage[$id], $wraptext, $shout_message);
39: $shout_message = $replacetext;
40: }
41: $shoutboxmessage= nl2br(wordwrap($shout_message, 25, "\n", 1));
42: }
43: else
44: {
45: $shoutboxmessage = nl2br(wordwrap($shout_message, 25, "\n", 1));
46: }


Angezeigt wird der Inhalt korrekt auf der Seite von $shoutboxmessage.
Jetzt könnte man zwar sagen, dass man die Fehlermeldungen abstellen.
Aber das ist ja nicht Sinn der Sache.;)

Ich komme einfach nicht weiter :(

gruß Olly

Romanday
01-06-2006, 16:54
Ich komme einfach nicht weiter :(

gruß Olly

Du fragst in Zeile 37, 38 den falschen value ab.
Schau dir noch 1x die foreach Schleife an (Aufbau).

http://www.php.net/manual/en/control-structures.foreach.php

djaliced
01-06-2006, 17:43
...ah ja, die $xmessage ist ja selber ein array und hat mit $id ja überhaupt nichts am "Hut"

so sollte es gehen.


31: $shout_message = $sql_in['message'];
32: if (preg_match('~(\S{13,})~',$shout_message))
33: {
34: preg_match_all('~(\S{13,})~',$shout_message,$messa ge);
35: foreach ($message as $i => $xme)
36: {
37: foreach ($xme as $id => $xmessage)
38: {
39: $wraptext = wordwrap($xmessage, 13, "\n", 1);
40: $replacetext = str_replace($xmessage, $wraptext, $shout_message);
41: $shout_message = $replacetext;
42 }
43: }
44: $shoutboxmessage= nl2br(wordwrap($shout_message, 25, "\n", 1));
45: }
46: else
47: {
48: $shoutboxmessage = nl2br(wordwrap($shout_message, 25, "\n", 1));
49: }


gleich mal testen...

...jup klappt. :D Manches mal sieht man halt den Wald vor ... und dann ist es ganz hilfreich das sich ein Dritten den Source mal anschaut ;)

Danke.

gruß Olly

Romanday
01-06-2006, 18:55
...jup klappt. :D Manches mal sieht man halt den Wald vor ... und dann ist es ganz hilfreich das sich ein Dritten den Source mal anschaut ;)

Danke.

gruß Olly

Bei dem Code kommt man leicht durcheinander, da die Variablen
sich ähneln.