Anti spam in formpje wil niet werken

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Richard

Richard

13/09/2006 16:40:00
Quote Anchor link
Ik heb dus een formpje gemaakt voor een site van een programma waarin je suggesties kan toevoegen.. gewoon in de database enzo.
Maar met anti-spam heb ik nog problemen. Ik heb een GDlib plaatje dinges uit een ander script gehaald maar het wil niet echt werken (test maar eens maar niet overdreven vaak ;-)).

http://dsorganize.com/preview/index.php?location=suggestions

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
$cSpam = 3; // Anti Spam, X amount of minutes
$r<?
$randcode
= mt_rand(100000, 999999);
$randcodesec = base64_encode($randcode);        
            
if(!empty($_POST['send']))
  {
// Er is op de knop 'verstuur e-mail' gedrukt...
  $pError = ''; // Een begin met de errors als die er zijn
  $pI = 0; // Deze telt het aantal errors.
  if(strlen($_POST['name']) < 2)
    {
$pError .= '- Please fill in your name<br />'; $pI++; }
  if(strlen($_POST['email']) < 6 || !ereg('@',$_POST['email']) || !ereg('.',$_POST['email']))
    {
$pError .= '- Please fill in your Email address<br />'; $pI++; }
  if(strlen($_POST['suggestion']) < 3)
    {
$pError .= '- Please fill in a suggestion<br />'; $pI++; }
  if(strlen($_POST['explanation']) < 10)
    {
$pError .= '- Please enter a explanation<br />'; $pI++; }
  if($_POST['userSecurityCode'] != base64_decode($_POST['SecurityCode']) && $notcomplete != "1")
    {
$pError .= '- Wrong security code<br />'; $pI++;; }
    
  if(!empty($pError))
    {
// Als er dan toch errors zijn..
    echo ($pI == 1) ? '<p class=\"red\">SUGGESTION NOT SUBMITTED</p>' : '<p class=\"red\">SUGGESTION NOT SUBMITTED</p>'; // even kijken of het meervoud of enkelvoud is.
    echo $pError; // echoën van de error(s)
    }
  else
    {
            $date = date("Y-m-d");
            $time = date("H:i:s");

            $insert = "INSERT INTO DSO_suggestions (id, name, email, suggestion, explanation, status, date) VALUES ('', '".$_POST['name']."', '".$_POST['email']."', '".$_POST['suggestion']."', '".$_POST['explanation']."', 'new', '".$date."')";
            mysql_query($insert)or die(mysql_error());
            
            echo "<p class=\"red\">SUGGESTION SUCCESFULLY SUBMITTED!</p>";
            setcookie('suggestions',1,time()+3*60);  
            $tijd = time();
            $insert2 = "INSERT INTO DSO_suggestions_flood (id, ip, time) VALUES ('', '".$ip."', '".$time."')";
            mysql_query($insert2)or die(mysql_error());
            
               $pShow = true; // formulier wordt niet weer getoond
    }
}

  // Kijken of er een waarde moet worden gegeven aan velden...
  $pName = (isset($_POST['name'])) ? $_POST['name'] : '';
  $pEmail = (isset($_POST['email'])) ? $_POST['email'] : '';
  $pSuggestion = (isset($_POST['suggestion'])) ? $_POST['suggestion'] : '';
  $pExplanation = (isset($_POST['explanation'])) ? $_POST['explanation'] : '';
  
  // kijken of het cookie bestaat, zoja dan wordt het formulier niet getoond.
  if(isset($_COOKIE['suggestions']))
    {
$pShow = true; echo '<p>You can only submit a suggestion once per 3 minutes.</p>'; }
    
  if(!isset($pShow))
    {
// het formulier als $pShow niet bestaat.
    ?>

    <form method="post" action="<?php echo $_SERVER["REQUEST_URI"]; ?>">
    
    <div class="contact_item">Name</div>
    <input class="contact_input" type="text" name="name" size="20" value="<?= $pName; ?>" />
    <div class="contact_item">Email</div>
    <input class="contact_input" type="text" name="email" size="20" value="<?= $pEmail; ?>" />
    <div class="contact_item">Suggestion</div>
    <input class="contact_input" type="text" name="suggestion" size="20" value="<?= $pSuggestion; ?>" />
    <div class="contact_item">Explanation</div>
    <textarea class="contact_input"  name="explanation" cols="40" rows="10"><?= $pExplanation; ?></textarea>
    <div class="contact_item">Security code (Anti-spam)</div>
    <img src="locations/gd.php?randcode=<?php echo $randcodesec; ?>" alt="Security Code" /> <input type="text" name="userSecurityCode" /><input type="hidden" name="SecurityCode" value="<?php echo $randcodesec; ?>" />
    <div class="contact_item">&nbsp;</div>
    <input class="contact_input" type="submit" value="Submit suggestion" name="send" /> <input class="contact_input" type="reset" value="Reset fields" />
    
    </form>
Gewijzigd op 01/01/1970 01:00:00 door Richard
 
PHP hulp

PHP hulp

17/11/2024 00:29:45
 
PHP Newbie

PHP Newbie

13/09/2006 16:42:00
Quote Anchor link
voeg even code tags toe, en kijk is naar mijn anti-spam script ;-)
 
Richard

Richard

13/09/2006 16:45:00
Quote Anchor link
Code text toegevoegd, misschien eerst even kijken of we dit kunnen oplossen? :) (probeer daarna jouw anti-flood script)
 
Robert Deiman

Robert Deiman

13/09/2006 16:47:00
Quote Anchor link
Wat is het probleem nu precies? Ik kan wel berichten toevoegen, ik moet alles invullen en alleen met de juiste securitycode wordt mijn item toegevoegd (alleen zit daar geen logische volgorde in ofzo)
 
Richard

Richard

13/09/2006 16:50:00
Quote Anchor link
als hij is toegevoegd en je drukt op f5 (of honderd x op f5) wordt hij gewoon weer toegevoegd
 
PHP Newbie

PHP Newbie

13/09/2006 16:52:00
Quote Anchor link
dus gebruik mijn anti-flooid script
 
Richard

Richard

13/09/2006 22:41:00
Quote Anchor link
ANti flood dus en niet je captcha?
 
PHP Newbie

PHP Newbie

13/09/2006 22:44:00
Quote Anchor link
idd
 
Simon

Simon

26/09/2006 23:53:00
Quote Anchor link
Die antiflood wil niet werken in een formulier van mij.. je kan nog steeds op f5 drukken en ik krijg dan tig emails :/
 
Jan Koehoorn

Jan Koehoorn

27/09/2006 00:02:00
Quote Anchor link
Maak een veld of een combinatie van velden in je DB UNIQUE. Dan regelt MySQL het voor je.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.