Dit script werkt niet meer in mijn nieuwe Wamp Server in de vorige versie werkte het prima, maar nu met php 5.5 niet meer.

<?php
function klik(){

	echo "<script language=\"JavaScript\">
function addtext(veld,text) {
	text=' '+text+ ' ';
  	if (document.form.elements[veld].createTextRange) {
  		document.form.elements[veld].focus();
  		document.selection.createRange().duplicate().text = text;
   	} else {
		document.form.elements[veld].focus();
  		document.form.elements[veld].value +=text;
   	}
	}
</script>";
}


function buttons(){
echo '<input type="button" value="B" style="font-weight:bolt; width: 30px"  onClick="javascript:addtext("bericht","[b]text[/b]")">
<input type="button" value="I" style="font-weight:bolt; width: 30px"  onClick="javascript:addtext("bericht","[i]text[/i]")">
<input type="button" value="U" style="font-weight:bolt; width: 30px"  onClick="javascript:addtext("bericht","[u]text[/u]")">';
}

function smileys(){
echo '
 <a href="javascript:addtext("bericht",":B")"><img src="http://localhost/gastenboek/smileys/biggrin.gif" alt="biggrin" border="0"></a>
 <a href="javascript:addtext("bericht",";B")"><img src="http://localhost/gastenboek/smileys/blink.gif" alt="blink" border="0"></a>	
 <a href="javascript:addtext("bericht",":D")"><img src="http://localhost/gastenboek/smileys/cry.gif" alt="cry" border="0"></a>	
 <a href="javascript:addtext("bericht",";D")"><img src="http://localhost/gastenboek/smileys/happy.gif" alt="happy" border="0"></a>	
 <a href="javascript:addtext("bericht",":F")"><img src="http://localhost/gastenboek/smileys/huh.gif" alt="huh" border="0"></a>	
 <a href="javascript:addtext("bericht",";F")"><img src="http://localhost/gastenboek/smileys/mad.gif" alt="mad" border="0"></a>	
 <a href="javascript:addtext("bericht",":P")"><img src="http://localhost/gastenboek/smileys/mask.gif" alt="mask" border="0"></a>
 <a href="javascript:addtext("bericht",";P")"><img src="http://localhost/gastenboek/smileys/ohmy.gif" alt="ohmy" border="0"></a>
 <a href="javascript:addtext("bericht",":S")"><img src="http://localhost/gastenboek/smileys/rolleyes.gif" alt="rolleyes" border="0"></a>	
 <a href="javascript:addtext("bericht",";S")"><img src="http://localhost/gastenboek/smileys/sad.gif" alt="sad" border="0"></a>
 <a href="javascript:addtext("bericht",":T")"><img src="http://localhost/gastenboek/smileys/sleep.gif" alt="sleep" border="0"></a>
 <a href="javascript:addtext("bericht",";T")"><img src="http://localhost/gastenboek/smileys/smile.gif" alt="smile" border="0"></a>
 <a href="javascript:addtext("bericht",":V")"><img src="http://localhost/gastenboek/smileys/tong.gif" alt="tong" border="0"></a>
 <a href="javascript:addtext("bericht",";V")"><img src="http://localhost/gastenboek/smileys/unsure.gif" alt="unsure" border="0"></a>
 <a href="javascript:addtext("bericht",":W")"><img src="http://localhost/gastenboek/smileys/wacko.gif" alt="wacko" border="0"></a>
 <a href="javascript:addtext("bericht",";W")"><img src="http://localhost/gastenboek/smileys/wink.gif" alt="wink" border="0"></a>';
}
function ubb($bericht) {
$bericht = stripslashes($bericht);	
$bericht = nl2br($bericht);	
$bericht = str_replace("[img]","<img src=\"http://",$bericht);	
$bericht = str_replace("[/img]","\">",$bericht);
$bericht = stripslashes($bericht);
$bericht = str_replace("[b]","<b>",$bericht);
$bericht = str_replace("[/b]","</b>",$bericht);
$bericht = str_replace("[i]","<i>",$bericht);
$bericht = str_replace("[/i]","</i>",$bericht);
$bericht = str_replace("[u]","<u>",$bericht);
$bericht = str_replace("[/u]","</u>",$bericht);	

//De smilies staan hierzo
$bericht = str_replace(":B",'<img src="http://localhost/gastenboek/smileys/biggrin.gif" alt="biggrin">',$bericht);
$bericht = str_replace(";B",'<img src="http://localhost/gastenboek/smileys/blink.gif" alt="blink">',$bericht);
$bericht = str_replace(":D",'<img src="http://localhost/gastenboek/smileys/cry.gif" alt="cry">',$bericht);
$bericht = str_replace(";D",'<img src="http://localhost/gastenboek/smileys/happy.gif" alt="happy">',$bericht);
$bericht = str_replace(":F",'<img src="http://localhost/gastenboek/smileys/huh.gif" alt="eng">',$bericht);
$bericht = str_replace(";F",'<img src="http://localhost/gastenboek/smileys/mad.gif" alt="mad">',$bericht);
$bericht = str_replace(":P",'<img src="http://localhost/gastenboek/smileys/mask.gif" alt="mask">',$bericht);
$bericht = str_replace(";P",'<img src="http://localhost/gastenboek/smileys/ohmy.gif" alt="ohmy">',$bericht);
$bericht = str_replace(":S",'<img src="http://localhost/gastenboek/smileys/rolleyes.gif" alt="rolleyes">',$bericht);
$bericht = str_replace(";S",'<img src="http://localhost/gastenboek/smileys/sad.gif" alt="sad">',$bericht);
$bericht = str_replace(":T",'<img src="http://localhost/gastenboek/smileys/sleep.gif" alt="sleep">',$bericht);
$bericht = str_replace(";T",'<img src="http://localhost/gastenboek/smileys/smile.gif" alt="smile">',$bericht);
$bericht = str_replace(":V",'<img src="http://localhost/gastenboek/smileys/tong.gif" alt="tong">',$bericht);
$bericht = str_replace(";V",'<img src="http://localhost/gastenboek/smileys/unsure.gif" alt="unsure">',$bericht);
$bericht = str_replace(":W",'<img src="http://localhost/gastenboek/smileys/wacko.gif" alt="wacko">',$bericht);
$bericht = str_replace(";W",'<img src="http://localhost/gastenboek/smileys/wink.gif" alt="wink">',$bericht);

return $bericht;
}
?>

