Spamfilter för gästböcker osv. 1.0
Jag tror jag har lyckats göra en ganska bra funktion som förebygger spam istället för att använda sig av en ful captcha. Men jag skulle behöva hjälp/kritik på hur jag skulle kunna göra den bättre.
exempel på struktur:
<?php
function agent($browser) {
$useragent = $_SERVER['HTTP_USER_AGENT'];
return strstr($useragent, $browser);
}
function os($opersys) {
$oper = $_SERVER['HTTP_USER_AGENT'];
return strstr($oper, $opersys);
}
if(agent('Firefox') != FALSE) {
$browser = "<i>Firefox browser</i> \n";
if(os('Windows') != FALSE) {
$os = "<i>Windows</i> \n";
}
elseif(os('Linux') != FALSE) {
$os = "<i>Linux</i> \n";
}
elseif(os('MAC') != FALSE) {
$os = "<i>MAC OSX</i> \n";
}
else {
$os = "";
}
}
else if(agent('America Online Browser') != FALSE) {
$browser = "<i>AOL browser</i> \n";
$staus .= "<i>Windows</i> \n";
}
else if(agent('Opera') != FALSE) {
$browser = "<i>Opera browser</i> \n";
if(os('Windows') != FALSE) {
$os = "<i>Windows</i> \n";
}
elseif(os('Linux') != FALSE) {
$os = "<i>Linux</i> \n";
}
elseif(os('MAC') != FALSE) {
$os = "<i>MAC OSX</i> \n";
}
else {
$os = "";
}
}
else if(agent('Safari') != FALSE) {
$browser = "<i>Safari browser</i> \n";
if(os('Windows') != FALSE) {
$os = "<i>Windows</i> \n";
}
elseif(os('Linux') != FALSE) {
$os = "<i>Linux</i> \n";
}
elseif(os('MAC') != FALSE) {
$os = "<i>MAC OSX</i> \n";
}
else {
$os = "";
}
}
else if(agent('MSIE') != FALSE) {
$browser = "<i>Internet Explorer</i> \n";
if(os('Windows') != FALSE) {
$os = "<i>Windows</i> \n";
}
elseif(os('Linux') != FALSE) {
$os = "<i>Linux</i> \n";
}
elseif(os('MAC') != FALSE) {
$os = "<i>MAC OSX</i> \n";
}
else {
$os = "";
}
}
else {
$os = "User Agent not recognised. \n";
if(os('Windows') != FALSE) {
$os = "<i>Windows</i> \n";
}
elseif(os('Linux') != FALSE) {
$os = "<i>Linux</i> \n";
}
elseif(os('MAC') != FALSE) {
$os = "<i>MAC OSX</i> \n";
}
else {
$os = "N/A";
}
}
$referer = $_SERVER['HTTP_REFERER'];
if($referer || $browser || $os){
date_default_timezone_set('Europe/Stockholm');
if($_POST['name'] && $_POST['text'] != 'Meddelande'){
$name = $_POST['name'];
$text = $_POST['text'];
$time = mktime();
if($_POST['link'] != '' && $_POST['link'] != 'http://'){
$link = $_POST['link'];
}
else{
$link = '';
}
mysql_connect("localhost", "username", "password")or die("cannot connect server ");
mysql_select_db("gastbok")or die("cannot select DB");
mysql_query
("
INSERT INTO gb (name, message, link, time)
VALUES ('$name', '$text', '$link', '$time')
");
header ('Location: gastbok.php');
}
else{
header ('Location: gastbok.php?k=1');
}
}
else{
header('Location: gastbok.php');
}
?>