Heb een PHP gastenboek maar wanneer je enter gebruikt geeft die wanneer het bericht geplaatst is een raar enter teken, namelijk }}

Weet iemand hoe ik dit kan verhelpen, ook geeft die // waneer je aanhalingstekens gebruikt.

http://www.daanooms.nl/gastenboek.php
voor de enter kan je dit doen

<?
$bericht = 'de tekst die in de db/ bestand staat';

$bericht = str_replace("{{","<br>",$bericht);

echo $bericht; // nu worden {{ omgezet naar <br>
?>
Ja ok, maar dat lijkt me meer een gevolg aanpakken. Ik hoop dat er iemand is die de oorzaak weet van deze rare tekens en deze kan aanpakken.
wil je dan ff het script hiet posten anders kunnen wij nog niks

<?
  $amount=50;

  if ($_GET['action']=='write') {
    $file=fopen('gastenboek.txt','a');
    $message=str_replace("\r",'',$message);
    $message=str_replace("\n",'{{',$_GET['message']);
    fwrite($file,$message."\n");
    fclose($file);
    header('location: gastenboek.php?action=read&start=0');
  }

  $start=(isset($_GET['start'])?$_GET['start']:0);
  $gastenboek=Array();
  $gastenboek=file('gastenboek.txt');

?>

<style>
#message{
   width: 100%;
   height: 100px;
   font-family: Arial;
   overflow: auto;
}
TD, textarea {
font-family:Arial;
font-size: 1em;
} 
</style>


