Checkbox check of hij is aangevinkt

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Gurdt Hooghoudt

Gurdt Hooghoudt

15/06/2011 13:22:38
Quote Anchor link
Beste PHP Hulp,

Ik heb nu een registratie script gevonden en bewerkt.
Maar ik loop tegen het volgende op, ik wil namelijk een check doen of de algemene voorwaardes is aangevinkt ja of nee.

maar waar zou ik
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php if (!$_POST['algemenevoorwaardes'])
{

 echo "U moet akkoord gaan met onze algemene voorwaardes als u zich wilt registreren.";
}
else{
 // Rest van je script
} ?>


nu heb ik tot nu toe dit:
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
<?php
if ( ($_SERVER['REQUEST_METHOD'] == "POST") && ($_POST['signup']))
{

    $signup_sql = mysql_query("INSERT INTO leden VALUES('','".$_POST['username']."','".md5($_POST['password'])."','".$_POST['voornaam']."','".$_POST['tussenvoegsel']."','".$_POST['achternaam']."','".$_POST['straatnaam']."','".$_POST['postcode']."','".$_POST['plaats']."','".$_POST['telefoonnr']."','".$_POST['email']."','','','".date('d-m-Y H:i')."','".$_SERVER['REMOTE_ADDR']."')");
    if ($signup_sql == TRUE) {
    echo "Dit lid is succesvol aangemeld";
}
else {
    echo "Error: Dit lid is niet succesvol aangemeld wegens: ".mysql_error();
}
}
else {
    echo "
        <form method=\"POST\" action=\"\">
    <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"35%\" id=\"table1\">
    <tr>
    <td width=\"143\">Gebruikersnaam: </td>
    <td>
    <p><input type=\"text\" name=\"username\" size=\"26\"></p>
    </td>
    </tr>
    <tr>
    <td width=\"143\">Wachtwoord: </td>
    <td>
    <p><input type=\"text\" name=\"password\" size=\"26\"></p>
    </td>
    </tr>
    <tr>
    <td width=\"143\">E-mail: </td>
    <td>
    <p><input type=\"text\" name=\"email\" size=\"26\"></p>
    </td>
    </tr>
    <tr>
    <td width=\"143\">Voornaam: </td>
    <td>
    <p><input type=\"text\" name=\"voornaam\" size=\"26\"></p>
    </td>
    </tr>
    <tr>
    <td width=\"143\">Tussenvoegsel: </td>
    <td>
    <p><input type=\"text\" name=\"tussenvoegsel\" size=\"26\"></p>
    </td>
    </tr>
    <tr>
    <td width=\"143\">Achternaam: </td>
    <td>
    <p><input type=\"text\" name=\"achternaam\" size=\"26\"></p>
    </td>
    </tr>
    <tr>
    <td width=\"143\">Straatnaam: </td>
    <td>
    <p><input type=\"text\" name=\"straatnaam\" size=\"26\"></p>
    </td>
    </tr>
    <tr>
    <td width=\"143\">Postcode: </td>
    <td>
    <p><input type=\"text\" name=\"postcode\" size=\"26\"></p>
    </td>
    </tr>
    <tr>
    <td width=\"143\">Plaats: </td>
    <td>
    <p><input type=\"text\" name=\"plaats\" size=\"26\"></p>
    </td>
    </tr>
    <tr>
    <td width=\"143\">Telefoon nr: </td>
    <td>
    <p><input type=\"text\" name=\"telefoonnr\" size=\"26\"></p>
    </td>
    </tr>
    <tr>
    <td width=\"143\">Algemene voorwaarde: </td>
    <td>
    <p><input name=\"algemenevoorwaardes\" type=\"checkbox\" value=\"\" /></p>
    </td>
    </tr>
    <tr>
    <td width=\"143\">&nbsp;</td>
    <td><input type=\"submit\" value=\"Verzenden\" name=\"signup\"></td>
    </tr>
    </table>
    </form>

    "
;
    }

?>
 
PHP hulp

PHP hulp

27/12/2024 08:46:32
 
- SanThe -

- SanThe -

15/06/2011 13:28:32
Quote Anchor link
Vóór de INSERT lijkt mij.

Script is lek => SQL-Injection.
Gebruik bij echo enkele quotes dat scheelt heel veel escapen van de dubbele html-quotes en het is veel overzichtelijker.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
// dus niet
echo "<form method=\"POST\" action=\"\">";
// maar
echo '<form method="POST" action="">';
?>
 
Gurdt Hooghoudt

Gurdt Hooghoudt

15/06/2011 14:13:48
Quote Anchor link
Waar zit de lek? want ik dacht dat ik eindelijk een veilige registratie script had gevonden?

Toevoeging op 15/06/2011 14:17:21:

