[PHP] vreemd probleem met UBB parser

Pagina: 1
Acties:

Onderwerpen


  • TwoR
  • Registratie: Augustus 2002
  • Laatst online: 11:24

TwoR

Gekleurde stippen

Topicstarter
Hoi, ik heb een website gemaakt die altijd goed functioneerde alleen sinds 2 dagen verschijnen er geen teksten meer op de website. De provider zegt dat er helemaal niks is veranderd aan de server.

De opbouw steekt ongeveer op deze manier in elkaar
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
include "ubbparser.php";

$sql2 = "SELECT     id, 
        titel,
        tekst,
        volgorde,
        photo,
        align,
        actief 
        FROM teksten WHERE categorie = '12' AND actief = '1' ORDER BY volgorde ASC";
        $query1 = mysql_query($sql2) or die(mysql_error());

while($row = mysql_fetch_object($query1)){ 

$parsed = plain2ubb($row->tekst);

echo "$parsed";

}


Nu is de variabele $parsed dus nog leeg. Maar $row->tekst kan ik wel echoën. De ubbparser heb ik niet zelf gemaakt maar weet ook niet meer precies waar die vandaan komt. Een stukje van die code staat hieronder:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
function plain2ubb($msg){  

// --- Image 
  $msg = preg_replace("/\\[img\](.+?)\\[\/img\]/is",'[img]"\1"[/img]', $msg);                                           
  $msg = preg_replace("/\[img w=(.+?) h=(.+?)\](.+?)\\[\/img\]/is",'[img]"\3"[/img]', $msg);    

  // --- Email 
  $msg = preg_replace("/\\[email\](.+?)\\[\/email\]/is",'<a href="mailto:\1">\1</a>', $msg);                           
  $msg = preg_replace("/\[email=(.+?)\](.+?)\\[\/email\]/is",'<a href="mailto:\1">\2</a>', $msg);  

  // --- Url                         
  $msg = preg_replace("/\[url=(.+?)\](.+?)\\[\/url\]/is",'<a href="\1" Target=\"_new\">\2</a>', $msg);   

  // --- Font-weight 
  $msg = preg_replace("/\\[b\](.+?)\\[\/b\]/is",'<b>\1</b>', $msg);   
  $msg = preg_replace("/\\[u\](.+?)\\[\/u\]/is",'<u>\1</u>', $msg);   
  $msg = preg_replace("/\\[i\](.+?)\\[\/i\]/is",'<i>\1</i>', $msg);   
  $msg = preg_replace("/\\[s\](.+?)\\[\/s\]/is",'<s>\1</s>', $msg);  

return $msg; 
}


Eerder werkte deze manier altijd maar sinds kort dus niet. Weet iemand wat ik hier nu fout doe volgens mij heb ik ondertussen alles al geprobeerd. Ik heb ook de gehele UBB parser in de source gezet zonder hem eerste te includen maar ook dat werkt niet.

  • dip
  • Registratie: September 2003
  • Laatst online: 16-01-2023

dip

shut up ulé

*kuch*

[ Voor 6% gewijzigd door dip op 14-10-2003 10:11 ]

It's scientifically known, that base improves the tase of cheezes!


  • OkkE
  • Registratie: Oktober 2000
  • Laatst online: 04-09 08:16

OkkE

CSS influencer :+

Of je maakt er wel 1 zelf, en leert er ook nog iets van ... :?

Anyways; als ik die functie test met de img, B en U werkt 'ie gewoon. Werkt de functie nu helemaal niet meer, of alleen wanneer er bepaalde ubb codes in staan?
En als je na elk onderdeel (image, email, url en font) eens een ECHO doet ? zie je dan wel iets?

____ Edit _____________________________________________
Btw, is die $row->tekst niet een array? Dan daarom je ubb-functie moeilijk doet? :?

[ Voor 23% gewijzigd door OkkE op 14-10-2003 10:16 ]

“The best way to get the right answer on the Internet is not to ask a question, it's to post the wrong answer.”
QA Engineer walks into a bar. Orders a beer. Orders 0 beers. Orders 999999999 beers. Orders a lizard. Orders -1 beers.


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 06-09 00:37

curry684

left part of the evil twins

offtopic:
wist je trouwens dat je met [norml] tags de RML- en dus UBB-parsing uit kunt zetten over een blok tekst? ;)

Professionele website nodig?


  • TwoR
  • Registratie: Augustus 2002
  • Laatst online: 11:24

TwoR

Gekleurde stippen

Topicstarter
Nee dat werkt niet.
Nog even vergeten te melden dat het lokaal wel werkt met PHP versie 4.2.0 en op de server draait PHP versie 4.1.2.