<HTML>
  <HEAD>
    <TITLE>Gastenboek</TITLE>
    <!--
      Gebruik de volgende script tag als je het SUR-script van CoR.nl wilt gebruiken

      <SCRIPT language="JavaScript" src="sur.js" type="text/javascript"></SCRIPT>

      Verwijder dan ook de twee slashes (//) in de onLoad van de BODY-tag
    -->
    <SCRIPT language="JavaScript">
    function validate(form) {
      if (form.name.value=="") {
        alert("Vul je naam in");
        return false;
      } else if (form.message.value=="") {
        alert("Vul je bericht in");
        document.getElementById('message').focus();
	return false;
      }
    }
    </SCRIPT>
  </HEAD>
  
<body onload="document.getElementById('message').focus()" topmargin="40" background="/images/backgrnd1.gif" leftmargin="20" topmargin="40">

<center>

<TABLE width="100%" cellspacing="0" cellpadding="0">
  <tr><td align="center"><INPUT TYPE=button VALUE="Button"
    onClick="location.href='index.htm'" style="font-family: Arial" title="Go to the main page">
  </td></tr>
</TABLE>

<img border="0" src="images/spacer.gif" width="1" height="25">

<TABLE width="748" style="border-style:solid; border-width:1; border-collapse: collapse" cellpadding="20" cellspacing="0" id="AutoNumber1" bordercolor="#000000" bgcolor="#FFFFFF">
  <TR><TD class="conttd">
    <FORM action="gastenboek.php" method="GET" onSubmit="return validate(this);">
      <INPUT type="hidden" name="action" value="write">
      <TEXTAREA name="message" id="message" cols="85" rows="5" style="border-collapse: collapse; border: 0px solid #000000;"></TEXTAREA></TD></TR>
      <tr><td align="right"><INPUT type="submit" style="font-family: Arial" size="3" value="Verstuur" title="Klik hier om je bericht te plaatsten"></TD></TR>	    
    </FORM>
  </TD></TR>
</TABLE>      
    
<img border="0" src="images/spacer.gif" width="1" height="20">
   
<TABLE width="100" cellspacing="0" cellpadding="0">
  <tr><td><img border="0" src="images/spacer.gif" width="1" height="20"></td></tr>   
    <tr>
      <td style="border-style:solid; border-width:1; border-collapse: collapse" bordercolor="#000000" bgcolor="#FFFFFF">        
        <CENTER>
          <?
            if ($start>0) echo '<A href="gastenboek.php?start='.max(0,$start-$amount).'"style="text-decoration: none"><</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';
            if ($start+$amount<sizeof($gastenboek)) echo ' <A href="gastenboek.php?start='.($start+$amount).'"style="text-decoration: none">></A>';
          ?>
        </CENTER>    
      </TD>
   </TR>    
</TABLE>      

        
<img border="0" src="images/spacer.gif" width="1" height="20">

<TABLE width="748" cellspacing="0" cellpadding="20" style="border-style:solid; border-width:1; border-collapse: collapse" bordercolor="#000000" bgcolor="#FFFFFF">
  <tr>
   <td>
    <TABLE BORDER= "0" cellspacing="0" cellpadding="0" style="font-family:Arial;" "border-style:none border-collapse: collapse" bgcolor="#FFFFFF">  
     <tr>
       <td>
        <?
          $gastenboek=array_reverse($gastenboek);
          for ($i=$start;$i<$start+$amount && $i<sizeof($gastenboek);$i++) {
           list($name,$email,$date,$url,$message)=explode('|||',$gastenboek[$i]);
            $message=str_replace('{{',"\n",$message);
            echo '<TR><TD>'.($email!=""?'<A href="mailto:'.$email.'">'.$name.'</A>':$name).'</B></TD><TD align="right"></B> </FONT> '.$date.'</B></P></TD></TR>'."\n";
            echo ($url!=""?'<TR><TD colspan="2"><A href="'.$url.'" target="_blank">'.$url.'</A></TD></TR>':'')."\n";
            echo '<TR><TD colspan="2"><SPAN class="SUR">'.str_replace("\n",'<BR>' ,htmlspecialchars($message)).'</SPAN></TD></TR>'."\n";
            echo '<TR><TD colspan="2"><HR></TD></TR>'."\n";
          }
        ?>
       </td>
      </tr>
     </TABLE>
   </td>
  </tr>
</TABLE>   

<TABLE width="100" cellspacing="0" cellpadding="0">
  <tr><td><img border="0" src="images/spacer.gif" width="1" height="20"></td></tr>   
   <tr>
    <td style="border-style:solid; border-width:1; border-collapse: collapse" bordercolor="#000000" bgcolor="#FFFFFF">        
     <CENTER>
        <?          
	  if ($start>0) echo '<A href="gastenboek.php?start='.max(0,$start-$amount).'"style="text-decoration: none"><</A>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';
          if ($start+$amount<sizeof($gastenboek)) echo ' <A href="gastenboek.php?start='.($start+$amount).'"style="text-decoration: none">></A>';
        ?>
      </CENTER>    
    </TD>
  </TR>    
</TABLE>

<img border="0" src="images/spacer.gif" width="1" height="40">

<TABLE width="100%" cellspacing="0" cellpadding="0">
  <tr>
    <td align="center"><INPUT TYPE=button VALUE="Button"
    onClick="location.href='index.htm'" style="font-family: Arial" title="Go to the main page">
    </td>
  </tr>
</TABLE>

<img border="0" src="images/spacer.gif" width="1" height="25">

</center>

</BODY>

</HTML>


$message=str_replace("\n",'{{',$_GET['message']);
dit is het probleem
wat je daar doet is : vervang alle \n (enter) voor {{
dus het klopt wel dat er alemaal {{ in je script staat en wat betreft "//" dat komt door htmlspecialchars
Zoek:

<?php
$message=str_replace("\r",'',$message);
$message=str_replace("\n",'{{',$_GET['message']);
?>

en vervang door:
<?php
$message = str_replace(array("\r\n","\r","\n"), '<br />', $_GET['message']);
?>

Alle soorten enters worden nu vervangen door een html enter.
Martijn bedankt, zo te zien geen rara Enter tekens meer. Heb net ontdekt dat je ook de hele regel weg kunt laten. Of had het een functie?

Dat van die htmlspecialchars, probleem met aanhalingstekens (hij zet dan een / voor de "), kan dat verholpen worden?
stripslashes();

Die haalt de \ weg (niet de / :P), bij " en ' en etc..

Reageren