Oja en als ik
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php if (!$_POST['algemenevoorwaardes'])
{

 echo "U moet akkoord gaan met onze algemene voorwaardes als u zich wilt registreren.";
}
else{ ?>


dan geeft hij een fout in Dreamweaver bij de laatste else?
 
- SanThe -

- SanThe -

15/06/2011 14:18:41
Quote Anchor link
VALUES('','".$_POST['username']."'... etc.
Je stopt de userinput direct in een query. Nooit doen. Óf checken of het exact is wat jij verwacht óf beveiligen met mysql_real_escape_string().

Toevoeging op 15/06/2011 14:20:22:

Fout? Welke fout?
 
Gurdt Hooghoudt

Gurdt Hooghoudt

15/06/2011 14:22:31
Quote Anchor link
Denk dat je niet een else na een else kan doen.. ?

Toevoeging op 15/06/2011 14:23:29:

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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
<?php
if ( ($_SERVER['REQUEST_METHOD'] == "POST") && ($_POST['signup']))
{

    if (!$_POST['algemenevoorwaardes'])
{

 echo "U moet akkoord gaan met onze algemene voorwaardes als u zich wilt registreren.";
}
else{
    
    $signup_sql = mysql_query("INSERT INTO leden VALUES('','".$_POST['username']."','".md5($_POST['password'])."','".$_POST['voornaam']."','".$_POST['tussenvoegsel']."','".$_POST['achternaam']."','".$_POST['straatnaam']."','".$_POST['postcode']."','".$_POST['plaats']."','".$_POST['telefoonnr']."','".$_POST['email']."','','','".date('d-m-Y H:i')."','".$_SERVER['REMOTE_ADDR']."')");
    if ($signup_sql == TRUE) {
    echo "Dit lid is succesvol aangemeld";
}
else {
    echo "Error: Dit lid is niet succesvol aangemeld wegens: ".mysql_error();
}
}
else {
    echo '
        <form method="POST" action="">
    <table border="0" cellpadding="0" cellspacing="0" width="35%" id="table1">
    <tr>
    <td width="143">Gebruikersnaam: </td>
    <td>
    <p><input type="text" name="username" size="26"></p>
    </td>
    </tr>
    <tr>
    <td width="143">Wachtwoord: </td>
    <td>
    <p><input type="text" name="password" size="26"></p>
    </td>
    </tr>
    <tr>
    <td width="143">E-mail: </td>
    <td>
    <p><input type="text" name="email" size="26"></p>
    </td>
    </tr>
    <tr>
    <td width="143">Voornaam: </td>
    <td>
    <p><input type="text" name="voornaam" size="26"></p>
    </td>
    </tr>
    <tr>
    <td width="143">Tussenvoegsel: </td>
    <td>
    <p><input type="text" name="tussenvoegsel" size="26"></p>
    </td>
    </tr>
    <tr>
    <td width="143">Achternaam: </td>
    <td>
    <p><input type="text" name="achternaam" size="26"></p>
    </td>
    </tr>
    <tr>
    <td width="143">Straatnaam: </td>
    <td>
    <p><input type="text" name="straatnaam" size="26"></p>
    </td>
    </tr>
    <tr>
    <td width="143">Postcode: </td>
    <td>
    <p><input type="text" name="postcode" size="26"></p>
    </td>
    </tr>
    <tr>
    <td width="143">Plaats: </td>
    <td>
    <p><input type="text" name="plaats" size="26"></p>
    </td>
    </tr>
    <tr>
    <td width="143">Telefoon nr: </td>
    <td>
    <p><input type="text" name="telefoonnr" size="26"></p>
    </td>
    </tr>
    <tr>
    <td width="143">Algemene voorwaarde: </td>
    <td>
    <p><input name="algemenevoorwaardes" type="checkbox" value="" /></p>
    </td>
    </tr>
    <tr>
    <td width="143">&nbsp;</td>
    <td><input type="submit" value="Verzenden" name="signup"></td>
    </tr>
    </table>
    </form>

    '
;
    }
}

?>


als ik hem zo doe en ik bekijk de site geeft hij DIRECT "U moet akkoord gaan met onze algemene voorwaardes als u zich wilt registreren." aan zonder dat ik het formulier heb gezien..
 
- SanThe -

- SanThe -

15/06/2011 14:24:44
Quote Anchor link
Gurdt Hooghoudt op 15/06/2011 14:22:31:
Denk dat je niet een else na een else kan doen.. ?


Nee, dat kan ook niet.
 
Gurdt Hooghoudt

Gurdt Hooghoudt

15/06/2011 14:27:50
Quote Anchor link
En ben nu wel erg benieuwd hoe ik nu mysql_real_escape_string toekan voegen.. Sorry voor mijn Beginners vragen, misschien had ik hem in de beginners forum moeten plaatsen :)
 
- SanThe -

- SanThe -

15/06/2011 14:29:59
Quote Anchor link
Gebruik het inspringen in je code duidelijk en consequent dan is alles veel duidelijker. Dit heb je nu:
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
<?php
if (...)
{

    if (...)
    {

         echo "U...";
    }

    else
    {
        $signup_sql = ...;
        if (...)
        {

            echo "...";
        }

        else
        {
            echo "Error:...";
        }
    }

    else
    {
        echo '<form ...';
    }
}

?>


En nu zie je direct dat er een 'else' verkeerd staat.
Gewijzigd op 15/06/2011 14:31:05 door - SanThe -
 
Gurdt Hooghoudt

Gurdt Hooghoudt

15/06/2011 14:32:44
Quote Anchor link
ja maar hoe los ik het op want heb al de ($_POST['algemenevoorwaardes']) weg gehaald en aan het eind pas een else gezet maar dat werkt ook niet ..
 
- SanThe -

- SanThe -

15/06/2011 14:46:01
Quote Anchor link
Niks aangepast, alléén de structuur.

Je moet zelf ook nog foutafhandeling inbouwen.
En let op dit:

- SanThe - op 15/06/2011 14:18:41:
VALUES('','".$_POST['username']."'... etc.
Je stopt de userinput direct in een query. Nooit doen. Óf checken of het exact is wat jij verwacht óf beveiligen met mysql_real_escape_string().


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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
<?php
$error
= '';
if (($_SERVER['REQUEST_METHOD'] == "POST") && ($_POST['signup']))
{

    if (!$_POST['algemenevoorwaardes'])
    {

        $error = "U moet akkoord gaan met onze algemene voorwaardes als u zich wilt registreren.";
    }

    else
    {
        $signup_sql = mysql_query("INSERT INTO leden VALUES('','".$_POST['username']."','".md5($_POST['password'])."','".$_POST['voornaam']."','".$_POST['tussenvoegsel']."','".$_POST['achternaam']."','".$_POST['straatnaam']."','".$_POST['postcode']."','".$_POST['plaats']."','".$_POST['telefoonnr']."','".$_POST['email']."','','','".date('d-m-Y H:i')."','".$_SERVER['REMOTE_ADDR']."')");
        if ($signup_sql == TRUE)
        {

            echo "Dit lid is succesvol aangemeld";
        }

        else
        {
            echo "Error: Dit lid is niet succesvol aangemeld wegens: ".mysql_error();
        }

        exit;
    }
}

if($error != '')
{

    echo $error;
}

echo '
<form method="POST" action="">
<table border="0" cellpadding="0" cellspacing="0" width="35%" id="table1">
<tr>
<td width="143">Gebruikersnaam: </td>
<td>
<p><input type="text" name="username" size="26"></p>
</td>
</tr>
<tr>
<td width="143">Wachtwoord: </td>
<td>
<p><input type="text" name="password" size="26"></p>
</td>
</tr>
<tr>
<td width="143">E-mail: </td>
<td>
<p><input type="text" name="email" size="26"></p>
</td>
</tr>
<tr>
<td width="143">Voornaam: </td>
<td>
<p><input type="text" name="voornaam" size="26"></p>
</td>
</tr>
<tr>
<td width="143">Tussenvoegsel: </td>
<td>
<p><input type="text" name="tussenvoegsel" size="26"></p>
</td>
</tr>
<tr>
<td width="143">Achternaam: </td>
<td>
<p><input type="text" name="achternaam" size="26"></p>
</td>
</tr>
<tr>
<td width="143">Straatnaam: </td>
<td>
<p><input type="text" name="straatnaam" size="26"></p>
</td>
</tr>
<tr>
<td width="143">Postcode: </td>
<td>
<p><input type="text" name="postcode" size="26"></p>
</td>
</tr>
<tr>
<td width="143">Plaats: </td>
<td>
<p><input type="text" name="plaats" size="26"></p>
</td>
</tr>
<tr>
<td width="143">Telefoon nr: </td>
<td>
<p><input type="text" name="telefoonnr" size="26"></p>
</td>
</tr>
<tr>
<td width="143">Algemene voorwaarde: </td>
<td>
<p><input name="algemenevoorwaardes" type="checkbox" value="" /></p>
</td>
</tr>
<tr>
<td width="143">&nbsp;</td>
<td><input type="submit" value="Verzenden" name="signup"></td>
</tr>
</table>
</form>
'
;
?>
Gewijzigd op 15/06/2011 14:47:40 door - SanThe -
 
Gurdt Hooghoudt

Gurdt Hooghoudt

15/06/2011 14:55:19
Quote Anchor link
-SanThe- allereerst super bedankt voor je hulp maar boven staande script krijg je de hele tijd de error: U moet akkoord gaan met onze alg... ookal vink je hem aan
 
- SanThe -

- SanThe -

15/06/2011 15:03:52
Quote Anchor link
Dit is ook geen nette check:
if (!$_POST['algemenevoorwaardes'])
Je kijkt nu of ie true of false is.
Maak er dit van:
if(!isset($_POST['algemenevoorwaardes']))
 
Obelix Idefix

Obelix Idefix

15/06/2011 15:43:24
Quote Anchor link
Kijk ook even op http://www.pfz.nl/forum/topic/4421-checkbox-check-vraag/ , waar ze je ook tips geven.
 
Gurdt Hooghoudt

Gurdt Hooghoudt

15/06/2011 15:51:02
Quote Anchor link
Daar was ik al op aan het kijken, maar bedankt ;)
 



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.