Hallo ik heb een heel vaag probleem ik kan zelf ook niet zoveel uitleg geven omdat ik zelf ook geen idee heb hoe het komt dus daarom kom ik hier.

Ik leg het probleem even uit ik heb zelf een mooi gastenboek scriptje gemaakt dat gebruik maakt van OOP en FCKeditor. Op mijn eigen computer werkte het allemaal mega mooi maar op de server waar ik het zet veranderd hij het hele script ik weet zelf niet of het zo'n groot probleem is maar het script is nog wel leesbaar. Maar hij haalt alle enters eruit en zet er vage blokjes voor in de plaats. Het script werkt nog wel als hij er zin in heeft teminste.. Bij mij werkt hij onder IE maar niet onder Firefox. En bij andere mensen kan hij helemaal niet werken of hij pakt dan FCKeditor niet. Als hij bij mij onder firefox niet werkt krijg ik een hele vage text te zien ik laat hem even zien:

潊⁷潤牯›灁数灯&
#12576;ⴴㄱ〭‷愼栠敲&#
15718;㼢摥瑩ㄽ∶放楤&#1
5476;愯㰾牢㰾㹰楄⁴&#28
516;⁥歩椠湩整湲&#2979
7;攠灸潬敲⁲慭牡&#26656
;瑥眠牥瑫眠敥⁲敥
獮渠敩⁴楢界敧&#
8306;獴㱳瀯ാ㰊㹰畓&#13
923;愠灡敪㰡瀯
㰾牨䄾灰汥汦灡数
敮敭敤眠牥汥&#
8292;癯牥搠潯㩲䴠牡&#2
6996;湪漠⁰㐱ㄭⴱ㜰&#15
392;⁡牨晥∽政楤㵴&#1361
7;㸢摥瑩⼼㹡戼㹲&#
;嘾湡慤条椠⁳敧汢
步湥搠瑡愠灰汥汦
灡数敤眠牥汥⁤&
#30319;牥稠汵敬敮&#25965
;⁵潨牯⁴敭牥椠&
#25960;⁴潶杬湥敤瘠牥&
#27763;条㰮瀯㰾牨䄾灰
汥汦灡数敮敭&
#25956;眠牥汥⁤癯牥搠&
#28527;㩲䴠牡楴湪漠⁰&
#13361;ㄭⴱ㜰㰠⁡ 牨晥∽政楤㵴㐱㸢
摥瑩⼼㹡戼㹲瀼&#22078
;湡慤条椠⁳敧汢&#27493
;湥搠瑡
愠灰汥汦灡数敤
眠牥汥⁤癯牥稠汵
敬敮敭⁵潨牯&#
8308;敭牥椠敨⁴潶&#264
76;湥敤瘠牥汳条㰮&#28
719;㰾潦浲愠瑣潩㵮&#1
2066;慧瑳湥潢步瀮灨•&#
25965;桴摯∽佐呓㸢琼&#
25185;敬ਾउ琼㹲琼㹤&#26
964;整㩬⼼摴㰾摴㰾
湩異⁴祴数∽整瑸•
慮敭∽楴整≬㰾琯&#
15972;⼼牴ਾउ琼㹲琼&#159
72;潄牯㰺琯㹤琼㹤椼
灮瑵琠灹㵥琢硥≴&#
28192;浡㵥渢慡≭㰾琯&#
15972;⼼牴ਾउ琼㹲琼&#8
292;潣獬慰㵮㈢㸢搼&#3
0313;㰾湩異⁴祴数∽楨
摤湥•摩∽䍆敋楤&#28532
;ㅲ•慮敭∽䍆敋楤&#2853
2;ㅲ•慶畬㵥∢猠祴&#259
64;∽楤灳慬㩹潮敮•&#15
919;椼灮瑵琠灹㵥栢&#2
5705;敤≮椠㵤䘢䭃摥&#2
9801;牯弱彟潃普杩•慶&
#30060;㵥∢猠祴敬∽楤&#
28787;慬㩹潮
敮•㸯椼牦浡⁥摩∽
䍆敋楤潴ㅲ彟䙟慲
敭•牳㵣䘢䭃摥瑩&#29295
;支楤潴⽲捦敫楤&#28532
;⹲瑨汭䤿獮慴据乥
浡㵥䍆敋楤潴ㅲ愦
灭吻潯扬牡䜽獡整
扮敯≫眠摩桴∽〱&
#9520;•敨杩瑨∽〲
∰映慲敭潢摲牥∽&
#8752;猠牣汯楬杮∽潮&#
15906;⼼晩慲敭㰾搯癩&
#15422;琯㹤⼼牴㰾牢 ਾउ琼㹲琼⁤潣獬&#
24944;㵮㈢•污杩㵮挢湥&
#25972;≲㰾湩異⁴祴数&#
8765;畳浢瑩•慶畬㵥嘢&#
29285;瑳牵湥㸢⼼摴
㰾琯㹲⼼慴汢㹥&#12092
;潦浲

