Registratie werkt niet.
Mijn registratiepagina werkt niet.
Wanneer ik een account aanmaak, komt er "done" te staan, maar komt er niets in database.
Mijn register.php ziet er zo uit:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
// maak style aan
include 'include/bgup.php';
?>
<html>
<u>Because of building of the site, All the data can be removed</u>
<table>
<form method="post" name="update" action="update.php" />
<TR><TD>Username:</TD><TD> <input type=text name=username></TD></TR>
<tr><td>Password:</TD><TD> <input type=password name=password></TD></TR><p>
<TR><TD>email:</TD><TD> <input type=text name=email></TD></TR>
<TR><TD><input type="checkbox" name="checkbox" value="Yes" /> Yes, I agree with the <a href="toc.html">Terms Of Conditions</a></TD</TR>
<TR><TD></TD><TD><input type=submit name=submit value=submit></TD></TR></TABLE>
</form></html>
<?php
include 'include/bgdown.php';
?>
// maak style aan
include 'include/bgup.php';
?>
<html>
<u>Because of building of the site, All the data can be removed</u>
<table>
<form method="post" name="update" action="update.php" />
<TR><TD>Username:</TD><TD> <input type=text name=username></TD></TR>
<tr><td>Password:</TD><TD> <input type=password name=password></TD></TR><p>
<TR><TD>email:</TD><TD> <input type=text name=email></TD></TR>
<TR><TD><input type="checkbox" name="checkbox" value="Yes" /> Yes, I agree with the <a href="toc.html">Terms Of Conditions</a></TD</TR>
<TR><TD></TD><TD><input type=submit name=submit value=submit></TD></TR></TABLE>
</form></html>
<?php
include 'include/bgdown.php';
?>
De update.php ziet er als volgt uit:
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
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
<?php
error_reporting(-1);
//Bovenkant layout ;)
include 'include/bgup.php';
// Maak mysql connectie aan
mysql_connect("**hostknip**", "**userknip**", "**passwordknip**") or die(mysql_error());
mysql_select_db("**dbknip**")or die("Connection Failed"); echo "<br />";
// SQL Query
$query = "SELECT email FROM leden WHERE email = '" . mysql_real_escape_string($_POST['email']) . "'";
$get = mysql_query($query);
$aantal = mysql_num_rows($get);
if($aantal !== 0) die ('Email does already excist <a href="register.php">Back</a>!');
$username=mysql_real_escape_string($_POST['username']);
$pass=mysql_real_escape_string($_POST['password']);
if (isset($_POST['checkbox'])) {
$query = "INSERT INTO leden (`username`, `password`, `email`, `level`) VALUES ('".mysql_real_escape_string($_POST['username'])."',".mysql_real_escape_string(md5($_POST['password']))."', '".mysql_real_escape_string($_POST['email'])."','1')" or die (mysql_error());
if(mysql_query($query));
echo 'Done';
}
else {
echo 'You have to accept the terms of condition.';
}
//Onderkant layout ;)
include 'include/bgdown.php';
?>
error_reporting(-1);
//Bovenkant layout ;)
include 'include/bgup.php';
// Maak mysql connectie aan
mysql_connect("**hostknip**", "**userknip**", "**passwordknip**") or die(mysql_error());
mysql_select_db("**dbknip**")or die("Connection Failed"); echo "<br />";
// SQL Query
$query = "SELECT email FROM leden WHERE email = '" . mysql_real_escape_string($_POST['email']) . "'";
$get = mysql_query($query);
$aantal = mysql_num_rows($get);
if($aantal !== 0) die ('Email does already excist <a href="register.php">Back</a>!');
$username=mysql_real_escape_string($_POST['username']);
$pass=mysql_real_escape_string($_POST['password']);
if (isset($_POST['checkbox'])) {
$query = "INSERT INTO leden (`username`, `password`, `email`, `level`) VALUES ('".mysql_real_escape_string($_POST['username'])."',".mysql_real_escape_string(md5($_POST['password']))."', '".mysql_real_escape_string($_POST['email'])."','1')" or die (mysql_error());
if(mysql_query($query));
echo 'Done';
}
else {
echo 'You have to accept the terms of condition.';
}
//Onderkant layout ;)
include 'include/bgdown.php';
?>
Ik kom er zelf niet uit.
Voor de genen die het willen weten: Een print-screen van de database op http://www.teacherdutch.webatu.com/phphulp.png
Alvast bedankt.
Tim
- Aar -:
De titel van het topic is aangepast en de spelfout is eruit.
Gewijzigd op 30/12/2013 10:28:29 door - Ariën -
Zet aub je script tussen [code]-tags voor een beter overzicht in het forum.
Gedaan.
Or die() is niet netjes en bij jou staat het ook nog op de verkeerde plaats.
Je query is namelijk mislukt en jij ziet geen error.
Toevoeging op 29/12/2013 12:07:09:
Slordigheid is de grootste progammeerfout.
Registartie werkt niet.
Er hoort sowieso op lijn 18 geen puntkomms maar een accolade.
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
150
151
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
150
151
<?php
error_reporting(-1);
//Bovenkant layout ;)
include 'include/bgup.php';
// Maak mysql connectie aan
mysql_connect("**hostknip**", "**userknip**", "**passwordknip**") or die(mysql_error());
mysql_select_db("**dbknip**")or die(mysql_error());
if(!mysql_connect){
echo 'kan geen verbinding maken';
exit;
}elseif(!mysql_select_db){
echo 'Kan niet bij de database';
exit;
}else{
function StripDanger($value) {
$magic_quotes_active = get_magic_quotes_gpc();
$new_enough_php = function_exists('mysql_real_escape_string'); // i.e. PHP >= v4.3.0
if ($new_enough_php) { // PHP v4.3.0 or higher
// undo any magic quote effects so mysql_real_escape_string can do the work
if($magic_quotes_active) {
$value = stripslashes($value);
}
$value = mysql_real_escape_string($value);
}
else { // before PHP v4.3.0
// if magic quotes aren't already on then add slashes manually
if(!$magic_quotes_active) {
$value = addslashes($value);
}
// if magic quotes are active, then the slashes already exist
}
return $value;
}
if($_SERVER['REQUEST_METHOD'] == 'POST' && $_POST['verzonden'] == 1 ) {
$username = StripDanger($_POST['username']);
$email = StripDanger($_POST['email']);
$password = StripDanger($_POST['password']);
$password1 = StripDanger($_POST['password1']);
$checkbox = StripDanger($_POST['checkbox']);
//alle fouten in een array zetten
$aFout = array();
if (empty($username)){ //kijken of gebruikersnaam leeg is
$form = true;
$aFout[] = 'U moet een gebruikersnaam opgeven';
}
//kijken of email al bestaat
$resultaat_email = mysql_query("SELECT email FROM leden WHERE email='".$email."'");
if($resultaat_email == false){
echo mysql_error();
}else{
if(mysql_num_rows($resultaat_email)>0){
$form = true;
$aFout[] = 'Email bestaat al';
}elseif(isset($email) && strlen($email)>5) { //controleren of de ingevoerde e-mail adres valide is
// andere variant test 01/03/2010
if(!preg_match('#^[a-z0-9][a-z0-9_.\-]*@([a-z0-9]+\.)*[a-z0-9][a-z0-9\-]+\.([a-z]{2,6})$#i', $email)) {
$form = true;
$aFout[] = 'Dit is geen email adres';
}else{
// alles in orde; geen foutsituatie
}
}
else{
$form = true;
$aFout[] = 'Geen valide email adres';
}
}
//kijken of wachtwoord 1 leeg is
if (empty($password)){
$form = true;
$aFout[] = 'Wachtwoord invoeren';
//kijken of de wachtwoorden gelijk zijn
}elseif($password != $password1){
$form = true;
$aFout[] = 'Wachtwoord zijn niet gelijk';
}else{
//versleutelen
$passworddb = md5($password);
}
//kijken of checkbox leeg is
if (empty($checkbox)){
$form = true;
$aFout[] = 'Je moet akkoord gaan met de algemenevoorwaarde';
}
//als er fouten zijn tijdens het verwerken van het formulier, dan stoppen we alles in een box
if(!empty($aFout))
{
$errors = '
<table><tr><td>
<ul>';
foreach($aFout as $sFout)
{
$errors .= " <li>".$sFout."</li>\n";
}
$errors .= "</ul>
</td></tr></table>";
}else{//hier gaan we de leden toevoegen
$form = false;
//geen fouten alles in de db toevogen
$query = mysql_query("INSERT INTO leden (`username`, `password`, `email`, `level`) VALUES ('$username','$passworddb', '$email', '1')") or die (mysql_error());
if($query){
$form = false;
echo 'Registratie voltooid';
}else{
$form = true;
echo 'Er is iets fout gegaan';
}
}
}
if($form){
if(isset($errors)){ echo $errors; } ?>
<u>Because of building of the site, All the data can be removed</u>
<table>
<form method="post" name="registratie" action="registratie.php" />
<TR><TD>Username:</TD><TD> <input type="text" name="username"></TD></TR>
<tr><td>Password:</TD><TD> <input type="password" name="password"></TD></TR><p>
<tr><td>Password repeat:</TD><TD> <input type="password" name="password1"></TD></TR><p>
<TR><TD>email:</TD><TD> <input type="text" name="email"></TD></TR>
<TR><TD><input type="checkbox" name="checkbox" value="Yes" /> Yes, I agree with the <a href="toc.html">Terms Of Conditions</a></TD</TR>
<input type="hidden" name="verzonden" value="1">
<TR><TD></TD><TD><input type="submit" name="submit" value="verzenden"></TD></TR></TABLE>
</form>
<?php
}
}
//Onderkant layout ;)
include 'include/bgdown.php';
?>
error_reporting(-1);
//Bovenkant layout ;)
include 'include/bgup.php';
// Maak mysql connectie aan
mysql_connect("**hostknip**", "**userknip**", "**passwordknip**") or die(mysql_error());
mysql_select_db("**dbknip**")or die(mysql_error());
if(!mysql_connect){
echo 'kan geen verbinding maken';
exit;
}elseif(!mysql_select_db){
echo 'Kan niet bij de database';
exit;
}else{
function StripDanger($value) {
$magic_quotes_active = get_magic_quotes_gpc();
$new_enough_php = function_exists('mysql_real_escape_string'); // i.e. PHP >= v4.3.0
if ($new_enough_php) { // PHP v4.3.0 or higher
// undo any magic quote effects so mysql_real_escape_string can do the work
if($magic_quotes_active) {
$value = stripslashes($value);
}
$value = mysql_real_escape_string($value);
}
else { // before PHP v4.3.0
// if magic quotes aren't already on then add slashes manually
if(!$magic_quotes_active) {
$value = addslashes($value);
}
// if magic quotes are active, then the slashes already exist
}
return $value;
}
if($_SERVER['REQUEST_METHOD'] == 'POST' && $_POST['verzonden'] == 1 ) {
$username = StripDanger($_POST['username']);
$email = StripDanger($_POST['email']);
$password = StripDanger($_POST['password']);
$password1 = StripDanger($_POST['password1']);
$checkbox = StripDanger($_POST['checkbox']);
//alle fouten in een array zetten
$aFout = array();
if (empty($username)){ //kijken of gebruikersnaam leeg is
$form = true;
$aFout[] = 'U moet een gebruikersnaam opgeven';
}
//kijken of email al bestaat
$resultaat_email = mysql_query("SELECT email FROM leden WHERE email='".$email."'");
if($resultaat_email == false){
echo mysql_error();
}else{
if(mysql_num_rows($resultaat_email)>0){
$form = true;
$aFout[] = 'Email bestaat al';
}elseif(isset($email) && strlen($email)>5) { //controleren of de ingevoerde e-mail adres valide is
// andere variant test 01/03/2010
if(!preg_match('#^[a-z0-9][a-z0-9_.\-]*@([a-z0-9]+\.)*[a-z0-9][a-z0-9\-]+\.([a-z]{2,6})$#i', $email)) {
$form = true;
$aFout[] = 'Dit is geen email adres';
}else{
// alles in orde; geen foutsituatie
}
}
else{
$form = true;
$aFout[] = 'Geen valide email adres';
}
}
//kijken of wachtwoord 1 leeg is
if (empty($password)){
$form = true;
$aFout[] = 'Wachtwoord invoeren';
//kijken of de wachtwoorden gelijk zijn
}elseif($password != $password1){
$form = true;
$aFout[] = 'Wachtwoord zijn niet gelijk';
}else{
//versleutelen
$passworddb = md5($password);
}
//kijken of checkbox leeg is
if (empty($checkbox)){
$form = true;
$aFout[] = 'Je moet akkoord gaan met de algemenevoorwaarde';
}
//als er fouten zijn tijdens het verwerken van het formulier, dan stoppen we alles in een box
if(!empty($aFout))
{
$errors = '
<table><tr><td>
<ul>';
foreach($aFout as $sFout)
{
$errors .= " <li>".$sFout."</li>\n";
}
$errors .= "</ul>
</td></tr></table>";
}else{//hier gaan we de leden toevoegen
$form = false;
//geen fouten alles in de db toevogen
$query = mysql_query("INSERT INTO leden (`username`, `password`, `email`, `level`) VALUES ('$username','$passworddb', '$email', '1')") or die (mysql_error());
if($query){
$form = false;
echo 'Registratie voltooid';
}else{
$form = true;
echo 'Er is iets fout gegaan';
}
}
}
if($form){
if(isset($errors)){ echo $errors; } ?>
<u>Because of building of the site, All the data can be removed</u>
<table>
<form method="post" name="registratie" action="registratie.php" />
<TR><TD>Username:</TD><TD> <input type="text" name="username"></TD></TR>
<tr><td>Password:</TD><TD> <input type="password" name="password"></TD></TR><p>
<tr><td>Password repeat:</TD><TD> <input type="password" name="password1"></TD></TR><p>
<TR><TD>email:</TD><TD> <input type="text" name="email"></TD></TR>
<TR><TD><input type="checkbox" name="checkbox" value="Yes" /> Yes, I agree with the <a href="toc.html">Terms Of Conditions</a></TD</TR>
<input type="hidden" name="verzonden" value="1">
<TR><TD></TD><TD><input type="submit" name="submit" value="verzenden"></TD></TR></TABLE>
</form>
<?php
}
}
//Onderkant layout ;)
include 'include/bgdown.php';
?>
Groet Mausie.
Gewijzigd op 30/12/2013 10:27:54 door - Ariën -
Waar zit de fout nu?
PHP Error Message
Notice: Use of undefined constant mysql_connect - assumed 'mysql_connect' in /home/a4138720/public_html/register2.php on line 9
Free Web Hosting
PHP Error Message
Notice: Use of undefined constant mysql_select_db - assumed 'mysql_select_db' in /home/a4138720/public_html/register2.php on line 12
Free Web Hosting
PHP Error Message
Notice: Undefined variable: form in /home/a4138720/public_html/register2.php on line 128
Free Web Hosting
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
error_reporting(-1);
//Bovenkant layout ;)
include 'include/bgup.php';
// Maak mysql connectie aan
if(!mysql_connect("**hostknip**", "**userknip**", "**passwordknip**")) {
echo "Error: ".mysql_error();
exit;
}
elseif(!mysql_select_db("**dbknip**")) {
echo "Error: ".mysql_error();
exit;
} else {
//etc
}
?>
error_reporting(-1);
//Bovenkant layout ;)
include 'include/bgup.php';
// Maak mysql connectie aan
if(!mysql_connect("**hostknip**", "**userknip**", "**passwordknip**")) {
echo "Error: ".mysql_error();
exit;
}
elseif(!mysql_select_db("**dbknip**")) {
echo "Error: ".mysql_error();
exit;
} else {
//etc
}
?>
Gewijzigd op 30/12/2013 12:34:57 door - Ariën -
of zoals Aar het aangeeft, alleen moet er volgens mij voor de functie een uitroepteken (!) staan, omdat hij de error pas moet weergeven als de if statment false is.
Als de verbinding nu true is, zal hij de error weergeven.
Correct me if I'm wrong!
Dit moet het zijn:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
error_reporting(-1);
//Bovenkant layout ;)
include 'include/bgup.php';
// Maak mysql connectie aan
$link = mysql_connect("**hostknip**", "**userknip**", "**passwordknip**");
$db = mysql_select_db("**dbknip**");
//als het false is fout afhandeling
if(!$link){
echo "kan geen verbinding maken, ERROR: ".mysql_error();
exit;
//als het false is fout afhandeling
}elseif(!$db){
echo "Kan niet bij de database, ERROR: ".mysql_error();
exit;
}else{
//vanaf hier geen fouten met de verbinding, de rest verwerken
}
?>
error_reporting(-1);
//Bovenkant layout ;)
include 'include/bgup.php';
// Maak mysql connectie aan
$link = mysql_connect("**hostknip**", "**userknip**", "**passwordknip**");
$db = mysql_select_db("**dbknip**");
//als het false is fout afhandeling
if(!$link){
echo "kan geen verbinding maken, ERROR: ".mysql_error();
exit;
//als het false is fout afhandeling
}elseif(!$db){
echo "Kan niet bij de database, ERROR: ".mysql_error();
exit;
}else{
//vanaf hier geen fouten met de verbinding, de rest verwerken
}
?>
Groet Mausie.
Gewijzigd op 30/12/2013 10:26:41 door - Ariën -
Staan er echte gegevens m.b.t. de databaseverbinding in de bovenstaande codes?!
Ik betwijfel het, maar als voordeel van de twijfel heb ik de database-gegevens maar even weggeknipt.
Obelix en Idefix op 30/12/2013 10:24:29:
Staan er echte gegevens m.b.t. de databaseverbinding in de bovenstaande codes?!
Hallo,
Ik heb de gegevens van jou overgenomen of ze kloppen is aan jou.
Ik zal zelf nooit mijn database gegevens op een forum zetten.
Lijkt me dat je die zelf invult.
Groet Mausie.
Mausie Wausie op 30/12/2013 08:24:49:
of zoals Aar het aangeeft, alleen moet er volgens mij voor de functie een uitroepteken (!) staan, omdat hij de error pas moet weergeven als de if statment false is.
Klopt, ik heb het aangepast. Het glipte er even in het late uurtje er tussen door.
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
150
151
152
153
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
150
151
152
153
<?php
error_reporting(-1);
//Bovenkant layout ;)
include 'include/bgup.php';
// Maak mysql connectie aan
$link = mysql_connect("**dbhost**", "**dbusername**", "**dbpassword**");
$db = mysql_select_db("**dbname**");
//als het false is fout afhandeling
if(!$link){
echo "kan geen verbinding maken, ERROR: ".mysql_error();
exit;
//als het false is fout afhandeling
}elseif(!$db){
echo "Kan niet bij de database, ERROR: ".mysql_error();
exit;
}else{
function StripDanger($value) {
$magic_quotes_active = get_magic_quotes_gpc();
$new_enough_php = function_exists('mysql_real_escape_string'); // i.e. PHP >= v4.3.0
if ($new_enough_php) { // PHP v4.3.0 or higher
// undo any magic quote effects so mysql_real_escape_string can do the work
if($magic_quotes_active) {
$value = stripslashes($value);
}
$value = mysql_real_escape_string($value);
}
else { // before PHP v4.3.0
// if magic quotes aren't already on then add slashes manually
if(!$magic_quotes_active) {
$value = addslashes($value);
}
// if magic quotes are active, then the slashes already exist
}
return $value;
}
if($_SERVER['REQUEST_METHOD'] == 'POST' && $_POST['verzonden'] == 1 ) {
$username = StripDanger($_POST['username']);
$email = StripDanger($_POST['email']);
$password = StripDanger($_POST['password']);
$password1 = StripDanger($_POST['password1']);
$checkbox = StripDanger($_POST['checkbox']);
//alle fouten in een array zetten
$aFout = array();
if (empty($username)){ //kijken of gebruikersnaam leeg is
$form = true;
$aFout[] = 'U moet een gebruikersnaam opgeven';
}
//kijken of email al bestaat
$resultaat_email = mysql_query("SELECT email FROM leden WHERE email='".$email."'");
if($resultaat_email == false){
echo mysql_error();
}else{
if(mysql_num_rows($resultaat_email)>0){
$form = true;
$aFout[] = 'Email bestaat al';
}elseif(isset($email) && strlen($email)>5) { //controleren of de ingevoerde e-mail adres valide is
// andere variant test 01/03/2010
if(!preg_match('#^[a-z0-9][a-z0-9_.\-]*@([a-z0-9]+\.)*[a-z0-9][a-z0-9\-]+\.([a-z]{2,6})$#i', $email)) {
$form = true;
$aFout[] = 'Dit is geen email adres';
}else{
// alles in orde; geen foutsituatie
}
}
else{
$form = true;
$aFout[] = 'Geen valide email adres';
}
}
//kijken of wachtwoord 1 leeg is
if (empty($password)){
$form = true;
$aFout[] = 'Wachtwoord invoeren';
//kijken of de wachtwoorden gelijk zijn
}elseif($password != $password1){
$form = true;
$aFout[] = 'Wachtwoord zijn niet gelijk';
}else{
//versleutelen
$passworddb = md5($password);
}
//kijken of checkbox leeg is
if (empty($checkbox)){
$form = true;
$aFout[] = 'Je moet akkoord gaan met de algemenevoorwaarde';
}
//als er fouten zijn tijdens het verwerken van het formulier, dan stoppen we alles in een box
if(!empty($aFout))
{
$errors = '
<table><tr><td>
<ul>';
foreach($aFout as $sFout)
{
$errors .= " <li>".$sFout."</li>\n";
}
$errors .= "</ul>
</td></tr></table>";
}else{//hier gaan we de leden toevoegen
$form = false;
//geen fouten alles in de db toevogen
$query = mysql_query("INSERT INTO leden (`username`, `password`, `email`, `level`) VALUES ('$username','$passworddb', '$email', '1')") or die (mysql_error());
if($query){
$form = false;
echo 'Registratie voltooid';
}else{
$form = true;
echo 'Er is iets fout gegaan';
}
}
}
if($form){
if(isset($errors)){ echo $errors; } ?>
<u>Because of building of the site, All the data can be removed</u>
<table>
<form method="post" name="registratie" action="registratie.php" />
<TR><TD>Username:</TD><TD> <input type="text" name="username"></TD></TR>
<tr><td>Password:</TD><TD> <input type="password" name="password"></TD></TR><p>
<tr><td>Password repeat:</TD><TD> <input type="password" name="password1"></TD></TR><p>
<TR><TD>email:</TD><TD> <input type="text" name="email"></TD></TR>
<TR><TD><input type="checkbox" name="checkbox" value="Yes" /> Yes, I agree with the <a href="toc.html">Terms Of Conditions</a></TD</TR>
<input type="hidden" name="verzonden" value="1">
<TR><TD></TD><TD><input type="submit" name="submit" value="verzenden"></TD></TR></TABLE>
</form>
<?php
}
}
//Onderkant layout ;)
include 'include/bgdown.php';
?>
error_reporting(-1);
//Bovenkant layout ;)
include 'include/bgup.php';
// Maak mysql connectie aan
$link = mysql_connect("**dbhost**", "**dbusername**", "**dbpassword**");
$db = mysql_select_db("**dbname**");
//als het false is fout afhandeling
if(!$link){
echo "kan geen verbinding maken, ERROR: ".mysql_error();
exit;
//als het false is fout afhandeling
}elseif(!$db){
echo "Kan niet bij de database, ERROR: ".mysql_error();
exit;
}else{
function StripDanger($value) {
$magic_quotes_active = get_magic_quotes_gpc();
$new_enough_php = function_exists('mysql_real_escape_string'); // i.e. PHP >= v4.3.0
if ($new_enough_php) { // PHP v4.3.0 or higher
// undo any magic quote effects so mysql_real_escape_string can do the work
if($magic_quotes_active) {
$value = stripslashes($value);
}
$value = mysql_real_escape_string($value);
}
else { // before PHP v4.3.0
// if magic quotes aren't already on then add slashes manually
if(!$magic_quotes_active) {
$value = addslashes($value);
}
// if magic quotes are active, then the slashes already exist
}
return $value;
}
if($_SERVER['REQUEST_METHOD'] == 'POST' && $_POST['verzonden'] == 1 ) {
$username = StripDanger($_POST['username']);
$email = StripDanger($_POST['email']);
$password = StripDanger($_POST['password']);
$password1 = StripDanger($_POST['password1']);
$checkbox = StripDanger($_POST['checkbox']);
//alle fouten in een array zetten
$aFout = array();
if (empty($username)){ //kijken of gebruikersnaam leeg is
$form = true;
$aFout[] = 'U moet een gebruikersnaam opgeven';
}
//kijken of email al bestaat
$resultaat_email = mysql_query("SELECT email FROM leden WHERE email='".$email."'");
if($resultaat_email == false){
echo mysql_error();
}else{
if(mysql_num_rows($resultaat_email)>0){
$form = true;
$aFout[] = 'Email bestaat al';
}elseif(isset($email) && strlen($email)>5) { //controleren of de ingevoerde e-mail adres valide is
// andere variant test 01/03/2010
if(!preg_match('#^[a-z0-9][a-z0-9_.\-]*@([a-z0-9]+\.)*[a-z0-9][a-z0-9\-]+\.([a-z]{2,6})$#i', $email)) {
$form = true;
$aFout[] = 'Dit is geen email adres';
}else{
// alles in orde; geen foutsituatie
}
}
else{
$form = true;
$aFout[] = 'Geen valide email adres';
}
}
//kijken of wachtwoord 1 leeg is
if (empty($password)){
$form = true;
$aFout[] = 'Wachtwoord invoeren';
//kijken of de wachtwoorden gelijk zijn
}elseif($password != $password1){
$form = true;
$aFout[] = 'Wachtwoord zijn niet gelijk';
}else{
//versleutelen
$passworddb = md5($password);
}
//kijken of checkbox leeg is
if (empty($checkbox)){
$form = true;
$aFout[] = 'Je moet akkoord gaan met de algemenevoorwaarde';
}
//als er fouten zijn tijdens het verwerken van het formulier, dan stoppen we alles in een box
if(!empty($aFout))
{
$errors = '
<table><tr><td>
<ul>';
foreach($aFout as $sFout)
{
$errors .= " <li>".$sFout."</li>\n";
}
$errors .= "</ul>
</td></tr></table>";
}else{//hier gaan we de leden toevoegen
$form = false;
//geen fouten alles in de db toevogen
$query = mysql_query("INSERT INTO leden (`username`, `password`, `email`, `level`) VALUES ('$username','$passworddb', '$email', '1')") or die (mysql_error());
if($query){
$form = false;
echo 'Registratie voltooid';
}else{
$form = true;
echo 'Er is iets fout gegaan';
}
}
}
if($form){
if(isset($errors)){ echo $errors; } ?>
<u>Because of building of the site, All the data can be removed</u>
<table>
<form method="post" name="registratie" action="registratie.php" />
<TR><TD>Username:</TD><TD> <input type="text" name="username"></TD></TR>
<tr><td>Password:</TD><TD> <input type="password" name="password"></TD></TR><p>
<tr><td>Password repeat:</TD><TD> <input type="password" name="password1"></TD></TR><p>
<TR><TD>email:</TD><TD> <input type="text" name="email"></TD></TR>
<TR><TD><input type="checkbox" name="checkbox" value="Yes" /> Yes, I agree with the <a href="toc.html">Terms Of Conditions</a></TD</TR>
<input type="hidden" name="verzonden" value="1">
<TR><TD></TD><TD><input type="submit" name="submit" value="verzenden"></TD></TR></TABLE>
</form>
<?php
}
}
//Onderkant layout ;)
include 'include/bgdown.php';
?>
Nu krijg ik alleen de volgende fout:
Notice: Undefined variable: form in /home/a4138720/public_html/register3.php on line 130
De $ bestaat toch?
Ik krijg alleen de CSS te zien, met de foutmelding erin. Krijg geen form te zien.
Grotjes,
Tim.
Ik denk dat je probleem is opgelost als je onder:
neerzet:
Het kan ook dat er iets anders moet staan dan true, maar ik heb de code niet echt goed bekeken...
Succes ermee in ieder geval!
Kenneth
Gewijzigd op 30/12/2013 15:58:21 door Kenneth Rozendaal
Je moet na de eerste else statment na de controle van de database connectie even je $form op true zetten.
Ben ik vergeten mee te kopiëren, dan is $form gezet.
Groet Mausie.
waarom zou je nog rekening houden met de vraag of iemand PHP < 4.3 heeft.
Dan heb je het over december 2002: meer dan 11 jaar geleden!
http://www.php.net/ChangeLog-4.php#4.3.0
Daarnaast vind het onverstandig om centraal de acties zoals $username = StripDanger($_POST['username']); uit te voeren.
Ja: je hebt ze dan "allemaal" beveiligd.
maar ook: als je er maar 1 vergeet, dan merk je dat nergens meer op.
Daarnaast is het ook verleidelijk om verderop in je script $username te gebruiken. Die bestaat immers.
Maar dan krijg je zo'n leuk effect dat "foto's" ineens op het scherm staat als "foto\'s"
en dan zie je naar verloop van tijd teksen verschijnen met "foto\\\\\\\\\\\\'s" en kun je precies natellen hoevaak de tekst bewerkt is.
Ik ben er voorstander van om alleen op die plekken waar je het nodig hebt te beveiligen.
In dit geval dus elke query, en ook elke variabele. (met mysql_real_escape_string of de mysqli variant daarvan).
En op de plek waar je de username op het scherm wilt hebben gebruik je htmlspecialchars($_POST['username']) of htmlspecialchars($anderevar);
Je ziet dan aan je query direct dat je inderdaad al je variabelen beveiligt en hoeft niet later bij je opdrachtgever te melden dat je in eerste instantie die 3 variabelen prima beveiligde met stripDanger() maar dat je bij het aanpassen helaas vergeten was om die andere 2 daar ook toe te voegen en dat de database nu helaas kapot of gehackt is.
Toevoeging op 31/12/2013 12:33:28:
aanvullend: dus beveiliging toepassen op de manier zoals die daar nodig is: escapen voor je database, "escapen" met htmlspecialchars voor je scherm.