Niek Kasius op 04/06/2014 17:12:37

Als ik in deze invoer op een smiley of op een button klikte dan werd die in de textarea van het bericht geplaatst, maar dat doet het nu niet meer ik kan er wel op klikken maar er gebeurt niks

Dan lijkt het er op dat er iets met het aanroepen van de functie niet goed gaat. Die code heb ik nog niets gezien.

Het opmaken van een formulier via een tabel is overigens niet echt meer van deze tijd.
Dan lijkt het er op dat er iets met het aanroepen van de functie niet goed gaat. Die code heb ik nog niets gezien.

Dat is de klik functie die staat boven in het script een stukje Java script.

Ik vind het maar vreemd dat het altijd gewerkt heeft, en nu niet meer kan dat niet aan php5.5 liggen. dat daar dingen in veranderd zijn, wat ik bedoel is een php4 script werkt ook niet meer goed in php5.
Want er zijn natuurlijk wat dingen anders in php5.4 en php5.5.
En kan het niet aan die server liggen, dat die misschien geen Java ondersteund.
Ik weet het niet.
Ik zie geen JAVA-code....
JAVA is GEEN JavaScript, en verder draait dit client-side op de computer van de bezoeker.

Je gaf aan dat de klik-knoppen voor de smileys/ubb niet werkten. Is er recentelijk wat aangepast aan het formulier?
Niek Kasius op 05/06/2014 02:17:54

Dan lijkt het er op dat er iets met het aanroepen van de functie niet goed gaat. Die code heb ik nog niets gezien.

