[PHP/UBB] Tekst uit database niet zichtbaar [Opgelost]

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Martijn L

Martijn L

04/01/2015 20:32:01
Quote Anchor link
Hallo,

Momenteel loop ik tegen een fout aan met het weergeven van mijn tekst vanuit de database.
De tekst die ik oproep uit mijn database geeft die niet weer i.c.m. mijn ubb script.

Deze tekst staat in mijn database:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
Wij zijn CP-Webcreaties.<noscript>
We bezorgen websites met een volledig beheer. Momenteel zit het volledig in de ontwerpfase. CP-Webcreaties bestaat uit een persoon die script als hobby.
Het doel van CP-Webcreaties is om &eacute;&eacute;n op maat gemaakt beheer voor uw website te cre&euml;ren. Ook het aanbod is zeer uitgebreid. Wij kunnen onder andere een forum, een gastenboek en foto galerijen leveren.


Ik laat die door ubb.php gaan:

ubb.php
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php
function UBB($bericht) {
    $bericht = htmlspecialchars($bericht, ENT_HTML5);
    $bericht = nl2br($bericht);

    //enters
    $bericht = str_replace('\n', '', $bericht);
    $bericht = str_replace('\r', '<br>', $bericht);
    //spatie
    $bericht = str_replace('[tab]', '<font style="color:none;">&nbsp;&nbsp;&nbsp;&nbsp;</font>', $bericht);
    // URLs met tags maken
    $bericht = preg_replace("#\[url\](http)(.+?)\[/url\]#is","<a href=\"\\1\\2\" target=\"_blank\">\\1\\2</a>",$bericht);
    $bericht = preg_replace("#\[url\](mailto:)(.+?)\[/url]#is","<a href=\"\\1\\2\" target=\"_blank\">\\2</a>",$bericht);
    $bericht = preg_replace("#\[mail\](.+?)\[/mail\]#is","\\1",$bericht);
    $bericht = preg_replace("#\[url\](.+?)\[/url\]#is","<a href=\"http://\\1\" target=\"_blank\">\\1</a>",$bericht);
    $bericht = preg_replace("#\[url=(http|mailto)(.+?)\](.+?)\[/url\]#is","<a href=\"\\1\\2\" target=\"_blank\">\\3</a>",$bericht);
    $bericht = preg_replace("#\[url=(.+?)\](.+?)\[/url\]#is","<a href=\"http://\\1\" target=\"_blank\">\\2</a>",$bericht);
    // Cursief
    $bericht = preg_replace("#\[i\](.+?)\[/i\]#is","<i>\\1</i>",$bericht);
    // Onderstreept
    $bericht = preg_replace("#\[u\](.+?)\[/u\]#is","<u>\\1</u>",$bericht);
    // Vetgedrukt
    $bericht = preg_replace("#\[b\](.+?)\[/b\]#is","<b>\\1</b>",$bericht);
    // Doorstreept
    $bericht = preg_replace("#\[s\](.+?)\[/s\]#is","<s>\\1</s>",$bericht);
    //gecentreerd
    $bericht = preg_replace("#\[center\](.+?)\[/center\]#is","<div align='center'>\\1</div>",$bericht);
    // Plaatjes
    $bericht = preg_replace("#\[img\](http)(.+?)\[/img\]#is","<img src=\"\\1\\2\" alt=\"Plaatje\" >",$bericht);
    $bericht = preg_replace("#\[img\](.+?)\[/img\]#is","<img src=\"http://\\1\" alt=\"Plaatje\" >",$bericht);
    // Kleur
    $bericht = preg_replace("#\[color=(.+?)\](.+?)\[/color\]#is","<font color=\"\\1\">\\2</font>",$bericht);
    // Grootte
    $bericht = preg_replace("#\[size=(.+?)\](.+?)\[/size\]#is","<font size=\"\\1\">\\2</font>",$bericht);
    // Smileys
    $bericht = str_replace(":)"," <img src=\"/img/smilies/smile.gif\" alt=\"Smilie\" >",$bericht);
    $bericht = str_replace("8|"," <img src=\"/img/smilies/huh.gif\" alt=\"Smilie\" >",$bericht);
    $bericht = str_replace(":o"," <img src=\"/img/smilies/ohmy.gif\" alt=\"Smilie\" >",$bericht);
    $bericht = str_replace(";)"," <img src=\"/img/smilies/wink.gif\" alt=\"Smilie\" >",$bericht);
    $bericht = str_replace("*D"," <img src=\"/img/smilies/happy.gif\" alt=\"Smilie\" >",$bericht);
    $bericht = str_replace(":P"," <img src=\"/img/smilies/tongue.gif\" alt=\"Smilie\" >",$bericht);
    $bericht = str_replace(":D"," <img src=\"/img/smilies/biggrin.gif\" alt=\"Smilie\" >",$bericht);
    $bericht = str_replace("8)"," <img src=\"/img/smilies/cool.gif\" alt=\"Smilie\" >",$bericht);
    $bericht = str_replace("*-)"," <img src=\"/img/smilies/rolleyes.gif\" alt=\"Smilie\" >",$bericht);
    $bericht = str_replace(":?"," <img src=\"/img/smilies/dry.gif\" alt=\"Smilie\" >",$bericht);
    $bericht = str_replace(":@"," <img src=\"/img/smilies/mad.gif\" alt=\"Smilie\" >",$bericht);
    $bericht = str_replace(":("," <img src=\"/img/smilies/sad.gif\" alt=\"Smilie\" >",$bericht);
    $bericht = str_replace("8-)"," <img src=\"/img/smilies/unsure.gif\" alt=\"Smilie\" >",$bericht);
    $bericht = str_replace(":|"," <img src=\"/img/smilies/blink.gif\" alt=\"Smilie\" >",$bericht);
    $bericht = str_replace("|:-|"," <img src=\"/img/smilies/ph34r.gif\" alt=\"Smilie\" >",$bericht);
    $bericht = str_replace("|-)"," <img src=\"/img/smilies/sleep.gif\" alt=\"Smilie\" >",$bericht);
    $bericht = str_replace("(l)"," <img src=\"/img/smilies/wub.gif\" alt=\"Smilie\" >",$bericht);
    $bericht = str_replace(":s"," <img src=\"/img/smilies/wacko.gif\" alt=\"Smilie\" >",$bericht);

    return $bericht;
}

