PHP MySQL vraag...

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 3 volgende »

Marciano Schildmeijer

Marciano Schildmeijer

22/09/2011 19:52:02
Quote Anchor link
Hallo iedereen,

Ik ben Marciano en ben begonnen met PHP.
Ik ben bezig met een registratie formulier, maar ik heb het volgende probleem. Ik check in het script of alles in ingevuld, en zo ja gaat hij naar de else, die dus alles in de database moet gooien. Ik heb het even gechecked met een echo, en hij gaat af, maar om een of andere reden komt er niks bij in de database.

Weet iemand een oplossing?

Bedankt alvast, Marciano

CODE:
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
<?php

if (isset($_POST['submit']))
{

    if (empty($_POST['username']))
    {

        echo "you forgot your username";
    }

    elseif (empty($_POST['firstname']))
    {

        echo "you forgot your first name";
    }

    elseif (empty($_POST['lastname']))
    {

        echo "you forgot your last name";
    }

    elseif (empty($_POST['email']))
    {

        echo "you forgot your email";
        
    }

    elseif (empty($_POST['confirmemail']))
    {

        echo "you forgot to confirm your email";
    }

    elseif ($_POST['email'] != ($_POST['confirmemail']))
    {

        echo "email and email confirm dont match";
    }

    elseif (empty($_POST['pass']))
    {

        echo "you forgot your password";
    }

    elseif (empty($_POST['confirmpassword']))
    {

        echo "you forgot to confirm your password";
    }

    
    elseif ($_POST['pass'] != ($_POST['confirmpassword']))
    {

        echo "pass and pass confirm dont match";
    }


    else
    {
        mysql_query("INSERT INTO users (username, wachtwoord, email) VALUES ('".$_POST['username']."', '".$_POST['pass']."', '".$_POST['email']."')");
        echo "created";
    }
    
}
 
PHP hulp

PHP hulp

21/11/2024 16:47:24
 
Tobias Tobias

Tobias Tobias

22/09/2011 20:28:06
Quote Anchor link
Je hebt geen fout-afhandeling: dat wil zeggen: Er is geen controle of de query geslaagd is.
Zet na de query eens:
echo mysql_error();
dit geeft eventuele foutmeldingen weer.

Meer info over foutafhandeling: hier
Gewijzigd op 22/09/2011 20:28:27 door Tobias Tobias
 
Jacco Brandt

Jacco Brandt

22/09/2011 20:28:59
Quote Anchor link
Je maakt geen database-verbinding?
 
Marciano Schildmeijer

Marciano Schildmeijer

22/09/2011 20:30:30
Quote Anchor link
Bedankt ik ga het proberen.

@Jacco
Die heb ik niet gekopieerd!



Toevoeging op 22/09/2011 20:32:12:

Oke dit is wat ik dus krijg:

Unknown column 'wachtwoord' in 'field list'

echt geen idee wat dit kan zijn.
 
Obelix Idefix

Obelix Idefix

22/09/2011 23:23:32
Quote Anchor link
M s op 22/09/2011 20:30:30:
Unknown column 'wachtwoord' in 'field list'

echt geen idee wat dit kan zijn.


Geen Engels gehad? Het veld wachtwoord bestaat niet in je database.
 
- SanThe -

- SanThe -

23/09/2011 02:19:40
Quote Anchor link
Script is lek => SQL-Injection.
 
Kees Schepers

kees Schepers

23/09/2011 10:17:15
Quote Anchor link
Nee daar heeft hij veel aan. Verwijs hem dan naar een manier of artikel om het op te lossen of wees wat uitgebreider. Anders kun je net zo goed niet posten.
 
Marciano Schildmeijer

Marciano Schildmeijer

23/09/2011 12:01:00
Quote Anchor link
@Obelix

Het veld wachtwoord bestaat wel in mijn database. Ik had zelf ook kunnen bedenken dat dat het probleem zou kunnen zijn, maar gek genoeg is dat het niet.

@ SanThe
Ik ben net met PHP begonnen en weet dat het niet optimaal is. Geef me dan informatie die ik wel kan gebruiken aub.
Gewijzigd op 23/09/2011 12:01:22 door Marciano Schildmeijer
 
- Ariën  -
Beheerder

- Ariën -

23/09/2011 12:03:35
 
Gerhard l

gerhard l

23/09/2011 12:04:49
Quote Anchor link
@Kees sorry, maar jou post voegt dan eigenlijk ook niets toe ;)

Maar @M S
alle informatie die je naar je database stuurt moet je beveiligen, omdat anders mensen van buitenaf je database kunnen infecteren.
In php kan je dan gebruik van mysql_real_escape_string(), in jou voorbeeld wordt dat dus:

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
<?php
mysql_query(
    "INSERT INTO
        users (
            username,
            wachtwoord,
            email
        )
        VALUES (
            '"
.mysql_real_escape_string($_POST['username'])."',
            '"
.mysql_real_escape_string($_POST['pass'])."',
            '"
.mysql_real_escape_string($_POST['email'])."'
        )
    "

);
?>
 
