Controle goed gecodeerd?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Steven Hack

Steven Hack

24/05/2009 15:37:00
Quote Anchor link
Goedendag,

ik vroeg me even af of deze controle goed is (hij werkt):
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
<?php
    function check_field($naam, $field) {
        if (strlen($naam) < 3) {
            $error .= "- Your ".$field." should be atleast 3 characters long.";
            return false;
        }

        else {
            return true;
    }

    if ($_GET['send'] == "true") {
        $send = true;
        $error = 'A error occured when trying to send your mail. The following errors were found:<br>';
        $send = check_field($_POST['voornaam'], "first name");
        $send = check_field($_POST['achternaam'], "last name");
        $send = check_field($_POST['subject'], "subject");
        $send = check_field($_POST['message'], "message");
        $error .= '<br><br>Please try it again <a href="?page=contact">here</a>.';
?>

Oftewel, is dit netjes/slordig gescript? Just curious =)
Gewijzigd op 01/01/1970 01:00:00 door Steven Hack
 
PHP hulp

PHP hulp

18/04/2024 21:06:25
 
Hipska BE

Hipska BE

24/05/2009 15:55:00
Quote Anchor link
Uh? En dat werkt ofzo? :-O

Je zou beter vragen wat er wel juist is aan dit script ipv wat er niet goed is..
 
Steven Hack

Steven Hack

24/05/2009 16:01:00
Quote Anchor link
care to explain?

Of moet ik nu vragen wat er wel goed is? Want dan doe ik dat =P

Wat is er wel goed?
 
Hipska BE

Hipska BE

24/05/2009 16:15:00
Quote Anchor link
Welke waarde denk jij dat $send zou moeten hebben als een naam leeg is maar er is wel een bericht ingevuld..

En waar komt $error in je function vandaan? Die bestaat daar normaal gezien nog niet. (Tip: je kan 'global' gebruiken, maar dit is niet de netste oplossing)
 
Steven Hack

Steven Hack

24/05/2009 16:18:00
Quote Anchor link
$send wordt gewoon gebruikt om te kijken of hij door moet gaan of niet. Misschien heb ik iets te weinig laten zien:
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
<?php
        if (isset($_SESSION['contact'])) {
            if (time()-$_SESSION['contact'] < "300") {
                $error = "- You already sent a message not long ago. Please do not try to flood the services.";
                $send = false;
            }
        }

        if (!$send) {
            echo '<span class="posttitel">Contact</span>';
            echo '<div class="postcontent">';
            echo $error;
            echo '</div>';
        }

        else {
?>


Dat komt er nog na, en aangezien alles op 1 pagina gebeurt vond ik het niet nodig om een global te gebruiken.
 

24/05/2009 16:21:00
Quote Anchor link
Kijk dan nog maar eens hier naar: variables.scope
 
Hipska BE

Hipska BE

24/05/2009 16:23:00
Quote Anchor link
Dan zou ik alsnog graag antwoord krijgen van jou op volgende vraag:
Hipska schreef op 24.05.2009 16:15:
Welke waarde denk jij dat $send zou moeten hebben als een naam leeg is maar er is wel een bericht ingevuld..
 
Steven Hack

Steven Hack

24/05/2009 16:24:00
Quote Anchor link
@Karl: zal ik even naar kijken.

@Hipska: oh slim inderdaad, daar had ik niet aan gedacht. ik zet hem ook op true =P
 
Hipska BE

Hipska BE

24/05/2009 16:29:00
Quote Anchor link
Dus het is de bedoeling dat het dan true is?

OK sorry, dan heb ik niets gezegd. (Alleen dan dat ik vind dat dat onlogisch is :p )
 
Steven Hack

Steven Hack

24/05/2009 17:16:00
Quote Anchor link
Haha nee je had het wel goed.
Ik heb het nu zo gedaan:
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
<?php
    function check_field($naam, $field) {
        if (strlen($naam) < 3) {
            global $error, $send;
            $error .= "- Your ".$field." should be atleast 3 characters long.";
            $send = false;
            return false;
        }

        else {
            return true;
    }

    if ($_GET['send'] == "true") {
        $send = true;
        $error = 'A error occured when trying to send your mail. The following errors were found:<br>';
        $check = check_field($_POST['voornaam'], "first name");
        $check = check_field($_POST['achternaam'], "last name");
        $check = check_field($_POST['subject'], "subject");
        $check = check_field($_POST['message'], "message");
        $error .= '<br><br>Please try it again <a href="?page=contact">here</a>.';
?>

Reden dat ik hier een return geef is omdat ik het misschien nog ergens anders bij wil gebruiken later. Bedankt voor de scope tip trouwens karl!
Gewijzigd op 01/01/1970 01:00:00 door Steven Hack
 

24/05/2009 17:19:00
Quote Anchor link
Je hebt dus niks gelezen?
 
Steven Hack

Steven Hack

24/05/2009 17:23:00
Quote Anchor link
Jawel, had alleen het verkeerde toegevoegd. Was net aan het editen =P
 



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.