?>


Daarnaast heb ik de bovenstaande tekst ook in test.php gezet.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
<?php include('config.php');
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<style>
body{
    font-family:Arial, Helvetica, sans-serif;
}
</style>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<?php
    $tb1sql1
        = "SELECT * FROM textbox_1 WHERE `ID` = '2'";
    $tb1query1        = mysql_query($tb1sql1);
    $tb1fetch1 = mysql_fetch_assoc($tb1query1);
$test    = 'Wij zijn CP-Webcreaties.<noscript>é
We bezorgen websites met een volledig beheer. Momenteel zit het volledig in de ontwerpfase. CP-Webcreaties bestaat uit een persoon die script als hobby.
Het doel van CP-Webcreaties is om &eacute;&eacute;n op maat gemaakt beheer voor uw website te cre&euml;ren. Ook het aanbod is zeer uitgebreid. Wij kunnen onder andere een forum, een gastenboek en foto galerijen leveren.'
;
echo ubb($test);
?>

</body>
</html>

Output:
Bovenstaande tekst goed

<?php include('config.php');
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<style>
body{
    font-family:Arial, Helvetica, sans-serif;
}
</style>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<?php
    $tb1sql1
        = "SELECT * FROM textbox_1 WHERE `ID` = '2'";
    $tb1query1        = mysql_query($tb1sql1);
    $tb1fetch1 = mysql_fetch_assoc($tb1query1);
$test    = 'Wij zijn CP-Webcreaties.<noscript>é
We bezorgen websites met een volledig beheer. Momenteel zit het volledig in de ontwerpfase. CP-Webcreaties bestaat uit een persoon die script als hobby.
Het doel van CP-Webcreaties is om &eacute;&eacute;n op maat gemaakt beheer voor uw website te cre&euml;ren. Ook het aanbod is zeer uitgebreid. Wij kunnen onder andere een forum, een gastenboek en foto galerijen leveren.'
;
echo ubb($tb1fetch1['tekst']);
?>

</body>
</html>

Output:
Leeg