Dat is de klik functie die staat boven in het script een stukje Java script.

Maar hoe wordt die klik-functie aangeroepen?

Niek Kasius op 05/06/2014 02:17:54

Ik vind het maar vreemd dat het altijd gewerkt heeft, en nu niet meer kan dat niet aan php5.5 liggen. dat daar dingen in veranderd zijn, wat ik bedoel is een php4 script werkt ook niet meer goed in php5.
Als javascript niet doet wat je verwacht, zou ik het in eerste instantie niet in php zoeken.

Wordt debuggen om te achterhalen waar het fout gaat. Nu ligt het misschien aan Wamp, javascript, php-versie, ....... Het eerste wat ik zou zien te achterhalen is of met het klikken wel de javascript wordt aangeroepen (bv door de javascript code aan te passen en een alert te tonen). Op die manier kun je gerichter zoeken.
Ik heb in dat ubb script ook error report gezet maar krijg geen foutmeldig
En ik heb gisteren wat veranderd in de form om te kijken of dat iets uit maakt maar dat is niet zo.
Ik geef hier het hele posten script.

<?php
session_start();
ini_set('display_errors',1); // 1 == aan , 0 == uit
error_reporting(E_ALL | E_STRICT);
include("includes/config.php");
include("includes/ubb.php");

DEFINE('MIN_SECONDS', 10); // Minimumtijd dat gebruikt moet worden het formulier om te voltooien
$timenow = time();
$process = false;

if (isset($_SESSION['timecheck']['landtime']) && $_POST) {  
    
    $landtime = $_SESSION['timecheck']['landtime'];
    
    // Controleer de hoeveelheid tijd die nodig was
    if (($landtime + MIN_SECONDS) < $timenow) {
        // gepasseerde tijdscontrole
        $process = true;
    } else {
        // Mogelijk spam
        $process = false;
    }
    
    // Reset the timer
    $_SESSION['timecheck']['landtime'] = $timenow;

} else  {
    
    // Dit is de eerste pagina verzoek dus de sessievariabele ingesteld op de huidige tijd
    $_SESSION['timecheck']['landtime'] = $timenow;      
}

if($_SERVER['REQUEST_METHOD'] == 'POST' && !empty($_POST)) 
  {
 
	if(isset($_POST['bad_bot']) && $_POST['bad_bot'] !="") {
   header('location: sorry.php');
  }
 
    $aFouten = array(); 

    if($_POST['username'] == ''){ 
      $aFouten[] = 'Je hebt geen naam ingevuld'; 
      }else{
    $naam = $_POST["username"];
    if(!preg_match("/^[a-zA-Z0-9 ]*$/",$username)){
      $aFouten[] = "Alleen letters en of cijfers zijn toegestaan"; 
      }
    }
 
     if ($_POST['email'] == '') { 
        $aFouten[] = 'Je hebt geen email ingevuld'; 
       }else {
    $email = filter_var($_POST['email'], FILTER_SANITIZE_EMAIL);  
    if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
        $aFouten[] = 'je email adres is niet geldig';  
       }  
     }

 if($_POST['bericht'] == '') { 
       $aFouten[] = 'Je hebt geen bericht ingevuld';  
      }else{
      $bericht = $_POST["bericht"];      
    if (preg_match('/<a[\s]+[^>]*?href[\s]?=[\s\""\']+(.*?)[\""\']+.*?>([^<]+|.*?)?<\/a>/', $bericht)) {  
       $aFouten[] = 'Sorry!!! Maar in je bericht staan een of meerdere linken, Dus spam';
      }
    }
 
//include("includes/ip functie.php");

