Jo jag vet att du svarade mig genom förra tråden Martine! Tack för det! Men jag lyckades inte trots ditt svar... Anledningen till att jag nu är här, är för att jag ansåg denna tråd mer relevant (php), och kanske därför får ett svar snabbare än att vänta på fel tråd. Så.. det var fel tråd från början, men nu är det rätt! Det är väl bra att man på eget initiativ behåller ordningen
Moderator får gärna flytta frågeställningen i andra tråden om jag gjort fel.
Hur som helst..
Haha ja på me luvan och pinga.. lol
Företaget spammar mina annonsörer via "svara-annons"-formulären. Jag vill kunna blocka flera utvalda ord samt spärra vissa e-postadresser från att skicka via formulären. Jag har som sagt fått till hjälp den koden jag skrev in här ovan, men det blir lik förbannat något som skiter sig, mailen skickas trots detta..
Får prova ett tag till.. Här är koden ialf, ska testa igen få se pontus!
Kod:
<?php
require_once('../includes/startup.inc.php');
if (is_form_submit('submit_form') && ($_SERVER['REMOTE_ADDR'] != 'xx.xxx.xxx.xxx'))
{
$class['ok'] = '';
$class['error'] = ' error';
$class['type_error'] = ' typeError';
$class['name'] = $class['ok'];
$class['email'] = $class['ok'];
$class['subject'] = $class['ok'];
$class['body'] = $class['ok'];
$values['name'] = strip_html(get_from_request('name', ''));
$values['email'] = strip_html(get_from_request('email', ''));
$values['subject'] = strip_html(get_from_request('subject', ''));
$values['body'] = strip_html(get_from_request('body', ''));
$valid_postback = true;
$postback_errors = array();
if (strlen($values['name']) == 0)
{
*$valid_postback = false;
*$class['name'] = $class['error'];
*array_push($postback_errors, $texts['advert_email_name_error']);
}
if (strlen($values['email']) == 0)
{
*$valid_postback = false;
*$class['email'] = $class['error'];
*array_push($postback_errors, $texts['advert_email_email_error']);
}
else if (is_invalid_email($values['email']))
{
*$valid_postback = false;
*$class['email'] = $class['type_error'];
*array_push($postback_errors, $texts['advert_email_email_type_error']);
}
if (strlen($values['subject']) == 0)
{
*$valid_postback = false;
*$class['subject'] = $class['error'];
*array_push($postback_errors, $texts['advert_email_subject_error']);
}
if (strlen($values['body']) == 0)
{
*$valid_postback = false;
*$class['body'] = $class['error'];
*array_push($postback_errors, $texts['advert_email_body_error']);
}
*
// anitspam check
* * * * *
if ($valid_postback)
{
*$antispam = new anitspam_class($db, $cfg);
*if (!$antispam->validate_log_post())
*{
* $valid_postback = false;
* array_push($postback_errors, $texts['general_antispam_error']);
*}
}
$_SESSION['temporary']['postback_errors'] = $postback_errors;
$_SESSION['temporary']['values'] = $values;
$_SESSION['temporary']['classes'] = $class;
if ($valid_postback)
osv...................................
Förresten!! Just innan ja posta hitta denna:
Kod:
<?php
$blockwords="xxxxxx";
if(!empty($blockwords)&&!empty($_POST)){$useBlocks=explode(",",$blockwords);foreach($useBlocks as $blockWord){foreach($_POST as $Name=>$Value){$Value=trim($Value);$Value=strtolower($Value);if(!empty($Value)&&strpos($Value,$blockWord)!==false){exit();}}}}?>
Det verka funka, är det en bra lösning? Dock skulle jag vilja att det såg ut som om mailen gick iväg... nu blir det exit.. Det vore ju bra om man iallfall kunde lura spammarna att tro det funkar, så de i alla fall slösar bort sin tid... hehe :P
Tack