Je kunt het beter bij het uitlezen doen...
Misschien heb je wel een keer iets als scheldwoord gerekend en is ie dat niet, dan staat ie censored in de db. Als je hem bij het eruithalen pas doet blijft ie gewoon in de database bestaan :)
Link gekopieerd
je kunt dit doen met [php]preg_match[/php] of [php]preg_match_all[/php] ;)
Link gekopieerd
veel makkelijker:
<?php
$tekst = "de tekst met scheldwoorden, die voor sterretjes vervangen worden";
$woorden = array('woorden','die','niet','mogen');
foreach($woorden as $woord) {
$tekst = str_replace($woord,"***",$tekst);
}
?>
Link gekopieerd
Kwou al zeggen, regex is vet, maar gebruik het alleen wanneer het nodig is, is namelijk is een stuk slomer dat een simpele string replace.
Link gekopieerd
:) als je het scriptje van niek copiert zorg dat je de typfout niet mee copiert
(->verbeterde code van niek!<-
<?php
$tekst = "de tekst met scheldwoorden, die voor sterretjes vervangen worden";
$woorden = array('woorden','die','niet','mogen');
foreach($woorden as $woord) {
$tekst = str_replace($woord,"***",$tekst);
}
?>
Link gekopieerd
Dizzy schreef op 27.03.2007 20:32
:) als je het scriptje van niek copiert zorg dat je de typfout niet mee copiert
(->verbeterde code van niek!<-
<?php
$tekst = "de tekst met scheldwoorden, die voor sterretjes vervangen worden";
$woorden = array('woorden','die','niet','mogen');
foreach($woorden as $woord) {
$tekst = str_replace($woord,"***",$tekst);
}
?>
Goed gezien :) Heb het aangepast.
Link gekopieerd
Baarr schreef op 27.03.2007 20:32
Kwou al zeggen, regex is vet, maar gebruik het alleen wanneer het nodig is, is namelijk is een stuk slomer dat een simpele string replace.En in dit geval kun je dus beter wel kiezen voor een regex, aangezien een str_replace niet voldoet.
Een eenvoudige str_replace vervangt namelijk ook dat 'scheldwoord' als het een onderdeel van een langer woord is. Dus ook van een woord dat eventueel wel een toegestane betekenis heeft.
Link gekopieerd
Dat ligt eraan, je kunt eventueel je string replace ook uitvoeren en checken op een spatie ervoor en erna. Of nog beter, ze inclusief spaties in de array zetten.
Als je echt complexe dingen gaat maken, dus ook checken of k-u-t gebruikt word of weet ik veel wat voor exotische zaken, dan is een regex wellicht beter.
Link gekopieerd
ik Heb het script geprobeerd te gebruiken maar het lukt me niet. kan iemand zeggen wat ik fout doe?
<?php
error_reporting(E_ALL);
include 'functions.php';
beginPage();
verbind();
print '<h3 align="center">Bekijk de onderwerpen:</h2>';
if(isset($_GET['verplaats_topic']) && isset($_SESSION['administrator']))
{
verplaats_topic((int) $_GET['topic_id'], (int) $_GET['forum_id']);
}
if(isset($_GET['close_topic']) && isset($_SESSION['administrator']))
{
if(!$rMySQLQuery = mysql_query("UPDATE `topics` SET `topic_locked` = '1' WHERE `topic_id` = '".$_GET['topic_id']."' LIMIT 1;"))
{
message_die();
}
@header('Location: view_forum.php?style='.$_GET['style'].'&forum_id='.$_GET['forum_id']);
}
if(isset($_GET['open_topic']) && isset($_SESSION['administrator']))
{
if(!$rMySQLQuery = mysql_query("UPDATE `topics` SET `topic_locked` = '0' WHERE `topic_id` = '".$_GET['topic_id']."' LIMIT 1;"))
{
message_die();
}
@header('Location: view_forum.php?style='.$_GET['style'].'&forum_id='.$_GET['forum_id']);
}
function get_user_info($iUserId)
{
if(!$rMySQLQuery1 = mysql_query("SELECT * FROM members WHERE member_id = '".$iUserId."'"))
{
message_die();
}
if(mysql_num_rows($rMySQLQuery1) == 0)
{
trigger_error('Invalid user ID given: <b>'.$iUserId.'</b>',E_USER_ERROR);
}
return mysql_fetch_assoc($rMySQLQuery1);
}
if(!isset($_GET['topic_id']))
{
die('<p align="center">Het commando \'topic_id\' ontbreekt!</p>');
}
if(!is_numeric($_GET['topic_id']))
{
die('<p align="center">Het commando \'topic_id\' moet een nummer zijn!</p>');
}
if(!isset($_GET['forum_id']))
{
die('<p align="center">Het commando \'forum_id\' ontbreekt!</p>');
}
if(!is_numeric($_GET['forum_id']))
{
die('<p align="center">Het commando \'forum_id\' moet een nummer zijn!</p>');
}
if(!$rMySQLQuery1 = mysql_query("SELECT topic_id,forum_id,topic_locked FROM topics WHERE topic_id = '".$_GET['topic_id']."' AND forum_id = '".$_GET['forum_id']."'"))
{
message_die();
}
if(mysql_num_rows($rMySQLQuery1) == 0)
{
die('<p align="center">Het onderwerp dat je zoekt bestaat niet! <a href="index.php" class="link">Index</a></p>');
}
if(!$rMySQLQuery2 = mysql_query("SELECT forum_naam,forum_id FROM forums WHERE forum_id = '".$_GET['forum_id']."'"))
{
message_die();
}
$aFetch = mysql_fetch_assoc($rMySQLQuery2);
print '<p align="center"><a href="index.php?style='.$_GET['style'].'" class="link">Forum Index</a> >> <a class="link" href="view_forum.php?style='.$_GET['style'].'&forum_id='.$_GET['forum_id'].'">'.stripslashes($aFetch['forum_naam']).'</a></p>';
if(!$rMySQLQuery3 = mysql_query("SELECT * FROM replys WHERE topic_id = '".$_GET['topic_id']."'"))
{
message_die();
}
print '<p align="center"><u> </u></p>';
print '<center><table border="0">';
while($aFetch = mysql_fetch_assoc($rMySQLQuery3))
{
$a_Fetch = mysql_fetch_assoc(mysql_query("SELECT member_id,member_username FROM members WHERE member_username = '".$aFetch['reply_poster']."'"));
$aUserInfo = get_user_info($a_Fetch['member_id']);
$aFetch['reply_poster'] = htmlspecialchars(stripslashes($aFetch['reply_poster']));
if(!$rMySQLQuery4 = mysql_query("SELECT member_handtekening,member_username,member_id,member_posts FROM members WHERE member_username = '".$aFetch['reply_poster']."'"))
{
message_die();
}
$aFetch2 = mysql_fetch_assoc($rMySQLQuery4);
settype($aFetch2['member_posts'],'integer');
$aFetch['reply_message']= str_replace('<','<',$aFetch['reply_message']);
$aFetch['reply_message']= str_replace('>','>',$aFetch['reply_message']);
$aFetch['reply_message']= nl2br(stripslashes($aFetch['reply_message']));
$aFetch['member_rank'] = '<b>'.get_user_rank($aFetch2['member_posts'],$aFetch['reply_poster']).'</b>';
$aFetch['reply_message']= str_replace(
array(':-)',':-(',':D',':P',';)'),
array('<img src="Images/blij.gif">','<img src="Images/sad.gif">','<img src="Images/YAY.gif">','<img src="Images/lol.gif">','<img src="Images/knipoog.gif">'),
$aFetch['reply_message']);
?>
<link href="css/tekst.css" rel="stylesheet" type="text/css" />
<style type="text/css">
<!--
body {
background-color: #000000;
}
a:link {
color: 66ff33;
}
a:visited {
color: 66ff33;
}
a:hover {
color: 0000ff;
}
a:active {
color: 0000ff;
}
body,td,th {
font-family: Arial, Helvetica, sans-serif;
font-size: 12px;
color: 66ff33;
}
-->
</style>
<tr><td> <?php
$tekst = 'reply_message';
$woorden = array(kut,lul,sukkel,eikel,mietje);
foreach($woorden as $woord) {
$tekst = str_replace($woord,"***",$tekst);
}
?>
<span class="tekst"><u>Gepost door: <a href='bekijk_profiel.php?style=<?php echo $_GET['style'] ?>&user_id=<?php echo $aFetch2['member_id'] ?>' class='link'>
<?php echo $aFetch['reply_poster'] ?></a> (<?php echo $aFetch['member_rank'] ?>)</u></span></td><td></td></tr><tr><td><span class="tekst"><font size='+1'><?php echo $aFetch['reply_message'] ?></font> </span> <hr></td></tr>
<tr><td class="tekst"><?php echo $aFetch2['member_handtekening'] ?></td></tr>
<span class="tekst"><?php print '<tr>'; if(isset($_SESSION['administrator'])) print '<td><input type="button" value="Close Topic" class="text" onclick="location = \'?style='.$_GET['style'].'&close_topic=1&topic_id='.$_GET['topic_id'].'&forum_id='.$_GET['forum_id'].'\'"> <input type="button" value="Open Topic" class="text" onclick="location = \'?style='.$_GET['style'].'&open_topic=1&topic_id='.$_GET['topic_id'].'&forum_id='.$_GET['forum_id'].'\'"></td><td>'.list_forum_ids().'</td>'; if(isset($_SESSION['gebruiker'])) print '<td><input type="button" class="text" value="Nieuw Topic" onclick="location = \'new_topic.php?style='.$_GET['style'].'\'"></td><td><input type="button" value="Reply" class="text" onclick="location = \'#reply\'"></td>'; if(isset($_SESSION['gebruiker']) && $_SESSION['gebruiker'] == $aFetch['reply_poster']) print '<td><input type="button" value="Bewerken" class="text" onclick="location =\'bewerk.php?forum_id='.$_GET['forum_id'].'&style='.$_GET['style'].'&reply_id='.$aFetch['reply_id'].'\'"></td>'; print '</tr>'; ?>
<?php
echo '<tr><td><u> </u></td></tr>';
}
echo '</table>';
print '<p align="center"><u> </u></p>';
$aFetch3 = mysql_fetch_assoc($rMySQLQuery1);
if($aFetch3['topic_locked'] == '1')
{
print '<center><strong>Topic gesloten.</strong>';
}
else
{
if(isset($_SESSION['gebruiker']))
{
echo '<a name="reply">';
include 'new_reply.php';
echo "</a>";
}
}
endHTML();
?>
</span>
Link gekopieerd
Wat gaat er mis? Krijg je ook foutmeldingen? Want die alleen al verstellen ons sneller wat er mis is dan zo'n heel script.
Probeer ook eens hetvolgende bovenaan je code te zetten (om fouten zichtbaar te maken)
<?php
error_reporting(E_ALL);
ini_set('display_errors', true);
?>
Link gekopieerd