<?php include('config.php');
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<style>
body{
    font-family:Arial, Helvetica, sans-serif;
}
</style>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<?php
    $tb1sql1
        = "SELECT * FROM textbox_1 WHERE `ID` = '2'";
    $tb1query1        = mysql_query($tb1sql1);
    $tb1fetch1 = mysql_fetch_assoc($tb1query1);
$test    = 'Wij zijn CP-Webcreaties.<noscript>é
We bezorgen websites met een volledig beheer. Momenteel zit het volledig in de ontwerpfase. CP-Webcreaties bestaat uit een persoon die script als hobby.
Het doel van CP-Webcreaties is om &eacute;&eacute;n op maat gemaakt beheer voor uw website te cre&euml;ren. Ook het aanbod is zeer uitgebreid. Wij kunnen onder andere een forum, een gastenboek en foto galerijen leveren.'
;
echo $tb1fetch1['tekst'];
?>

</body>
</html>

Output:
Wij zijn CP-Webcreaties.
Gewijzigd op 05/01/2015 21:46:18 door Martijn L
 
PHP hulp

PHP hulp

19/04/2024 02:16:43
 
- Ariën  -
Beheerder

- Ariën -

04/01/2015 20:35:17
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
function UBB($bericht) {
    // doe wat nuttige UBB-dingen!
}
?>


en dit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
echo ubb($tb1fetch1['tekst']);
?>


Zoals je hier ziet missen er wat hoofdletters.
Gewijzigd op 04/01/2015 20:36:29 door - Ariën -
 
Martijn L

Martijn L

04/01/2015 20:37:53
Quote Anchor link
Dat is inderdaad een slordige fout maar lost het probleem helaas niet op. (Net geprobeerd)

Het probleem doet zich niet voor als ik de é uit de tekst in de database haal. Dan geeft hij de tekst weer. De vreemde tekens/symbolen zorgen ervoor dat ik een lege output krijg.
 
- Ariën  -
Beheerder

- Ariën -

04/01/2015 21:00:45
Quote Anchor link
Gokje.....PHP 5.4 of 5.5? Stap over op UTF-8 of pas al je htmlspecialchars() aan naar:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
htmlspecialchars($string, ENT_COMPAT | ENT_HTML401, 'ISO-8859-1')
Gewijzigd op 04/01/2015 21:01:00 door - Ariën -
 
Martijn L

Martijn L

04/01/2015 21:15:05
Quote Anchor link
Php 5.4.25 Installed


Ja ik zit inderdaad op php versie 5.4

Als ik de bovenstaande regel invoer die jij daar neerzet krijg ik op de plek van een é een wit ruitje met een vraagteken erin.

Kan ik dit oplossen door naar UTF-8 over te gaan? En zo ja kan je me een klein duwtje in de rug geven over hoe ik dit kan doen?
 
- Ariën  -
Beheerder

- Ariën -

04/01/2015 21:17:30
Quote Anchor link
Je bestanden opslaan als UTF-8 encoding met je editor, UTF-8 headers te gebruiken, en je database ook op UTF-8 in te stellen, en deze geforceerd ook UTF-8 te laten gebruiken.

Verder zijn de functies van MySQL verouderd, dus ik zou je eerder MySQLikunnen aanraden.
 
Martijn L

Martijn L

05/01/2015 18:15:29
Quote Anchor link
Ik wil over gaan op PDO op ten duur. Waarom niet nu al? Ik wil beetje bij beetje doorgaan. Niet halverwege stoppen en weer beginnen aan een andere deel van de site. Dan doe je steeds maar de helft.

Hoe moet ik de htmlspecialchars maken als ik de database de bestanden heb aangepast naar utf-8/utf8_general_ci?(elke kolom en daarna de tabellen de collatie ook)

Als ik de htmlspecialchars namelijk htmlspecialchars($bericht); zo laat geeft die nog steeds niks weer als er een vreemd teken instaat.
Gewijzigd op 05/01/2015 18:16:08 door Martijn L
 
- Ariën  -
Beheerder

- Ariën -

05/01/2015 18:39:14
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
 htmlspecialchars($string, ENT_COMPAT | ENT_HTML401, 'ISO-8859-1')
?>

Deze moet je dan gebruiken bij het ophalen van alle data uit je database (dus niet gebruiken bij het inserten)
 
Martijn L

Martijn L

05/01/2015 21:46:03
Quote Anchor link
Dank je voor je hulp.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.