Dat krijg ik te zien als ik het probeer te laden als jullie het ook willen proberen of hij voor jullie wel werkt nodig ik jullie uit om op www.radio102fm.nl te kijken en op gastenboek te clicken.
Hij wil soms nog wel is anders werken als je direct naar het bericht gaat met www.radio102fm.nl/gastenboek.php

Groetjes van Martijn

p.s excuses voor mijn slechte zinsopbouw en e.v.t velen spellingsfouten.. Nederlands is niet echt mijn sterkste punt ..

EDIT: hij laat die text die ik zie bij gastenboek zonder enters zien hopenlijk is het nu opgelost
EDIT2: Niet opgelost dus al die vreemde tekens die ik bij Firefox krijgt vertaalt hij hier naar een hele hoop text dus ik moest ff nog wat vaker enteren
Lijkt mij een probleempje met htmlenties() of 1 van zijn vriendjes. Laat eens wat code zien die deze output oplevert.

<?php
include_once('includes.php');
include_once('FCKeditor/fckeditor.php');
$gb = new gastenboek();
$gb->hoeveel(6);
$gb->toevoegen();
$gb->balk();
$gb->edit();
$gb->printen();
?>

en het belangrijke deel van includes.php

<?php
class gastenboek
{
    function __construct()
    {
        if (!mysql_query('SELECT id FROM gastenboek'))
        {
            mysql_query("
			CREATE TABLE gastenboek (
  			id int(4) NOT NULL auto_increment,
  			naam varchar(30) default NULL,
  			bericht text default NULL,
  			datum varchar(15) default NULL,
  			titel varchar(255) default NULL,
  			ipadres varchar(20) default NULL,
  			deleted tinyint(1) default 0,
  			PRIMARY KEY  (id)
			) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=14 ;");
        }
        $query = mysql_query("SELECT ipadres FROM ban");
        if (mysql_num_rows($query) != 0)
        {
            while ($inf = mysql_fetch_row($query))
            {
                if ($i == "")
                {
                    $this->banzor .= "'".$inf[0]."'";
                    $i++;
                }
                else
                {
                    $this->banzor .= ",'".$inf[0]."'";
                }
            }
        }
        else
        {
            $this->banzor = "'666.666.666.666'";
        }
    }
    function hoeveel($hoeveel)
    {
        $this->aantal = $hoeveel;
    }
    function printen()
    {
        if ($_GET[pagina] == "" || $_GET[pagina] == '0')
        {
            $_GET[pagina] = 1;
        }
        $hvl = ($_GET[pagina] * $this->aantal) - $this->aantal;
        $sql = "SELECT * FROM gastenboek WHERE NOT userip IN($this->banzor) AND deleted = 0 ORDER BY id DESC LIMIT $hvl , $this->aantal";
        $query = mysql_query($sql) or die(mysql_error());
        $hvls = mysql_num_rows($query);
        if ($hvls != 0)
        {
            while ($inf = mysql_fetch_row($query))
            {
                echo $inf[4]." door: ".$inf[1]." op ".$inf[3];
                if ($_SERVER[REMOTE_ADDR] == $inf[5] && $this->edit == true)
                {
                    echo ' <a href="?edit='.$inf[0].'">edit</a>';
                }
                if ($this->admin == true)
                {
                    echo ' <a href="?deleted='.$inf[0].'">Delete bericht</a>';
                }
                if ($this->admin == true && $inf[5] != $_SERVER[REMOTE_ADDR])
                {
                    echo ' <a href="?ban='.$inf[5].'">Ban Ip</a>';
                }
                echo '<br>'.$inf[2];
                $oeps++;
                if ($oeps < $hvls)
                {
                    echo '<hr>';
                }
            }
            echo $this->balk;
        }
        else
        {
            echo 'Er is niks gevonden';
        }
        if ($this->lawl == true)
        {
            echo '<form action="'.$_SERVER[PHP_SELF].'" method="POST"><table>
		<tr><td>Titel:</td><td><input type="text" name="titel"></td></tr>
		<tr><td>Door:</td><td><input type="text" name="naam"></td></tr>
		<tr><td colspan="2">';
            $oFCKeditor = new FCKeditor('FCKeditor1');
            $oFCKeditor->BasePath = 'FCKeditor/';
            $oFCKeditor->Value = '';
            $oFCKeditor->ToolbarSet = 'Gastenboek';
            //$oFCKeditor->Config['CustomConfigurationsPath'] = '../myconfig.js';
            $oFCKeditor->Create();
            echo '</td></tr><br>
		<tr><td colspan="2" align="center"><input type="submit" value="Versturen"></td></tr></table></form>';
        }
    }
    function balk()
    {
            $sql = "SELECT id FROM gastenboek WHERE NOT userip IN($this->banzor) AND NOT deleted = 1";
            $query = mysql_query($sql) or die(mysql_error());
            $th = mysql_num_rows($query);
            if ($th > $this->aantal)
            {
                $ap = $th / $this->aantal;
                $ab = ceil($ap);
                if ($_GET[pagina] == "" && $_GET[pagina] == '0')
                {
                    $_GET[pagina] = 1;
                }
                $this->balk .= '<br><br>';
                for ($i = 1; $i <= $ab; $i++)
                {
                    $max = $_GET[pagina]+4;
                    $min = $_GET[pagina]-4;
					if ($i <= $max && $i >= $min){
					if ($i > $min && $i != 1)
                    {
                        $this->balk .= ' | ';
                    }
                    if ($i == $_GET[pagina])
                    {
                        $this->balk .= '<b>'.$i.'</b>';
                    }
                    else
                    {
                        $this->balk .= '<a href="?pagina='.$i.'">'.$i.'</a>';
                    }
                    }
                }
            }
        }
    
    function toevoegen()
    {
        $this->lawl = true;
        if ($this->lawl == true)
        {
            if ($_SERVER[REQUEST_METHOD] == POST)
            {
                if (isset($_POST[FCKeditor1]))
                {
                    if (!empty($_POST[naam]) && !empty($_POST[titel]) && !empty($_POST[FCKeditor1]))
                    {
                        $naam = stripslashes(htmlspecialchars($_POST[naam]));
                        $titel = stripslashes(htmlspecialchars($_POST[titel]));
                        $neuk = $_POST[FCKeditor1];
                        $datum = date('d-m-y');
                        $ipadres = $_SERVER[REMOTE_ADDR];
                        $sql = "INSERT INTO gastenboek(naam,bericht,datum,titel,userip)VALUES('".$naam.
                            "','".$neuk."','".$datum."','".$titel."','".$ipadres."')";
                        mysql_query($sql) or die(mysql_error());
                        /*echo '<br><br>Uw bericht is toegevoegd.<br>
                        Click <a href="">HIER</a> om uw bericht te bekijken.';*/
                    }
                    else
                    {
                        echo '<b>U bent vergeten iets in te vullen.</b><br><br>';
                        //Click <a href="">hier</a> om terug te gaan.<br><br>';
                    }
                }
                elseif (isset($_POST[FCKeditor2]))
                {
                    $sql = "UPDATE gastenboek SET bericht = '".$_POST[FCKeditor2]."' WHERE id='".$_POST
                        [id]."'";
                    if (mysql_query($sql) or die(mysql_error()))
                        ;
                    {
                        echo "<b>Het toevoegen is gelukt!</b><br><br>";
                        //Click <a href=''>hier</a> om terug te gaan.<br><br>";
                    }
                }
            }

            else
            {
                //echo '1';
                /*$this->toevoegen .= '<form action="'.$_SERVER[PHP_SELF].
                '" method="POST"><table>
                <tr><td>Titel:</td><td><input type="text" name="titel"></td></tr>
                <tr><td>Door:</td><td><input type="text" name="naam"></td></tr>
                <tr><td colspan="2">';
                $oFCKeditor = new FCKeditor('FCKeditor1') ;
                $oFCKeditor->BasePath = 'FCKeditor/';
                $oFCKeditor->Value = '';
                $oFCKeditor->ToolbarSet = 'Gastenboek';
                $oFCKeditor->Config['CustomConfigurationsPath'] = '../myconfig.js' ;
                $this->toevoegen1 .= '</td></tr><br>
                <tr><td colspan="2" align="center"><input type="submit" value="Versturen"></td></tr></table></form>';*/
            }
        }
    }
    function edit()
    {
        $this->edit = true;
        if (isset($_GET[edit]))
        {
            if (is_numeric($_GET[edit]))
            {
                $sql = "SELECT bericht,id FROM gastenboek WHERE id='".$_GET[edit].
                    "' AND userip = '".$_SERVER[REMOTE_ADDR]."'";
                $query = mysql_query($sql) or die(mysql_error());
                if (mysql_num_rows($query) == 1)
                {
                    $inf = mysql_fetch_row($query);
                    echo '<form method="POST" action="'.$_SERVER[PHP_SELF].'">';
                    $oFCKeditor = new FCKeditor('FCKeditor2');
                    $oFCKeditor->BasePath = 'FCKeditor/';
                    $oFCKeditor->Value = $inf[0];
                    $oFCKeditor->ToolbarSet = 'Gastenboek';
                    //$oFCKeditor->Config['CustomConfigurationsPath'] = '../myconfig.js';
                    $oFCKeditor->Create();
                    echo '<input type="hidden" name="id" value="'.$inf[1].'">
				<input type="submit" value="versturen"></form>';
                    exit;
                }
                echo '<b>Uw bericht bestaat niet of uw ipadres komt niet overeen.</b><br><br>';
            }
            else
            {
                echo '<b>Het ingevoerde id is geen getal.</b><br><br>';
            }
        }
    }
    function admin($rank)
    {
        if ($rank > 2)
        {
            $this->admin = true;
            if ($_SERVER[REMOTE_ADDR] == '127.0.0.1')
            {
                if (isset($_GET[ban]))
                {
                    $sql = "INSERT INTO ban(ipadres) VALUES('".$_GET[ban]."')";
                    if (mysql_query($sql) or die(mysql_error()))
                    {
                        echo '<b>Het is gelukt!!!</b><br><br><a href="'.$_SERVER[PHP_SELF].
                            '">Ga Terug</a> om het resultaat te zien<br>';
                    }
                }
                elseif (isset($_GET[deleted]))
                {
                    if (is_numeric($_GET[deleted]))
                    {
                        $sql = "UPDATE gastenboek SET deleted = 1 WHERE id = '".$_GET[deleted]."'";
                        if (mysql_query($sql) or die(mysql_error()))
                        {
                            echo '<b>Het is gelukt!!!</b><br><br>';/*<a href="'.$_SERVER[PHP_SELF].
                            '">Ga Terug</a> om het resultaat te zien<br>';*/
                        }
                    }
                    else
                    {
                        echo '<b>Het opgegeven nummer is geen getal!</b><br><br>';
                    }
                }
            }
        }
    }
}
?>

Niet op de dingen letten die ik met // en /* */ weg gehaald heb ik wist nog niet zeker of ik die stukjes text nog nodig haald dus dan doe ik het meestal op die manier

EDIT: even <?php en ?> erbij gezet
datum varchar(15) default NULL,

En sinds wanneer is een datum een string? Een datum sla je op in een DATE, dus in het formaat yyyy-mm-dd.

Verder staat het script stijf van de fouten en gebreken, zet maar eens de error_reporting op het hoogste niveau en toon de fouten ook daadwerkelijk.

Succes, dit is teveel voor mij, opnieuw scripten gaat sneller dan debuggen.
error_reporting() staat ook op het hoogst en geeft 0 errors

en die van DATE is gwn een beginners foutje dat kan ik zo veranderen
error_reporting() staat ook op het hoogst en geeft 0 errors
Je hoort op z'n minst 50 notices te krijgen.

En je zal toch iets met htmlentities() of htmlspecialchars() ofzo fout hebben gedaan.
hehe oeps :$ ik had error_reporting(E_ALL & E_NOTICE); op error_reporting(E_ALL & ~ E_NOTICE); staan ..

Maar PHPerik hoe verklaar je dan dat hij op mijn eigen server(computer) het zonder fouten doet?
Ik mag nu officieel bumpen.

Ik heb het hele script opnieuw geschreven en error_reporting staat goed en er zijn geen notices meer, maar nu krijg ik weer met firefox weer die vage tekens. En ik was benieuwd of jullie dat ook hadden. Kijk op www.radio102fm.nl en dan op gastenboek clicken dan krijg je de magie te zien of de vage tekens..

EDIT: ik zet het scripte er ff bij
<?php
error_reporting(E_ALL & E_NOTICE);
$datanaam = "****";
$inlogn = "****";
$passw = "****";
$tabel = "****";
mysql_connect($datanaam,$inlogn,$passw) or die(mysql_error());
if (!mysql_select_db($tabel))
{
$sql = "CREATE DATABASE $tabel";
mysql_query($sql) or die(mysql_error());
}
class gastenboek {
public $aantal = '5';
public $ipbanned = '666.666.666.666';
public $oeps = '';
public $query = '';
function __construct (){
if (!isset($_GET['pagina'])){
$this->pagina = '1';
}
else {
$this->pagina = $_GET['pagina'];
}
}
function toevoegen (){
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
if (isset($_POST['normal'])){
if (!empty($_POST['titel']) && !empty($_POST['naam']) && !empty($_POST['bericht'])){
$sql = "INSERT INTO gastenboek(titel,naam,bericht,userip)
VALUES ('".$_POST['titel']."','".$_POST['naam']."','".$_POST['bericht']."','".$_SERVER['REMOTE_ADDR']."')";
if(mysql_query($sql)){
echo '<b>Uw bericht is toegevoegd.</b><br />';
}
else {
echo '<b>Er is iets mis gegaan bij de sql '.$sql.' met de error: '.mysql_error().'</b><br />';
}
}
else {
echo 'Je bent iets vergeten in te vullen.';
}
}
elseif (isset($_POST['edit'])){
if (!empty($_POST['bericht'])){
$sql = "SELECT userip FROM gastenboek WHERE id = '".$_GET['edit']."'";
$query = mysql_query($sql) or die ($sql);
$inf = mysql_fetch_row($query);
if ($inf[0] == $_SERVER['REMOTE_ADDR']){
$sql = "INSERT INTO gastenboek(bericht) VALUES('".$_POST['bericht']."')";
if(mysql_query($sql)){
echo '<b>Uw bericht is toegevoegd.</b><br />';
}
else {
echo '<b>Er is iets mis gegaan bij de sql '.$sql.' met de error: '.mysql_error().'</b><br />';
}
}
}
}
}
elseif (isset($_GET['edit'])){
$this->toevoegen = '<form action="" method="POST"><table>
<tr><td colspan="2"><textarea cols="40" rows="4" name="bericht"></textarea></td></tr><br>
<tr><td colspan="2" align="center"><input type="submit" value="Versturen" name="edit"></td></tr></table>';
}
else {
$this->toevoegen = '<form action="" method="POST"><table>
<tr><td>Titel:</td><td><input type="text" name="titel"></td></tr>
<tr><td>Door:</td><td><input type="text" name="naam"></td></tr>
<tr><td colspan="2"><textarea cols="40" rows="4" name="bericht"></textarea>
</td></tr><br>
<tr><td colspan="2" align="center"><input type="submit" value="Versturen" name="normal"></td></tr></table></form>';
}
}
function balk() {
$sql = "SELECT id
FROM gastenboek";
$query = mysql_query($sql) or die(mysql_error());
$th = mysql_num_rows($query);
if ($th > $this->aantal) {
$ap = $th / $this->aantal;
$ab = ceil($ap);
$this->balk .= '<br /><br />';
for ($i = 1; $i <= $ab; $i++) {
$max = $this->pagina+4;
$min = $this->pagina-4;
if ($i <= $max && $i >= $min){
if ($i > $min && $i != 1) {
$this->balk .= ' | ';
}
if ($i == $this->pagina) {
$this->balk .= '<b>'.$i.'</b>';
}
else {
$this->balk .= '<a href="?pagina='.$i.'">'.$i.'</a>';
}
}
}
}
else {
$this->balk = '';
}
}
function printen() {
if (!isset($_GET['edit'])){
$hvl = ($this->pagina * $this->aantal) - $this->aantal;
$sql = "SELECT * FROM gastenboek
ORDER BY id DESC LIMIT $hvl , $this->aantal";
$query = mysql_query($sql) or die (mysql_error());
$tellen = mysql_num_rows($query);
if ($tellen > '0'){
while ($inf = mysql_fetch_row($query)){
$titel = htmlspecialchars(stripslashes($inf[4]));
$naam = htmlspecialchars(stripslashes($inf[1]));
$bericht = htmlspecialchars(stripslashes(nl2br($inf[2])));
echo $titel.' Door:'.$naam;
if ($_SERVER['REMOTE_ADDR'] == $inf[5]){
echo '<a href="?edit='.$inf[0].'">edit</a>';
}
echo '<br />'.$bericht;
$this->oeps++;
if ($this->oeps < $tellen){
echo '<hr>';
}
}
}
else {
echo 'Er staan nog geen berichting in het gastenboek.<br />
Misschien word het tijd dat jij een berichtje plaatst?<br><br>';
}
echo '<br />'.$this->balk.'<br />';
}
echo $this->toevoegen;
}
}
?>
Ik zie chineese tekens. Heb je je karakterset in je database wel op UTF-8 Unicode (utf8) staan?

Reageren