Frågan 22 juni 2006 15:37 #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?
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
P Pedda Medlem sedan juni 2000 6 031 inlägg 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.
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
P Pedda Medlem sedan juni 2000 6 031 inlägg Det är i nygast.php som kontrollen ska ske.
Såhär ser nygast.php ut
https://www.yeahsomeday.se/nygast.ace
var kan man sätta in koden?
P Pedda Medlem sedan juni 2000 6 031 inlägg 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
// 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
P Pedda Medlem sedan juni 2000 6 031 inlägg $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 {
Nu funkar det:D Tack så mycket
P Pedda Medlem sedan juni 2000 6 031 inlägg Ä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 {