webForumDet fria alternativet

Word ban i en konstig gästbok

PHP

11 svar · 723 visningar · startad av EnMiljon

Medlem sedan juni 20069 inlägg
Frågan#1

Hej! jag har ett problem grejen är att jag är inte så bra på php och jag har problem med massa abc123 bottar som vill sälja Viagra i min gästbok.

Jag har sätt att det finns en tråd där andra får hjälp med detta men jag satt hela natten igår och försökte sätta in de word ban koder dom fick tips om men jag fattar bara inte var jag ska sätta in dem.

gästboken är tagen från en tutorial och är uppdelad i:
mysql_functions.php
pagfunc.php
text_functions.php
admin.php
gastbok.php
nygast.php

o.s.v

såå jag vet inte alls vart jag ska sätta in koden:S

Nån som orkar förklara för mej?

Medlem sedan juni 20069 inlägg
#2

Om nån kan lista ut vilken av php dokumenten som koden ska vara i kan jag ju lägga upp den så ni kan se hur det ser ut där

Medlem sedan juni 20006 031 inlägg
#3

Sidan koden ska in på är den som ligger i action i formuläret. Alltså den sidan som man skickas till när man klickar på submit knappen.

Medlem sedan juni 20069 inlägg
#4

OKej För själva gästbokens index är gastbok.php och när man vill skriva in medelanden skickas man till nygast.php och sen när man submitar tror jag man skickas tillbaka till gastbok.php igen..

sidan gästboken ligger på är https://www.yeahsomeday.se så kanske det blir tydligare.

men jag lägger upp hela gästbok.php dokumentet.

https://www.yeahsomeday.se/gastbok.ace

Medlem sedan juni 20006 031 inlägg
#5

Det är i nygast.php som kontrollen ska ske.

Medlem sedan juni 20069 inlägg
#6

Såhär ser nygast.php ut

https://www.yeahsomeday.se/nygast.ace

var kan man sätta in koden?

Medlem sedan juni 20006 031 inlägg
#7
if (empty($HTTP_POST_VARS['namn'])||empty($HTTP_POST_VARS['meddelande'])){
      
      // Skicka tillbaka
      $HTTP_POST_VARS['meddelande'] = str_replace("<br />", "\n", $HTTP_POST_VARS['meddelande']);
      $tillbaka = array('1', $HTTP_POST_VARS['namn'], $HTTP_POST_VARS['hemort'], $HTTP_POST_VARS['epost'], $HTTP_POST_VARS['url'], $HTTP_POST_VARS['meddelande']);
    
    } else if(wordkontroll här) {
      // ......
    } else {
      
      // Spara inlägget
Medlem sedan juni 20069 inlägg
#8

Tusen Tack:D

Medlem sedan juni 20069 inlägg
#9

// Skicka tillbaka
$HTTP_POST_VARS['meddelande'] = str_replace("<br />", "\n", $HTTP_POST_VARS['meddelande']);
$tillbaka = array('1', $HTTP_POST_VARS['namn'], $HTTP_POST_VARS['hemort'], $HTTP_POST_VARS['epost'], $HTTP_POST_VARS['url'], $HTTP_POST_VARS['meddelande']);

 } else if $blocked_word = array ('abc123'); 
 if(in_array($text, $blocked_word)) { 
die('Får inte skriva in de orden!'); 

}
} else {

Alltså sådär dålig är jag och det funkar inte när jag skrev sådär:S

Medlem sedan juni 20006 031 inlägg
#10
$blocked_word = array ('abc123'); // överst på sidan

// Skicka tillbaka
$HTTP_POST_VARS['meddelande'] = str_replace("<br />", "\n", $HTTP_POST_VARS['meddelande']);
$tillbaka = array('1', $HTTP_POST_VARS['namn'], $HTTP_POST_VARS['hemort'], $HTTP_POST_VARS['epost'], $HTTP_POST_VARS['url'], $HTTP_POST_VARS['meddelande']);

} else if (in_array($HTTP_POST_VARS['meddelande'], $blocked_word)) {
        die('Får inte skriva in de orden!');
} else {
Medlem sedan juni 20069 inlägg
#11

Nu funkar det:D Tack så mycket

Medlem sedan juni 20006 031 inlägg
#12

Är du säker på att du vill använda in_array()?
Skulle rekommendera att du använder preg_match() istället.

} else if( preg_match('~('. implode('|', $blocked_word) .')~i', $HTTP_POST_VARS['meddelande'])) {
     die('Får inte skriva in de orden!');      
} else {
263 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)