[PHP MySQL] verbind wel, maar voegt niets toe

Pagina: 1
Acties:
  • 49 views sinds 30-01-2008

  • Falskdansker
  • Registratie: Juni 2003
  • Niet online
Ik ben een website aan het maken, en ik ben nu bezig met het gedeelte waar je je kunt aanmelden. Aan de hand van een formulier kun je de gegevens invullen, en die worden dan toegevoegd aan een MySQL database "phpforum" in de tabel "users".

Het form-gedeelte gaat goed, er wordt geen foutmelding weergegeven, maar ook niets toegevoegd aan de tabel.

register.php (toevoeg-code)
PHP:
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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<?php

/*--- begin van de controle ---*/
if(strlen($_POST['voornaam']) < 1 || strlen($_POST['achternaam']) < 1 || strlen($_POST['geslacht']) < 1 || strlen($_POST['username']) < 1 || strlen($_POST['email']) < 1 || strlen($_POST['email2']) < 1) /* Controleert of alle benodigde velden zijn ingevuld */
{
    echo("Je hebt niet alle benodigde velden ingevuld. Ga terug."); /* Geeft een bericht als dat niet zo is */
}
else
{
    /*-----------------------*/
    /* Persoonlijke gegevens */
    /*-----------------------*/
    
    $name = $_POST['voornaam'] + $_POST['achternaam']; /* Voegt voor- en achternaam samen */
    
    $realname = mysql_escape_string(strip_tags($name)); /* De gevaarlijke tekens worden onklaar gemaakt */
    
    if(strlen($_POST['birth']) < 1) /* Controleert of birth is ingevuld */
    {
        $birth = NULL;
    }
    else
    {
        $birth = mysql_escape_string(strip_tags($_POST['birth'])); /* De gevaarlijke tekens worden onklaar gemaakt */
    }
    
    if(strlen($_POST['woonplaats']) < 1) /* Controleert of woonplaats is ingevuld */
    {
        $woonplaats = NULL; /* Maakt een lege variabele */
    }
    else
    {   
        $woonplaats = mysql_escape_string(strip_tags($_POST['woonplaats'])); /* De gevaarlijke tekens worden onklaar gemaakt */
    }
    
    /*------------------*/
    /* Overige gegevens */
    /*------------------*/
    
    $username = mysql_escape_string(strip_tags($_POST['username'])); /* De gevaarlijke tekens worden onklaar gemaakt */
    
    if(strlen($_POST['icq']) < 1) /* Controleert of icq is ingevuld */
    {
        $icq = NULL; /* Maakt een lege variabele */
    }
    else
    {
        $icq = mysql_escape_string(strip_tags($_POST['icq'])); /* De gevaarlijke tekens worden onklaar gemaakt */
    }
    
    if(strlen($_POST['msn']) < 1) /* Controleert of msn is ingevuld */
    {
        $msn = NULL; /* Maakt een lege variabele */
    }
    else
        $msn = mysql_escape_string(strip_tags($_POST['msn'])); /* De gevaarlijke tekens worden onklaar gemaakt */
    }
    
    if($_POST['url'] = "http://" || strlen($_POST['url']) < 1) /* Controleert of url is ingevuld */
    {
        $url = NULL; /* Maakt een lege variabele */
    }
    else
    {
        $url = mysql_escape_string(strip_tags($_POST['url'])); /* De gevaarlijke tekens worden onklaar gemaakt */
    }
    
    if($_POST['email'] = $_POST['email2']) /* Kijkt of beide ingevoerde e-mailadressen hetzelfde zijn */
    {
        $email = mysql_escape_string(strip_tags($_POST['url'])); /* Indien niet worden de gevaarlijke tekens worden onklaar gemaakt */
    }
    else
    {
        echo("De ingevoerde e-mailadressen zijn niet identiek. Ga terug."); /* Geeft een bericht als dat ze niet hetzelfde zijn */
    }
    
    if(strlen($_POST['ondertitel']) < 1) /* Controleert of ondertitel is ingevuld */
    {
        $ondertitel = NULL; /* Maakt een lege variabele */
    }
    else
    {
        $ondertitel = mysql_escape_string(strip_tags($_POST['ondertitel'])); /* De gevaarlijke tekens worden onklaar gemaakt */
    }
    
    if(strlen($_POST['signature']) < 1) /* Controleert of signature is ingevuld */
    {
        $signature = NULL; /* Maakt een lege variabele */
    }
    else
    {
        $signature = mysql_escape_string(strip_tags($_POST['signature'])); /* De gevaarlijke tekens worden onklaar gemaakt */
    }
    
    if($_POST['avatar'] = "http://" || strlen($_POST['avatar']) < 1) /* Controleert of avatar is ingevuld */
    {
        $avatar = NULL; /* Maakt een lege variabele */
    }
    else
    {
        $avatar = mysql_escape_string(strip_tags($_POST['avatar'])); /* De gevaarlijke tekens worden onklaar gemaakt */
    }
    
    $geslacht = $_POST['geslacht'];
    
    /*----------------------*/
    /* Algemene Voorwaarden */
    /*----------------------*/
    
    $voorwaarden = $_POST['voorwaarden']; /* Maakt van voorwaarden.checkbox $voorwaarden*/

    if($voorwaarden == "yes") /* Kijkt of voorwaarden aangekruist is */
    {
        /*--- aanmaken tijdelijk wachtwoord ---*/
        
        echo("<b><i>Hier komt een script dat een wachtwoord verzint</i></b><br>");

        /*--- eind aanmaken tijdelijk wachtwoord ---*/

        /*--- begin van het aanmelden ---*/
        $db = mysql_connect("host", "user", "password"); /* Maakt verbinding met de database-server */
            mysql_select_db("phpforum"); /* Kiest phpforum als database */
    
        mysql_query("
            INSERT INTO users
                (username, icq, msn, url, ondertitel, realname, email, geslacht, birth, woonplaats, posts, signature, avatar, created)
            VALUES
                ('{$username}', '{$icq}', '{$msn}', '{$ondertitel}', '{$realname}', '{$email}', '{$geslacht}', '{$birth}', '{$woonplaats}', '{0}', '{$signature}', '{$avatar}', NOW())
        ");
    
        echo("Je bent aangemeld, maar je account moet nog geactiveerd worden. Er is een e-mailbericht met verdere instructies verzonden naar ");
    }
    else
    {
        echo("Je moet de Algemene Voorwaarde accepteren om te registreren. Ga terug."); /* Indien niet wordt een foutmelding weergegeven */
    }
/*--- eind van de controle ---*/

?>
</body>
</html>


Wie kan mij helpen met deze code? Het is dus de bedoeling dat de informatie wordt toegevoegd aan de tabel, maar ik kom er zelf niet uit waarom dit niet werkt.

Misschien is dit ook nog belangrijk: als ik het vakje "Ik accepteer de Algemene Voorwaarden" (voorwaarden) niet aankruis op aanmelden.php, krijg ik deze foutmelding:
code:
1
Notice: Undefined index: voorwaarden in c:program fileseasyphpwwwphp_forumforumregister.php on line 118


EDIT: daar ging de layout :(

[ Voor 117% gewijzigd door Falskdansker op 30-11-2003 15:52 ]

Steam


Verwijderd

Waarschijnlijk een fout in het formulier (bij voorwaarden) :)

PHP:
1
2
3
<? 
if($voorwaarden == "yes") /* Kijkt of voorwaarden aangekruist is */ 
?>


Als je een checkbox aanklikt geeft hij volgens mij geen yes terug.. of je moet dat ergens weer instellen maar dat weet ik ook niet. Probeer eens te kijken wat de checkbox terug geeft met een simpele echo ofzo

[ Voor 72% gewijzigd door Verwijderd op 30-11-2003 15:56 ]


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 15:26

Janoz

Moderator Devschuur®

!litemod

Het is niet de bedoeling dat hier een berg sourcecode + 'het werkt niet' wordt neergezet. Probeer eerst zelf eens te debuggen. Kijk wat wel goed gaat en wat niet. Verder zijn er in onze faq en op de rest van het internet een heleboel tips mbt het debuggen te vinden. Om je iig een schop in de juiste richting te geven: Met mysql_error kun je de foutmelding van de database achterhalen. Met een melding als missing column oid kun je veel meer ;).


Owh, en over die 2e foutmelding. Waneer je een checkbox checked geeft deze de value terug en als je hem niet checked geeft deze niks terug. Er bestaat bij het niet aankruisen dus geen checkbox waarde in je POST array.

[ Voor 21% gewijzigd door Janoz op 30-11-2003 15:58 ]

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Dit topic is gesloten.