If $_POST is not empty?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Yesyah Deli

Yesyah Deli

28/04/2013 01:23:13
Quote Anchor link
Hallo,

Ik heb een geheime field in mijn form om te zorgen dat als spammers posten dat het niet in de database komt.
Dus wanneer je de field "robots" invuld wordt het niet gepost.
Nu heb ik wel zo dat de if empty functies het niet meer doen, dus wanneer ik alle fields leeg laat wordt het alsnog geplaatst.

Wie kan me helpen?
<input name="naam" type="text" id="naam" size="25" />
<textarea name="limitedtextfield" cols="30" rows="6" maxlength="250"></textarea>
<p class="spammers" id="pot">
Geheime field
<input name="robots" type="text" id="robots" class="robots" />
</p>
<input name="submit" type="submit" id="submit" value="REAGEER" />

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
<?                                 if(isset($_POST['submit'])){
                                            echo'<p>';
                                                if(empty($_POST['limitedtextfield'])){
                                                    echo'Geen bericht ingevuld.';
                                                }

                                                if(empty($_POST['naam'])){
                                                    echo'Geen naam ingevuld.';
                                                }

                                                if($_POST['robots']){
                                                    echo'Spammer!';
                                                }

                                                else {
                                                mysql_query("INSERT INTO `db` (naam,limitedtextfield) VALUES ('".$_POST['naam']."', '".$_POST['limitedtextfield']."'");
                                                    echo 'Gelukt!';
                                                }

                                            echo'</p>';
                                            }

                                            ?>
Gewijzigd op 28/04/2013 01:23:39 door Yesyah Deli
 
PHP hulp

PHP hulp

06/05/2024 07:34:33
 
Frank Nietbelangrijk

Frank Nietbelangrijk

28/04/2013 01:31:18
Quote Anchor link
controleer eerst of de request method POST is

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST'){
     // formulier is gepost
}
?>


daarna ga je controleren of je ook krijgt wat je wilt. dit noemen we validatie

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
if(strlen($_POST['naam']) < 2){
     echo 'Geen naam ingevuld.';
     $error = 1;
}

?>

vervolgens test je aan het eind van de validatie of er onjuistheden zijn waargenomen, zo niet dan ga je de gegevens verwerken, zo ja dan keer je terug naar het formulier

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
if(!$error){
     // verwerk forumlier en stop dit script
     exit;
}


// show formulier
?>
Gewijzigd op 28/04/2013 01:48:15 door Frank Nietbelangrijk
 
Eddy E

Eddy E

28/04/2013 07:25:19
Quote Anchor link
Probeer eens een ISSET() in plaats van een EMPTY().
 
- SanThe -

- SanThe -

28/04/2013 11:37:52
Quote Anchor link
Een <input> veld wordt ook gepost als ie leeg is.
 
Eddy E

Eddy E

28/04/2013 14:22:54
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
// als het VELD in het FORMULIER met de NAAM "robots" is bestaat en niet leeg is..
if(isset($_POST['robots'] AND !empty($_POST['robots']))
    {

    // spammer
    die("Spammer");
    }


?>
 
Yesyah Deli

Yesyah Deli

28/04/2013 17:39:38
Quote Anchor link
Bedankt voor de reacties het is me gelukt.
 



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.