Beste mensen,

Ik probeer een gastenboek te maken aan de hand van deze tutorail: http://www.html-site.nl/forum/topic/php-gastenboek-met-mysql-captcha-ubb-codes Nu werkt het op mijn test site waar ik hem op heb gemaakt perfect, ik krijg de berichtjes goed te zien en ze staan goed in de database! Tot dan toe eigenlijk niks aan de hand!

Nu maak ik op mijn .nl site van yourhosting een pagina aan die ik gastenboek noem. De codes zijn precies hetzelfde... maar hier wordt de tekst veranderd in tekens en letters: (Hieronder gekopieerd;


dvdtv
2015-04-02 20:57:52
D11i>b>]Denn1b]


dvdtv
2015-04-02 20:47:44
Ho1b>> <1> Waarom he1er11t ineen1 dan dat zou moeten?


dvdtv
2015-04-02 20:47:09
D11i>chtje! 


In de database staat de tekst wel goed geschreven.... kan iemand in de code zien hoe het komt dat het op de ene site wel werkt en op de andere niet? Beide tests zijn uitgevoerd in chrome!


<?php 
   session_start();
   include_once "config.php"; 
?>

<title>Gastenboek</title>
  <link href="/css/stylegastenboek.css" type="text/css" rel="stylesheet" />
  <script type="text/javascript" language="javascript">
    function showHide(shID) {
    if (document.getElementById(shID)) {
      if (document.getElementById(shID+'-show').style.display != 'none') {
        document.getElementById(shID+'-show').style.display = 'none';
        document.getElementById(shID).style.display = 'block';
      }
      else {
        document.getElementById(shID+'-show').style.display = 'inline';
        document.getElementById(shID).style.display = 'none';
        }
      }
    }
  </script>
  <script type="text/javascript">
    function reloadImg(id) {
      var obj = document.getElementById(id);
      var src = obj.src;
      var pos = src.indexOf('?');
    if (pos >= 0) {
      src = src.substr(0, pos);
    }
      var date = new Date();
      obj.src = src + '?v=' + date.getTime();
    return false;
    }
  </script>
  
  <?php
  // Gegevens ophalen uit de database en sorteren op id
  $sql = mysql_query("SELECT * FROM gastenboek ORDER BY datum DESC");
  if (mysql_num_rows($sql) == 0) {
    // Als er nog geen reacties geplaatst zijn:
    echo 'Er zijn nog geen reacties geplaatst, plaats als eerste een reactie.';
  } else {
    while($data = mysql_fetch_assoc($sql)) {
      // Als er wel reacties zijn geplaatst worden deze nu weergegeven:
  echo'<div class="bericht">
        <div class="info">
          <img src="avatar.jpg" alt="" /><br />
          '.htmlspecialchars(stripslashes($data['naam'])).'<br />
          '.htmlspecialchars(stripslashes($data['datum'])).'<br />
        </div>
        <div class="image">
          <img src="comment.png" alt="" />
        </div>
        <div class="tekst">
          '.ubb($data['bericht']).'<br /><br />
        </div>
      </div>
  ';    
    }
  }
?>

<div id="reactie">
    <h3>Reactie plaatsen</h3><br />
<?php
                  // Foutmeldingen + reactie plaatsen:
                if ($_SERVER['REQUEST_METHOD'] == 'POST') {
                    // Als er een veld niet ingevuld is
                    if (empty($_POST['naam']) || empty($_POST['security_code']) || empty($_POST['bericht']) || empty($_POST['email'])) {
                        echo '<div class="fout">Niet alle  velden zijn ingevuld.</div><br />';
                  } else {
                    if($_SESSION['security_code'] != $_POST['security_code']){
                      $code = $_SESSION['security_code'];
                      $mycode= $_POST['security_code'];
                      echo '<div class="fout">De code die je overtypte was incorrect.</div>';
                      unset($_SESSION['security_code']);
                    } else {
                      if(($_SESSION['security_code'] == $_POST['security_code']) && (!empty($_SESSION['security_code'])) && (mysql_query("INSERT INTO gastenboek (naam, email, bericht, datum, ip) VALUES ('".trim(mysql_real_escape_string($_POST['naam']))."', '".trim(mysql_real_escape_string($_POST['email']))."', '".trim(mysql_real_escape_string($_POST['bericht']))."', NOW(), '".mysql_real_escape_string($_SERVER['REMOTE_ADDR'])."')")) ) {
                        $code = $_SESSION['security_code'];
                          $mycode= $_POST['security_code'];
                        echo '<div id="succesvolgeplaatst">Je reactie is succesvol geplaatst! <a href="'. $_SERVER["PHP_SELF"] .'">Bekijk je reactie</a></div><br />';
                        unset($_SESSION['security_code']);
                      } else {
                      
                      }
                    }
                  }
                }
                ?>
<br />
        <form method="post" action="" name="form1">
            Naam:*<br />
            <input type="text" name="naam" maxlength="50" /><br /><br />

            Emailadres (niet gepubliceerd):*<br />
            <input type="text" name="email" maxlength="50" type="email" /><br /><br />

            Code overtypen:*<br />
            <img src="captcha.php" name="vertimg" id="vertimg"><br />
                <div id="newafb">
                    <a href="#" onclick="refreshimage()">Nieuwe afbeelding</a>
                </div><br />
            <input type="text" name="security_code"  /><br /><br />
    
            Bericht:*<br />
            <textarea name="bericht" id="tekst" rows="6" cols="37" maxlength="500"></textarea><br />
            UBB-codes zijn toegestaan
            <a href="#" id="example-show" class="showLink" onclick="showHide('example');return false;">
            <div class="what">Wat is dit?</div></a>
                <div id="example" class="show-hide">
                    <br />
                    Met UBB-codes kan je de volgende dingen doen:<br /><br />
                    [b]tekst[/b]  &raquo; <b>tekst</b><br />
                    [u]tekst[/u]  &raquo; <u>tekst</u><br />
                    [i]tekst[/i]  &raquo; <i>tekst</i><br />
                    [s]tekst[/s]  &raquo; <s>tekst</s><br /><br />
                <a href="#" id="example-hide" class="hideLink" onclick="showHide('example');return false;">(Verbergen)</a>
                </div>
            
        <br/><br/>
        <input type="submit" value="Reactie toevoegen" onclick="this.value='Reactie wordt geplaatst...';" />
        </form>
</div>


Alvast heel erg bedankt voor de gene die mij hiermee kan helpen? Want ik heb gekeken, gezocht maar kon niet vinden waarom ik twee resultaten kreeg bij twee hosts.

Groeten,
Dennis
volgens mij mis je ook nog een http-header waarin je aangeeft dat het unicode is.

[size=xsmall]Toevoeging op 02/04/2015 21:46:18:[/size]

stripslashes() stript zo gezegd slashes uit je tekst.

"foto\'s" wordt dan "foto's"

Alleen: waarom zou er in jouw database "foto\'s" staan???
Dat staat er ook niet... In de databse staat bijvoorbeeld:

Hoi allemaal,

Waarom heb ik nu ineens zon vreemd berichtje en is de tekst ineens anders dan dat zou moeten?


En dat wordt:

Ho1b>> <1> Waarom he1er11t ineen1 dan dat zou moeten? 


Dat en op de altervista site waar ik het teste werkte het wel...


[size=xsmall]Toevoeging op 02/04/2015 22:18:54:[/size]

Ik heb nu een ander example gebruikt! Deze werkt ook leuk en valt weer heel veel van te leren!

Reageren