[PHP] Script werkt bij enkele ids niet

Gestart doorMikek12 reacties175 weergaven

13 berichten · pagina 1 van 1

Mikek

Lid · Topicstarter

Berichten
3.000
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Hallo one2xsers,

Ik heb al ruim een jaar een vrij simpel script in gebruik die vanuit mijn database een bericht oproept. Nu werkt hij sinds kort niet meer. De pagina is leeg bij ongeveer de helft van de paginas en ik kan niet vinden waar het mis zit. Ik gebruik op elke pagina exact het zelfde script.

Codeblok (voorbeeld.php):

1
2
3
4
5
6
7
8
9
10
11
12

includeinclude/config.php;
includeinclude/ubb.php;

$result = mysql_query("SELECT * FROM pagina WHERE id=21 ORDER BY id");
while($row = mysql_fetch_assoc($result)) {
if(mysql_num_rows($result) == 0){
echo Deze pagina bestaat niet;
}
else{
echo UBB::Parse($row[bericht]);
}
}

?>

Codeblok (include/ubb.php):

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


Class UBB{
public static $SmilieArray = Array();
public static $SmiliePath = "/pixelweb/images/smilies/";

public static function Parse($string, $allow_br = true, $allow_smilies = true){
$string = htmlspecialchars($string);
$string = stripslashes($string);
$string = (($allow_br) ? nl2br($string) : $string);
$string = self::Ignore($string);
$string = self::BBCodes($string);
$string = self::Images($string);
return $string;
}


public static function Ignore($string){
$string = preg_replace_callback("_[ignore](.*?)[/ignore]_si", "UBB::IgnoreDinges", $string);
return $string;
}


public static function BBCodes($string){
$string = preg_replace("_(.*?)_si",

$1

, $string);
$string = preg_replace("_(.*?)_si", $1, $string);
$string = preg_replace("_(.*?)_si", $1, $string);
$string = preg_replace("_(.*?)_si", $1, $string);
$string = preg_replace("_
    (.*?)
_si"
,
    $1
, $string);
$string = preg_replace("_[item](.*?)[/item]_si",
  • $1
  • , $string);
    $string = preg_replace("_(.*?)_si", $1, $string);
    $string = preg_replace("_[size=(.*?)](.*?)[/size]_si", $2, $string);
    $string = preg_replace("_[color=(.*?)](.*?)_si"[/COLOR], $2, $string);
    $string = preg_replace("_(.*?)_si", $2, $string);
    $string = preg_replace("_[hl=(.*?)](.*?)[/hl]_si", $2, $string);
    $string = preg_replace("_[m](.*?)[/m]_si", $1, $string);
    return $string;
    }


    public static function Images($string){
    $string = preg_replace("_
    Afbeelding niet beschikbaarDe oorspronkelijke afbeelding of link ontbreekt.
    _si"
    , Afbeelding niet beschikbaarDe oorspronkelijke afbeelding of link ontbreekt., $string);
    return $string;
    }


    public static function IgnoreDinges($string){
    $string = str_replace("[", "[", $string[1]);
    $string = str_replace("]", "]", $string);
    return $string;
    }

    }

    ?>

    Zou iemand mij kunnen vertellen wat er mis gaat?

    Alvast bedankt,
    0
    Berichten
    8.602
    Reputatie
    0
    Punten
    0,00
    Lid sinds
    Laatst gezien
    Error?
    0
    Berichten
    513
    Reputatie
    0
    Punten
    0,00
    Lid sinds
    Laatst gezien
    Gebruik al teneerste MySQLi of PDO...
    0
    Berichten
    35.796
    Reputatie
    1
    Punten
    0,00
    Lid sinds
    Laatst gezien
    Staan er toevallig vreemde tekens in die teksten (als é, ö, ç, enzovoorts) waar het niet werkt?
    0
    Mikek

    Lid · Topicstarter

    Berichten
    3.000
    Reputatie
    0
    Punten
    0,00
    Lid sinds
    Laatst gezien
    Milan schreef:
    Error?

    Krijg ik niet
    Lennard schreef:
    Staan er toevallig vreemde tekens in die teksten (als é, ö, ç, enzovoorts) waar het niet werkt?
    Zal ik even bekijken

    // Ja, heb ze bij een pagina weggehaald en hij toont het bericht nu wel.
    Hoe kan ik dit op een betere manier oplossen?
    0
    Berichten
    118
    Reputatie
    0
    Punten
    0,00
    Lid sinds
    Laatst gezien
    Tip: Gebruik MySQLi of PDO.
    0
    Berichten
    35.796
    Reputatie
    1
    Punten
    0,00
    Lid sinds
    Laatst gezien
    Probeer eens htmlentities() in plaats van htmlspecialchars()?

    Mocht dat niet helpen zul je moeten debuggen om te kijken waar in je Parse() functie het fout gaat.
    0
    Mikek

    Lid · Topicstarter

    Berichten
    3.000
    Reputatie
    0
    Punten
    0,00
    Lid sinds
    Laatst gezien
    Lennard schreef:
    Probeer eens htmlentities() in plaats van htmlspecialchars()?

    Mocht dat niet helpen zul je moeten debuggen om te kijken waar in je Parse() functie het fout gaat.
    Htmlentities() werkt niet, ik zal de rest morgen proberen.
    Alvast bedankt!
    0
    Berichten
    35.796
    Reputatie
    1
    Punten
    0,00
    Lid sinds
    Laatst gezien
    Mikek schreef:
    Eerdere citaten tonen
    Lennard schreef:
    Probeer eens htmlentities() in plaats van htmlspecialchars()?
    Mocht dat niet helpen zul je moeten debuggen om te kijken waar in je Parse() functie het fout gaat.

    Htmlentities() werkt niet, ik zal de rest morgen proberen.
    Alvast bedankt!
    thumbsup
    Het gaat in ieder geval fout bij de character encoding, dus m.b.v. de functienaam waar het fout gaat en die term erbij moet je al een heel eind kunnen komen als je op Google wil zoeken, en anders roep je hier maar weer.
    0
    Berichten
    8.602
    Reputatie
    0
    Punten
    0,00
    Lid sinds
    Laatst gezien
    htmlentities($string, ENT_QUOTES, UTF-8);

    Probeer eens zo?
    0
    Berichten
    18.482
    Reputatie
    0
    Punten
    0,00
    Lid sinds
    Laatst gezien
    Het invoeren in de database kan ook een probleem zijn. Als je pagina ISO-8859-1 als charset heeft bij het invoeren en je voert htmlentities uit met UTF-8 werkt het alsnog niet. Als je rechtstreeks via phpMyAdmin het in de database zet wordt het helemaal niet omgezet voor het de database in gaat en werkt het ook niet
    0
    Mikek

    Lid · Topicstarter

    Berichten
    3.000
    Reputatie
    0
    Punten
    0,00
    Lid sinds
    Laatst gezien
    Milan schreef:
    htmlentities($string, ENT_QUOTES, UTF-8);

    Probeer eens zo?
    Werkt helaas nog niet.
    0
    Berichten
    35.796
    Reputatie
    1
    Punten
    0,00
    Lid sinds
    Laatst gezien
    Mikek schreef:
    Eerdere citaten tonen
    Milan schreef:
    htmlentities($string, ENT_QUOTES, UTF-8);
    Probeer eens zo?

    Werkt helaas nog niet.
    Doe eens debuggen dan om te kijken waar het fout gaat.
    0

    Jouw reactie

    Deel je idee, stel een vraag of help een ander verder.

    Editor laden…

    Praat mee met de One2xs-community.

    Inloggen om te reageren