captcha script voert querry uit terwijl de captcha niet correct is

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Paul prive

paul prive

18/06/2007 22:41:00
Quote Anchor link
este

ik heb dit script in elkaar gezet maar zit met het probleem dat de insert toch gebeurd ook al is de captcha niet correct hoe kan ik dit oplossen?
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
<?php
require_once('init.php');
require_once('header.php');

$message = array();
$redirect= $_POST['referer'];
if (md5($_POST['norobot']) == $_SESSION['randomnr2'])

{
// plaats hier php code voor geslaagde captcha
$validated = true;
  
    if($_POST['naam'] == ""){
        $message .="<p> Je naam moet ingevuld zijn</p>";
    }
else {
        $validated = false;
    }

    if($_POST['achternaam']== ""){
        $message .="<p> Je achternaam moet ingevuld zijn</p>";
        }
else {
        $validated = false;
    }

    if($_POST['email']== ""){
        $message .="<p> Je emailadres moet ingevuld zijn</p>";
        }
else {
        $validated = false;

        if($_POST['gebruikersnaam']== ""){
        $message .="<p> de gebruikersaam moet ingevuld zijn</p>";
        }
else {
        $validated = false;
    }

  
    if($_POST['paswoord']== ""){
        $message .="<p> Je paswoord moet ingevuld zijn</p>";
        }
else {
        $validated = false;
    }
        }

//vaste waarden
$naam      = $_POST['naam'];
$achternaam     = $_POST['achternaam'];
$newuser =" INSERT INTO GEBRUIKER (
                                    gebruikersnaam,  
                                    paswoord,
                                    naam,
                                    achternaam,
                                    email
                                 )
                            VALUES (
                                    '"
.mysql_real_escape_string($_POST['gebruikersnaam'])."',
                                    '"
.mysql_real_escape_string($_POST['paswoord'])."',
                                    '"
.mysql_real_escape_string($_POST['naam'])."',
                                    '"
.mysql_real_escape_string($_POST['achternaam'])."',
                                    '"
.mysql_real_escape_string($_POST['email'])."'
                                          )"
;
if(!$res = mysql_query($newuser))
{

    echo '<pre>';
    echo mysql_error();
    echo '</pre>';
}


else

{ // plaats hier php code voor gefaalde captcha

echo "voer het juiste getal in ";

    }
}

?>


alvast bedankt voor jullie hulp
 
PHP hulp

PHP hulp

25/11/2024 01:39:59
 
Arjan Schuurman

Arjan Schuurman

18/06/2007 23:02:00
Quote Anchor link
Vind je het gek als je hem pas bij de else op false zet?
 
Frank -

Frank -

18/06/2007 23:06:00
Quote Anchor link
Het gaat om dit stukje code:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?
if(!$res = mysql_query($newuser)){
    echo '<pre>';
    echo mysql_error();
    echo '</pre>';
}
else { // plaats hier php code voor gefaalde captcha
    echo "voer het juiste getal in ";
}

?>

Hier voer jij de INSERT-query uit en controleer je of deze is gelukt, FALSE of TRUE. Bij een FALSE is de query mislukt, syntax-fout, bij een TRUE roep jij dat de captcha niet goed is. Deze conclusie slaat helemaal nergens op!

Jij controleert nergens of de code correct is, dit kan dus ook nooit goed of fout zijn. Lijkt mij vrij logisch.

De INSERT-query zal vrijwel altijd lukken, tenzij je nog constraints op de kolommen hebt zitten. Daar valt zo niets over te zeggen, ik ken jouw datamodel niet.

Oplossing: Ga de juiste logica inbouwen.
 
Paul prive

paul prive

18/06/2007 23:36:00
Quote Anchor link
sorry Frank ik ben de draad kwijt heb zitten puzzelen maar het lukt me niet zou jij de correcte wijze voor mij op papier willen zetten
heel erg bedankt voor de moeite

Paul
 
Jan Koehoorn

Jan Koehoorn

18/06/2007 23:42:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
    if ($validated) {
        if (!$res = mysql_query ($newuser)) {
            echo 'Hier een foutmelding dat de query mislukt is';
        }

        else {
            echo 'Hier een melding dat de query correct is uitgevoerd';
        }
    }

    else {
        echo 'Hier een melding dat de invoer niet correct is';
    }

?>
 
Frank -

Frank -

18/06/2007 23:43:00
Quote Anchor link
Jouw structuur is nu alsvolgt:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?
if(controleer captcha){ // TRUE
  // doe andere controles


  if(!voer query uit en controleer of deze is gelukt){ // FALSE
    // query mislukt

  }
  else {
    // captcha fout
  }
}

?>

Die else die daar staat, hoort bij de eerste if en niet bij de 2e. Het verhaal van de captcha-fout, moet dus in een else komen te staan die je toevoegt aan de huidige code. De else die je nu al hebt, ga je vervangen door een mededeling dat de gegevens correct zijn opgeslagen.

Ps.
$naam = $_POST['naam'];
$achternaam = $_POST['achternaam'];
dit gooi je natuurlijk met bruut geweld richting de prullenbak! Je doet er niets mee en je vraagt om een hoop problemen. Wat wil je hiermee bereiken?
 
Arjan Schuurman

Arjan Schuurman

18/06/2007 23:53:00
Quote Anchor link
Maar als je tog bij elke if-statement (en else) een foutmelding teruggeeft, dan zeg je tog nooit dat het goed is.. of zit ik mis..
 
Frank -

Frank -

19/06/2007 00:09:00
Quote Anchor link
Arjan Schuurman schreef op 18.06.2007 23:53:
Maar als je tog bij elke if-statement (en else) een foutmelding teruggeeft, dan zeg je tog nooit dat het goed is.. of zit ik mis..
Met een if-else krijg je een TRUE of FALSE retour. Het is aan jou om te bepalen wat nu goed is en wat nu fout is. Het is aan te raden om altijd zowel een if als een else te gebruiken, dan is het duidelijk wat de status is. Het is vooral handig bij debuggen, daar waar je nu ook mee bezig bent.

Maar werk voor jezelf eerst eens een eenvoudig voorbeeldje uit en ga daarna de problemen met de captcha oplossen. Het is veel belangrijker dat je snapt hoe het werkt dan dat je een oplossing hebt die je niet snapt. Snappie?

Succes!
 
Jan Koehoorn

Jan Koehoorn

19/06/2007 00:53:00
Quote Anchor link
Jan Koehoorn schreef op 18.06.2007 23:42:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
    if ($validated) {
        if (!$res = mysql_query ($newuser)) {
            echo 'Hier een foutmelding dat de query mislukt is';
        }

        else {
            echo 'Hier een melding dat de query correct is uitgevoerd';
        }
    }

    else {
        echo 'Hier een melding dat de invoer niet correct is';
    }

?>
 
Paul prive

paul prive

19/06/2007 14:05:00
Quote Anchor link
Ik heb het kunnen oplossen op een iets andere manier (zal dit vanavond posten als ik thuis ben indien gewenst).

bedankt voor jullie hulp

Paul
 



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.