Als ik na elke functie een echo doe gebeurt er niks en blijft het allemaal hetzelfde.
Nee $row->tekst is geen array.

[ Voor 32% gewijzigd door TwoR op 14-10-2003 10:22 ]


  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06 13:31

drm

f0pc0dert

Zet error_reporting eens op E_ALL en kijk wat de output daarvan is. Daar heb je vast meer aan dat dit gissen in de ruimte.

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • TwoR
  • Registratie: Augustus 2002
  • Laatst online: 11:24

TwoR

Gekleurde stippen

Topicstarter
Nee ik had het er niet instaan maar nu wel. Ik krijg alleen geen enkele foutmelding. Dus ik ga er dan maar vanuit dat de code wel goed is.

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06 13:31

drm

f0pc0dert

Weet je wel zeker dat je rows terugkrijgt van MySQL?

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • TwoR
  • Registratie: Augustus 2002
  • Laatst online: 11:24

TwoR

Gekleurde stippen

Topicstarter
Ja heel erg zeker want als ik hem niet door die Ubb parser heen haal en gewoon
$row->tekst echo dan krijg ik gewoon de tekst die in de database staat te zien.

  • gomaster
  • Registratie: Februari 2002
  • Laatst online: 03-11 21:12
Probeer eens echo's te plaatsen in de ubbparser. Dan weet je waar het ongeveer fout gaat.

  • TwoR
  • Registratie: Augustus 2002
  • Laatst online: 11:24

TwoR

Gekleurde stippen

Topicstarter
Ook dan krijg ik niks te zien.
Als ik in de UBB parser zelf de variabele $msg een waarde geef dus helemaal niet uit de database. En ik echo dit op het einde krijg ik het lokaal wel te zien maar op het internet dus echt niet.

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06 13:31

drm

f0pc0dert

Dan heb je er waarschijnlijk toch ergens een fout in zitten maar laat php de fout niet zien. Doe eens een phpinfo () en check of display_errors en error_reporting wel goed staan. let wel: in http configuratie kun je niet de directive error_reporting op E_ALL zetten, die constante wordt namelijk naar 0 geëvalueerd. Je moet dan even 2047 invullen (de feitelijke waarde van de constante E_ALL).

Zet ook eens een bestandje online waarvan je zeker weet dat er een fout in zit en kijk of die wel errors laat zien.

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • xces
  • Registratie: Juli 2001
  • Laatst online: 07-10 11:50

xces

To got or not to got..

while($row = mysql_fetch_object($query1)){
$parsed = plain2ubb($row->tekst);
echo "$parsed";
}

verander dat eens in:
while($row = mysql_fetch_array($query1))
$parsed = plain2ubb($row['tekst']);
echo "$parsed";
}

of:
while($row = mysql_fetch_array($query1))
$temp = '"'.$row['tekst'].'"';
$parsed = plain2ubb($temp);
echo "$parsed";
}

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 11:27

.oisyn

Moderator Devschuur®

Demotivational Speaker

Uhm, waarom in hemelsnaam?
Ok, fetch_object is ietwat trager, maar het is perfecte code en verder niets mis mee. (Gebruik trouwens een php tags, dat leest wat makkelijker)

En dan je 2e variant, extra quotes eromheen zetten???

Als je nou voorgesteld had om die
PHP:
1
echo "$parsed";

te wijzigen in
PHP:
1
echo $parsed;
, dan had je nog een zinnige post gedaan ;)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • ripperke
  • Registratie: Augustus 2003
  • Laatst online: 15-10 15:37

ripperke

w00t!

database al eens nagekeken op speciale tekens als " & ' of </table> in de laatste rows, kan niet direct is startpost vinden of het om een gastenboek,forum of dergelijke gaat, hoe rows worden geadd staat er ook niet in dus weet niet of je speciale tekens escaped.

If TCP/IP handshaking was less formal, perhaps SYN/ACK would be YO/WASSUP


  • TwoR
  • Registratie: Augustus 2002
  • Laatst online: 11:24

TwoR

Gekleurde stippen

Topicstarter
Het gaat om een website, In de DB komen geen teksten voor die eindigen op </table> of iets dergelijks. Ik heb ook nog een keer met de Provider gemaild ze zouden er ook nog even naar kijken omdat er vandaag nog een klacht over een soort gelijk probleem was gekomen.

Nou het is opgelost die eikels bij de provider hadden per ongeluk ipv een nieuwe versie van PHP er een oude op gezet. Maar goed nu is het opgelost. Iedereen bedankt voor de reacties.

[ Voor 28% gewijzigd door TwoR op 14-10-2003 18:53 ]

Pagina: 1