if(count($aFouten) != 0) 
{
?>

<br />
<br />
<table align="center" width="500px" border="1">
  <tr>
    <td align="center">
      <table border="0" width="100%" cellpadding="0" cellspacing="0">
        <tr>
          <td>
            <p class="p1">
              De volgende fouten zijn opgetreden:
            </p>
			<hr>
          </td>
        </tr>

		  <?php 
		    if (isset($_SESSION['timecheck']['landtime']) && $_POST) {  
            if ($process === true) {
                $message   = '';
                $alerttype = 'alert-succes';
               } 
			   else if ($process === false) {
                        $message = 'Sorry SpamBot.';  
                        $alerttype = 'alert-error';
               }
			   echo '<td '.$alerttype.'">';
               echo $message; header('Refresh: 1; url=index.php'); exit;
			   } 
			   ?>
			   <br />
          </td>
		</tr>
		<tr>
		  <td>
		    <?php
              for($Fi = 0; $Fi < count($aFouten); $Fi++) { 
                echo $aFouten[$Fi]; echo '<br /><br />'; header('Refresh: 2; url=index.php'); exit;
			   } 
			 }
			?>
		  </td>
        </tr>
        <tr>
          <td>
          </td>
        </tr>
      <table>
    </td>
  </tr>
</table>
<br />

<h4>Je bericht is succesvol toegevoegd. Je word nu terug gestuurd</h4>

<?php   
     header('Refresh: 2; url=index.php'); 
   
mysqli_query($con,"INSERT INTO berichten (id, 
                                          username, 
										  email,
										  bericht,
										  datum) 
                                  VALUES ('', 
	                                      '".mysqli_real_escape_string($con,$_POST['username'])."',
									      '".mysqli_real_escape_string($con,$_POST['email'])."',
										  '".mysqli_real_escape_string($con,$_POST['bericht'])."',
										  NOW())");
                                          }									  
										  ?>

<br />
<table align="center" width="500px" border="0" cellspacing="2" cellpadding="2">
<form name="form" method="post" action="">
	<tr>
	  <td><input style="display:none;" type="text autocomplete="off" name="bad_bot">
	  </td>
	</tr>
    <tr>
      <td align="left" width="120px">Naam<b> :</b></td><td align="left" width="300">
	    <input type="text" size="34" maxlength="40" name="username"></td>
    </tr>
    <tr>
    <tr>
      <td align="left">E_mailadres<b> :</b></td><td align="left">
	    <input type="text" size="34" maxlength="40" name="email"></td>
    </tr>
    <tr>
      <td align="left" valign="top">Bericht<b> :</b></td><td align="left">
	  <textarea rows="10" cols="50" name="bericht"></textarea></td>
    </tr>
    <tr>
      <td align="left"></td><td colspan="3" align="left"><?php echo klik(); smileys (); ?></td>
    </tr>	
	    <tr>
      <td align="left"></td><td align="left"><?php echo klik(); buttons (); ?>&nbsp;
        <input type="submit" name="submit" value="Posten">
        <input type="reset" name="Reset" value="Resetten"></td>
 </tr>
</form>
</table>

<?php
mysqli_close($con);
?>

</div>
<div id="footer">
<br />
<a href="http://localhost/gastenboek/index1.php">Terug</a>
</div>
Kan je het script even tussen code tags zetten?
Ik heb eerst mijn bericht getypt en daar onder de begin en eind code tags en daar tussen het script geplakt dat het nu alweer eens niet werkt ligt niet aan mij.
Ik had dat in mijn reactie op 04/06/2014 17:23:00: ook al eens, ik had het eerst gewoon getypt maar toen kwamen die haakjes niet in zicht. En toen heb ik wijzigen geklikt het tussen code gezet.
Ik denk dat het aan php5.5 ligt.
Want ik het nu met succes Xampp opnieuw geinstaleerd en heb het daarin geprobeerd, Maar ook daarin werkt het niet.
En ik had geprobeerd het met mysql te doen in plaats van mysqli, en daarin kreeg ik een melding dat ik daarin niet meer met mysql kan werken, en dat ik mysqli of pdo of zoiets moet gebruiken.
Ik had het geprobeerd zonder dat Timeblock en bad_bot,
En bericht veranderd in tekst in in de ubb en posten en in de database. maar dat maakte geen verschil

Reageren