Marciano Schildmeijer

Marciano Schildmeijer

23/09/2011 12:06:11
Quote Anchor link
Bedankt voor de snelle reacties. Ik ga hier wat mee doen!
 
Nick van der heijden

nick van der heijden

23/09/2011 14:13:01
Quote Anchor link
gebruikt geen if(isset($_POST['submit'])){
maar
if($_SERVER['REQUEST_METHOD']=="POST"){

is beter;)
 
Marciano Schildmeijer

Marciano Schildmeijer

23/09/2011 14:14:37
Quote Anchor link
Wat is het verschil? Isset is toch hetzelfde als initialize? Dus doe wat als er wat is.
 
Kees Schepers

kees Schepers

23/09/2011 14:15:26
Quote Anchor link
Gerhard l op 23/09/2011 12:04:49:
@Kees sorry, maar jou post voegt dan eigenlijk ook niets toe ;)


Dat klopt, mijn post voegt voor de starter ook weinig toe, wel voor -SanThe- hopelijk. En als hij er dan iets mee doet voegt het voor de start weer wel wat toe, snap je het cirkeltje? ;-)

M s op 23/09/2011 14:14:37:
Wat is het verschil? Isset is toch hetzelfde als initialize? Dus doe wat als er wat is.


Het verschil is dat de $_SERVER['REQUEST_METHOD'] variabele altijd 'POST' is als je wat post met een formulier bijvoorbeeld. Stel dat je van je submit button ooit een afbeelding maakt krijg je submit_x en submit_y en dan werkt je isset($_POST['submit'] niet meer.
Gewijzigd op 23/09/2011 14:18:03 door kees Schepers
 
Nick van der heijden

nick van der heijden

23/09/2011 14:47:13
Quote Anchor link
beter ga je ook alles gelijk controleren inplaats van 1 voor 1 of ze in gevult zijn
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
if($_SERVER['REQUEST_METHOD']=="POST"){

if(!$_POST['username'] || (!$_POST['firstname'])){//en zo verder gaan

            echo'alle velden in vullen alstublieft';
                        

        return;
}


maarja dat zal ik doen
 
Marciano Schildmeijer

Marciano Schildmeijer

23/09/2011 14:51:50
Quote Anchor link
Kan ik ook een soort ID meegeven met elke fout die de gebruiker maakt? Bijvoorbeeld om te weten of ze hun password niet hebben in gevuld, met: Vul uw password in.
 
Nick van der heijden

nick van der heijden

23/09/2011 14:55:39
Quote Anchor link
niet op de manier waarop ik het doe dan controleer je gelijk alles in 1 keer zonder wat jy wilt een ID mee geven als er iets niet in gevuld is krijg je alleen tezien "alle velden invullen alstublieft" en niet appart voor elke ding wat ze niet hebben in gevuld
 
Marciano Schildmeijer

Marciano Schildmeijer

25/09/2011 23:35:53
Quote Anchor link
Goed, heb nu dus ff alles gewijzigd. Nu heb ik het probleem dat hij niet naar de else gaat OOK al heb ik alles ingevuld.

Ik kan de fout niet vinden!

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
<?php

if ($_SERVER['REQUEST_METHOD']=="POST")
{

    if (empty($_POST['username']) || empty($_POST['email']) || empty($_POST['confirmemail']) || empty($_POST['pass']) || empty($_POST['confirmpass']))
    {

        echo "you forgot to fill in some fields";
    }

    
    elseif ($_POST['email'] != ($_POST['confirmemail']))
    {

        echo "email and email confirm dont match";
    }


    elseif ($_POST['pass'] != ($_POST['confirmpassword']))
    {

        echo "pass and pass confirm dont match";
    }


    else
    {
        mysql_query("INSERT INTO users (username, wachtwoord, email) VALUES ('".mysql_real_escape_string($_POST['username'])."', '".mysql_real_escape_string($_POST['pass'])."', '".mysql_real_escape_string($_POST['email'])."')");
        echo "created";
        echo mysql_error();
    }
    
}





?>
 
- Ariën  -
Beheerder

- Ariën -

25/09/2011 23:38:14
Quote Anchor link
Bij welke statement komt hij wel terecht?

PS: Let op foutafhandeling, deze ontbreekt bij je query. Zelf maar bedenken of het gelukt is, is niet handig om te doen.
 
- SanThe -

- SanThe -

25/09/2011 23:43:49
Quote Anchor link
Wat krijg je dan op het scherm te zien?
 
Marciano Schildmeijer

Marciano Schildmeijer

26/09/2011 11:41:07
Quote Anchor link
Hij komt bij het if statement terecht, dus echo'd ie : you forgot some fields. Ookal vul ik alle velden in, wat natuurlijk niet zo moeten.
 

Pagina: 1 2 3 volgende »



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.