Submit knoppen resulteren in verkeerde actie...
Ik wil in mijn script op 2 verschillende momenten een submit kunnen doen. Dit werkt alleen niet.
Het moet zo ongeveer gaan:
Aanmelden -> submit
Check door gebruiker -> submit
Verwerk gegevens -> message...
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
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
<?php
function registerUser()
{
try
{
$oForm = new Formulier('Aanmelden');
$oForm->add( new Text('Gebruikersnaam:', 'naam', 40), 'isText' );
$oForm->add( new Text('Email:', 'email', 255), 'isEmail' );
$oForm->add( new Text('Postcode:', 'postcode', 6), 'isPostcode');
$oForm->add( new Password('Wachtwoord:', 'wachtwoord', 40), array('minLengte', 5));
$oForm->add( new Password('Herhaal wachtwoord:', 'retypewachtwoord', 40), array('minLengte', 5));
$oForm->add( new Radio('Geslacht:', 'geslacht', array('Man', 'Vrouw') ), 'verplicht' );
$oForm->add( new Checkbox('<b>Ja</b> ik ga akkoord met de voorwaarden.', 'voorwaarden', '1'), 'verplicht' );
$oForm->add( new Submit('aanmelden', 'Aanmelden') );
$oForm->add( new Reset('wis', 'Wis velden') );
$html = $oForm;
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
if( $oForm->controleerVelden() )
{
if($_POST['wachtwoord'] !== $_POST['retypewachtwoord'])
{
$html.= 'De wachtwoorden komen niet overeen.';
}
else
{
//Session maken van de posts
$_SESSION['input']['username'] = $_POST['naam'];
$_SESSION['input']['password'] = $_POST['wachtwoord'];
$_SESSION['input']['pass_md5'] = md5($_POST['wachtwoord']);
$_SESSION['input']['email'] = $_POST['email'];
$_SESSION['input']['postcode'] = $_POST['postcode'];
$_SESSION['input']['geslacht'] = $_POST['geslacht'];
$this->sUsername = $_SESSION['input']['username'];
$this->sPassword = $_SESSION['input']['password'];
$this->sPass_MD5 = $_SESSION['input']['pass_md5'];
$this->sEmail = $_SESSION['input']['email'];
$this->sPostcode = $_SESSION['input']['postcode'];
$this->sGeslacht = $_SESSION['input']['geslacht'];
//unset($_SESSION['input']);
}
if(isset($_POST['aanmelden']))
{
$html = clsLogin::checkRegister();
}
else
{
if(isset($_POST['Doorgaan']))
{
$html = clsLogin::verwerkRegister();
}
}
}
}
return $html;
}
catch( Exception $e )
{
return '<pre>'.$e->getMessage().'</pre>';
}
}
//user check user input
function checkRegister()
{
$html = 'Dit is het resultaat van de door u ingevulde gegevens.<br /><br />';
$html.= 'Naam: '.$this->sUsername.'<br />';
$html.= 'Email: '.$this->sEmail.'<br />';
$html.= 'Postcode: '.$this->sPostcode.'<br />';
$html.= 'Wachtwoord: '.$this->sPassword.'<br />';
$html.= 'Geslacht: '.$this->sGeslacht.'<br />';
$oForm = new Formulier('Check');
$oForm->add( new Submit('doorgaan', 'Doorgaan') );
$html.= $oForm;
return $html;
}
function verwerkRegister()
{
$this->sActcode = clsCode::Randpass(15);
$dConnector = new DbConnect('mark moes');
$dConnector->DbConnector();
$dConnector->MySQLquery("INSERT INTO users (
id,
username,
password,
email,
postcode,
city,
country,
geslacht,
activation,
rank,
activation_date,
times_online,
last_online
) VALUES (
'',
'".mysql_real_escape_string($this->sUsername)."',
'".mysql_real_escape_string($this->sPass_MD5)."',
'".mysql_real_escape_string($this->sEmail)."',
'".mysql_real_escape_string($this->sPostcode)."',
'Haulerwijk',
'NL',
'".mysql_real_escape_string($this->sGeslacht)."',
'".$this->sActcode."',
'00',
NOW(),
'2',
NOW()
)"); //Insertquery
//mail activatiecode, gebruikersnaam en wachtwoord
$sMsgSub = 'Activatie'.$this->sRoot.'!';
$sMsg = 'Gefeliciteerd!\n\n';
$sMsg.= 'Uw activatie op '.$this->sRoot.' kan succesvol worden afgerond!\n\n';
$sMsg.= 'U bent geregistreerd met de volgende gegevens:\n';
$sMsg.= 'Gebruikersnaam: '.$this->sUsername.'.';
$sMsg.= 'Wachtwoord: '.$this->sPassword.'.\n';
$sMsg.= 'Bewaar deze gegevens goed! Ze zijn uniek.\n\n';
$sMsg.= 'Het enige wat nog moet gebeuren is het activeren van uw account.';
$sMsg.= 'Dit kan door te klikken op de onderstaande link, waarna u meteen gebruik kunt maken van '.$this->sRoot.'!\n\n';
$sMsg.= 'http://www.'.$this->sRoot.'?activation='.$this->sActcode.'&&user='.$this->sUsername.'\n\n';
$sMsg.= 'Veel succes, en tot WWW!\n\n';
$sMsg.= 'Met vriendelijke groet,\n';
$sMsg.= 'de webmaster van '.$this->sRoot.'.';
$mail = new mailer();
$mail->addReceiver($this->sEmail);
$mail->setSender();
$mail->setSubject($sMsgSub);
$mail->setMessage($sMsg);
$html = $sMsg;
return $html;
}
?>
function registerUser()
{
try
{
$oForm = new Formulier('Aanmelden');
$oForm->add( new Text('Gebruikersnaam:', 'naam', 40), 'isText' );
$oForm->add( new Text('Email:', 'email', 255), 'isEmail' );
$oForm->add( new Text('Postcode:', 'postcode', 6), 'isPostcode');
$oForm->add( new Password('Wachtwoord:', 'wachtwoord', 40), array('minLengte', 5));
$oForm->add( new Password('Herhaal wachtwoord:', 'retypewachtwoord', 40), array('minLengte', 5));
$oForm->add( new Radio('Geslacht:', 'geslacht', array('Man', 'Vrouw') ), 'verplicht' );
$oForm->add( new Checkbox('<b>Ja</b> ik ga akkoord met de voorwaarden.', 'voorwaarden', '1'), 'verplicht' );
$oForm->add( new Submit('aanmelden', 'Aanmelden') );
$oForm->add( new Reset('wis', 'Wis velden') );
$html = $oForm;
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
if( $oForm->controleerVelden() )
{
if($_POST['wachtwoord'] !== $_POST['retypewachtwoord'])
{
$html.= 'De wachtwoorden komen niet overeen.';
}
else
{
//Session maken van de posts
$_SESSION['input']['username'] = $_POST['naam'];
$_SESSION['input']['password'] = $_POST['wachtwoord'];
$_SESSION['input']['pass_md5'] = md5($_POST['wachtwoord']);
$_SESSION['input']['email'] = $_POST['email'];
$_SESSION['input']['postcode'] = $_POST['postcode'];
$_SESSION['input']['geslacht'] = $_POST['geslacht'];
$this->sUsername = $_SESSION['input']['username'];
$this->sPassword = $_SESSION['input']['password'];
$this->sPass_MD5 = $_SESSION['input']['pass_md5'];
$this->sEmail = $_SESSION['input']['email'];
$this->sPostcode = $_SESSION['input']['postcode'];
$this->sGeslacht = $_SESSION['input']['geslacht'];
//unset($_SESSION['input']);
}
if(isset($_POST['aanmelden']))
{
$html = clsLogin::checkRegister();
}
else
{
if(isset($_POST['Doorgaan']))
{
$html = clsLogin::verwerkRegister();
}
}
}
}
return $html;
}
catch( Exception $e )
{
return '<pre>'.$e->getMessage().'</pre>';
}
}
//user check user input
function checkRegister()
{
$html = 'Dit is het resultaat van de door u ingevulde gegevens.<br /><br />';
$html.= 'Naam: '.$this->sUsername.'<br />';
$html.= 'Email: '.$this->sEmail.'<br />';
$html.= 'Postcode: '.$this->sPostcode.'<br />';
$html.= 'Wachtwoord: '.$this->sPassword.'<br />';
$html.= 'Geslacht: '.$this->sGeslacht.'<br />';
$oForm = new Formulier('Check');
$oForm->add( new Submit('doorgaan', 'Doorgaan') );
$html.= $oForm;
return $html;
}
function verwerkRegister()
{
$this->sActcode = clsCode::Randpass(15);
$dConnector = new DbConnect('mark moes');
$dConnector->DbConnector();
$dConnector->MySQLquery("INSERT INTO users (
id,
username,
password,
email,
postcode,
city,
country,
geslacht,
activation,
rank,
activation_date,
times_online,
last_online
) VALUES (
'',
'".mysql_real_escape_string($this->sUsername)."',
'".mysql_real_escape_string($this->sPass_MD5)."',
'".mysql_real_escape_string($this->sEmail)."',
'".mysql_real_escape_string($this->sPostcode)."',
'Haulerwijk',
'NL',
'".mysql_real_escape_string($this->sGeslacht)."',
'".$this->sActcode."',
'00',
NOW(),
'2',
NOW()
)"); //Insertquery
//mail activatiecode, gebruikersnaam en wachtwoord
$sMsgSub = 'Activatie'.$this->sRoot.'!';
$sMsg = 'Gefeliciteerd!\n\n';
$sMsg.= 'Uw activatie op '.$this->sRoot.' kan succesvol worden afgerond!\n\n';
$sMsg.= 'U bent geregistreerd met de volgende gegevens:\n';
$sMsg.= 'Gebruikersnaam: '.$this->sUsername.'.';
$sMsg.= 'Wachtwoord: '.$this->sPassword.'.\n';
$sMsg.= 'Bewaar deze gegevens goed! Ze zijn uniek.\n\n';
$sMsg.= 'Het enige wat nog moet gebeuren is het activeren van uw account.';
$sMsg.= 'Dit kan door te klikken op de onderstaande link, waarna u meteen gebruik kunt maken van '.$this->sRoot.'!\n\n';
$sMsg.= 'http://www.'.$this->sRoot.'?activation='.$this->sActcode.'&&user='.$this->sUsername.'\n\n';
$sMsg.= 'Veel succes, en tot WWW!\n\n';
$sMsg.= 'Met vriendelijke groet,\n';
$sMsg.= 'de webmaster van '.$this->sRoot.'.';
$mail = new mailer();
$mail->addReceiver($this->sEmail);
$mail->setSender();
$mail->setSubject($sMsgSub);
$mail->setMessage($sMsg);
$html = $sMsg;
return $html;
}
?>
Het registreren gaat goed. Velden worden door script gecontroleerd, anders overnieuw invullen.
Vervolgens wordt het resultaat geechoed, gebruiker moet dit checken, en vervolgens doorgaan. Dit gaat ook goed, alleen als de gebruiker klikt op doorgaan, krijg ik het aanmeld formulier weer, met 2 meldingen dat ik 2 velden niet heb ingevoerd. dat gaat dus niet goed, het form moet verzonden worden, en een msg op het scherm komen.
Ter informatie:
Er staat inderdaad session_start() bovenin mijn script, en error reporting staat ook op schreeuwen.
Weet iemand de oplossing?
<b>edit:</b> vraagteken vergeten, lijkt zo onvriendelijk... ;-)
Gewijzigd op 01/01/1970 01:00:00 door Mark moes
Je kan kijken naar wat voor data is gevuld. Dit raad ik niet aan omdat de gebruiker dan wel die velden ingevuld moet hebben.
Je kan kijken naar de waarde van de submit button. name="submit" value="Login" en bij form 2: name="submit" value="Registreer". Dit werkt meestal goed genoeg.
In het geval dat je geen submit button hebt (ja het is mogelijk om dat toch te submitten) kan je een form een hidden value meegeven dat aangeeft welk form gesubmit heeft.
Ga er trouwens vanuit dat de gebruiker (niet de doorsnee gebruiker) je form kan aanpassen en submitten wat hij/zij maar wil.
wat je zegt, klopt, en werkt ook hier... Maar waar t om gaat is dat er dus wel gesubmit word, alleen naar de verkeerde locatie. Ik snap niet hoe ik weer terug kom bij het eerste form.
wat ik vreemd vind is regel 17, regel 25
$html is een object en in regel 25 ga je een object aan een string plakken?
is het object Formulier is dat je zelf hebt gemaakt of ergens vandaan hebt gehaald?
staat deze code weer in een ander object? ik neem aan van wel regel 37 gebruik van $this
regel 51 & regel 53: je kan elseif gebruiken hier denk ik
ik denk dat de locatie waarnaar je formulier wordt gesubmit bepaald wordt in het object Formulier. Althans als (vanaf regel 6) dit het formulier is wat je bedoelt.
Zou handig zijn als je:
* het hele object zou laten zien (ik refereer aan regel 37)
* het object Formulier zou laten zien
* de pagina waar deze objecten worden aangemaakt (dus een nieuwe copy van de class)
... kan posten
mijn tijd is nu op, hopelijk heb je hier wat aan
Gezien die $this op regel 37, ik heb de variabelen boven aan de class gezet, en dan moet je toch this gebruiken om de variabelen ook in verschillende functies te gebruiken?
Nou ja, ik laat je de hele class zien:
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
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
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
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
<?php
class clsLogin
{
static public
$sRoot,
$sUsername,
$sPassword,
$sPass_MD5,
$sEmail,
$sPostcode,
$sGeslacht;
public function getSettings()
{
//settings ophalen uit SystemComponent
$aSettings = SystemComponent::getSettings();
$this->sRoot = $aSettings['root'];
}
//Registreren nieuwe gebruikers
//Outputs $html
//Needs: !! session_start() !!
function registerUser()
{
try
{
$oForm = new Formulier('Aanmelden');
$oForm->add( new Text('Gebruikersnaam:', 'naam', 40), 'isText' );
$oForm->add( new Text('Email:', 'email', 255), 'isEmail' );
$oForm->add( new Text('Postcode:', 'postcode', 6), 'isPostcode');
$oForm->add( new Password('Wachtwoord:', 'wachtwoord', 40), array('minLengte', 5));
$oForm->add( new Password('Herhaal wachtwoord:', 'retypewachtwoord', 40), array('minLengte', 5));
$oForm->add( new Radio('Geslacht:', 'geslacht', array('Man', 'Vrouw') ), 'verplicht' );
$oForm->add( new Checkbox('<b>Ja</b> ik ga akkoord met de voorwaarden.', 'voorwaarden', '1'), 'verplicht' );
$oForm->add( new Submit('aanmelden', 'Aanmelden') );
$oForm->add( new Reset('wis', 'Wis velden') );
$html = $oForm;
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
if( $oForm->controleerVelden() )
{
if($_POST['wachtwoord'] !== $_POST['retypewachtwoord'])
{
$html.= 'De wachtwoorden komen niet overeen.';
}
else
{
//Session maken van de posts
$_SESSION['input']['username'] = $_POST['naam'];
$_SESSION['input']['password'] = $_POST['wachtwoord'];
$_SESSION['input']['pass_md5'] = md5($_POST['wachtwoord']);
$_SESSION['input']['email'] = $_POST['email'];
$_SESSION['input']['postcode'] = $_POST['postcode'];
$_SESSION['input']['geslacht'] = $_POST['geslacht'];
$this->sUsername = $_SESSION['input']['username'];
$this->sPassword = $_SESSION['input']['password'];
$this->sPass_MD5 = $_SESSION['input']['pass_md5'];
$this->sEmail = $_SESSION['input']['email'];
$this->sPostcode = $_SESSION['input']['postcode'];
$this->sGeslacht = $_SESSION['input']['geslacht'];
//unset($_SESSION['input']);
}
if(isset($_POST['aanmelden']))
{
$html = clsLogin::checkRegister();
}
else
{
if(isset($_POST['Doorgaan']))
{
$html = clsLogin::verwerkRegister();
}
}
}
}
return $html;
}
catch( Exception $e )
{
return '<pre>'.$e->getMessage().'</pre>';
}
}
//user check user input
function checkRegister()
{
$html = 'Dit is het resultaat van de door u ingevulde gegevens.<br /><br />';
$html.= 'Naam: '.$this->sUsername.'<br />';
$html.= 'Email: '.$this->sEmail.'<br />';
$html.= 'Postcode: '.$this->sPostcode.'<br />';
$html.= 'Wachtwoord: '.$this->sPassword.'<br />';
$html.= 'Geslacht: '.$this->sGeslacht.'<br />';
$oForm = new Formulier('Check');
$oForm->add( new Submit('doorgaan', 'Doorgaan') );
$html.= $oForm;
return $html;
}
function verwerkRegister()
{
$this->sActcode = clsCode::Randpass(15);
$dConnector = new DbConnect('mark moes');
$dConnector->DbConnector();
$dConnector->MySQLquery("INSERT INTO users (
id,
username,
password,
email,
postcode,
city,
country,
geslacht,
activation,
rank,
activation_date,
times_online,
last_online
) VALUES (
'',
'".mysql_real_escape_string($this->sUsername)."',
'".mysql_real_escape_string($this->sPass_MD5)."',
'".mysql_real_escape_string($this->sEmail)."',
'".mysql_real_escape_string($this->sPostcode)."',
'Haulerwijk',
'NL',
'".mysql_real_escape_string($this->sGeslacht)."',
'".$this->sActcode."',
'00',
NOW(),
'2',
NOW()
)"); //Insertquery
//mail activatiecode, gebruikersnaam en wachtwoord
$sMsgSub = 'Activatie'.$this->sRoot.'!';
$sMsg = 'Gefeliciteerd!\n\n';
$sMsg.= 'Uw activatie op '.$this->sRoot.' kan succesvol worden afgerond!\n\n';
$sMsg.= 'U bent geregistreerd met de volgende gegevens:\n';
$sMsg.= 'Gebruikersnaam: '.$this->sUsername.'.';
$sMsg.= 'Wachtwoord: '.$this->sPassword.'.\n';
$sMsg.= 'Bewaar deze gegevens goed! Ze zijn uniek.\n\n';
$sMsg.= 'Het enige wat nog moet gebeuren is het activeren van uw account.';
$sMsg.= 'Dit kan door te klikken op de onderstaande link, waarna u meteen gebruik kunt maken van '.$this->sRoot.'!\n\n';
$sMsg.= 'http://www.'.$this->sRoot.'?activation='.$this->sActcode.'&&user='.$this->sUsername.'\n\n';
$sMsg.= 'Veel succes, en tot WWW!\n\n';
$sMsg.= 'Met vriendelijke groet,\n';
$sMsg.= 'de webmaster van '.$this->sRoot.'.';
$mail = new mailer();
$mail->addReceiver($this->sEmail);
$mail->setSender();
$mail->setSubject($sMsgSub);
$mail->setMessage($sMsg);
$html = $sMsg;
return $html;
}
//Activeren nieuwe account
function activationUser()
{
if(!empty ($_GET['user']))
{
$sUsername = $_GET['user'];
}
$connector = new DbConnect('mark moes'); //Select the db..
$connector->DbConnector(); //make connection
$aRow = $connector->fetchArray($connector->MySQLquery("SELECT actcode FROM users WHERE username = '$sUsername' LIMIT 1")); //Selectquery
if($_GET['activation'] == $aRow['actcode'])
{
$connector->MySQLquery("UPDATE users SET actcode = '1' LIMIT 1"); //Updatequery
if($connector->MySQLquery)
{
$html = 'De activatie van uw account is voltooid.\n';
$html.= 'U kunt nu inloggen met de volgende gegevens:\n\n';
$html.= 'Gebruikersnaam: <b>'.$sUsername.'</b>\n';
$html.= 'Wachtwoord: <b>'.$sPass_noMD5.'</b>\n\n';
$html.= 'Veel succes!';
}
}
else
{
$html = 'De activatiecode komt niet voor in dit systeem of niet in combinatie met uw gebruikersnaam.';
}
return $html;
}
//Inloggen
function loginUser()
{
try
{
$oForm = new Formulier('Aanmelden');
$oForm->add( new Text('Gebruikersnaam:', 'gebruikersnaam', 40), 'isAlnum' );
$oForm->add( new Password('Wachtwoord:', 'wachtwoord', 40), array('minLengte', 5));
$oForm->add( new Submit('aanmelden', 'Aanmelden') );
$oForm->add( new Reset('wis', 'Wis velden') );
}
catch( Exception $e )
{
return '<pre>'.$e->getMessage().'</pre>';
}
$sUsername = $_POST['gebruikersnaam'];
$connector = new DbConnect('mark moes'); //Select the db..
$connector->DbConnector(); //make connection
$aRow = $connector->fetchArray($connector->MySQLquery("SELECT username, password FROM users WHERE username = '$sUsername' LIMIT 1")); //Selectquery
if(md5($_POST['wachtwoord']) !== $aRow['password'])
{
return false;
}
}
}
?>
class clsLogin
{
static public
$sRoot,
$sUsername,
$sPassword,
$sPass_MD5,
$sEmail,
$sPostcode,
$sGeslacht;
public function getSettings()
{
//settings ophalen uit SystemComponent
$aSettings = SystemComponent::getSettings();
$this->sRoot = $aSettings['root'];
}
//Registreren nieuwe gebruikers
//Outputs $html
//Needs: !! session_start() !!
function registerUser()
{
try
{
$oForm = new Formulier('Aanmelden');
$oForm->add( new Text('Gebruikersnaam:', 'naam', 40), 'isText' );
$oForm->add( new Text('Email:', 'email', 255), 'isEmail' );
$oForm->add( new Text('Postcode:', 'postcode', 6), 'isPostcode');
$oForm->add( new Password('Wachtwoord:', 'wachtwoord', 40), array('minLengte', 5));
$oForm->add( new Password('Herhaal wachtwoord:', 'retypewachtwoord', 40), array('minLengte', 5));
$oForm->add( new Radio('Geslacht:', 'geslacht', array('Man', 'Vrouw') ), 'verplicht' );
$oForm->add( new Checkbox('<b>Ja</b> ik ga akkoord met de voorwaarden.', 'voorwaarden', '1'), 'verplicht' );
$oForm->add( new Submit('aanmelden', 'Aanmelden') );
$oForm->add( new Reset('wis', 'Wis velden') );
$html = $oForm;
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
if( $oForm->controleerVelden() )
{
if($_POST['wachtwoord'] !== $_POST['retypewachtwoord'])
{
$html.= 'De wachtwoorden komen niet overeen.';
}
else
{
//Session maken van de posts
$_SESSION['input']['username'] = $_POST['naam'];
$_SESSION['input']['password'] = $_POST['wachtwoord'];
$_SESSION['input']['pass_md5'] = md5($_POST['wachtwoord']);
$_SESSION['input']['email'] = $_POST['email'];
$_SESSION['input']['postcode'] = $_POST['postcode'];
$_SESSION['input']['geslacht'] = $_POST['geslacht'];
$this->sUsername = $_SESSION['input']['username'];
$this->sPassword = $_SESSION['input']['password'];
$this->sPass_MD5 = $_SESSION['input']['pass_md5'];
$this->sEmail = $_SESSION['input']['email'];
$this->sPostcode = $_SESSION['input']['postcode'];
$this->sGeslacht = $_SESSION['input']['geslacht'];
//unset($_SESSION['input']);
}
if(isset($_POST['aanmelden']))
{
$html = clsLogin::checkRegister();
}
else
{
if(isset($_POST['Doorgaan']))
{
$html = clsLogin::verwerkRegister();
}
}
}
}
return $html;
}
catch( Exception $e )
{
return '<pre>'.$e->getMessage().'</pre>';
}
}
//user check user input
function checkRegister()
{
$html = 'Dit is het resultaat van de door u ingevulde gegevens.<br /><br />';
$html.= 'Naam: '.$this->sUsername.'<br />';
$html.= 'Email: '.$this->sEmail.'<br />';
$html.= 'Postcode: '.$this->sPostcode.'<br />';
$html.= 'Wachtwoord: '.$this->sPassword.'<br />';
$html.= 'Geslacht: '.$this->sGeslacht.'<br />';
$oForm = new Formulier('Check');
$oForm->add( new Submit('doorgaan', 'Doorgaan') );
$html.= $oForm;
return $html;
}
function verwerkRegister()
{
$this->sActcode = clsCode::Randpass(15);
$dConnector = new DbConnect('mark moes');
$dConnector->DbConnector();
$dConnector->MySQLquery("INSERT INTO users (
id,
username,
password,
email,
postcode,
city,
country,
geslacht,
activation,
rank,
activation_date,
times_online,
last_online
) VALUES (
'',
'".mysql_real_escape_string($this->sUsername)."',
'".mysql_real_escape_string($this->sPass_MD5)."',
'".mysql_real_escape_string($this->sEmail)."',
'".mysql_real_escape_string($this->sPostcode)."',
'Haulerwijk',
'NL',
'".mysql_real_escape_string($this->sGeslacht)."',
'".$this->sActcode."',
'00',
NOW(),
'2',
NOW()
)"); //Insertquery
//mail activatiecode, gebruikersnaam en wachtwoord
$sMsgSub = 'Activatie'.$this->sRoot.'!';
$sMsg = 'Gefeliciteerd!\n\n';
$sMsg.= 'Uw activatie op '.$this->sRoot.' kan succesvol worden afgerond!\n\n';
$sMsg.= 'U bent geregistreerd met de volgende gegevens:\n';
$sMsg.= 'Gebruikersnaam: '.$this->sUsername.'.';
$sMsg.= 'Wachtwoord: '.$this->sPassword.'.\n';
$sMsg.= 'Bewaar deze gegevens goed! Ze zijn uniek.\n\n';
$sMsg.= 'Het enige wat nog moet gebeuren is het activeren van uw account.';
$sMsg.= 'Dit kan door te klikken op de onderstaande link, waarna u meteen gebruik kunt maken van '.$this->sRoot.'!\n\n';
$sMsg.= 'http://www.'.$this->sRoot.'?activation='.$this->sActcode.'&&user='.$this->sUsername.'\n\n';
$sMsg.= 'Veel succes, en tot WWW!\n\n';
$sMsg.= 'Met vriendelijke groet,\n';
$sMsg.= 'de webmaster van '.$this->sRoot.'.';
$mail = new mailer();
$mail->addReceiver($this->sEmail);
$mail->setSender();
$mail->setSubject($sMsgSub);
$mail->setMessage($sMsg);
$html = $sMsg;
return $html;
}
//Activeren nieuwe account
function activationUser()
{
if(!empty ($_GET['user']))
{
$sUsername = $_GET['user'];
}
$connector = new DbConnect('mark moes'); //Select the db..
$connector->DbConnector(); //make connection
$aRow = $connector->fetchArray($connector->MySQLquery("SELECT actcode FROM users WHERE username = '$sUsername' LIMIT 1")); //Selectquery
if($_GET['activation'] == $aRow['actcode'])
{
$connector->MySQLquery("UPDATE users SET actcode = '1' LIMIT 1"); //Updatequery
if($connector->MySQLquery)
{
$html = 'De activatie van uw account is voltooid.\n';
$html.= 'U kunt nu inloggen met de volgende gegevens:\n\n';
$html.= 'Gebruikersnaam: <b>'.$sUsername.'</b>\n';
$html.= 'Wachtwoord: <b>'.$sPass_noMD5.'</b>\n\n';
$html.= 'Veel succes!';
}
}
else
{
$html = 'De activatiecode komt niet voor in dit systeem of niet in combinatie met uw gebruikersnaam.';
}
return $html;
}
//Inloggen
function loginUser()
{
try
{
$oForm = new Formulier('Aanmelden');
$oForm->add( new Text('Gebruikersnaam:', 'gebruikersnaam', 40), 'isAlnum' );
$oForm->add( new Password('Wachtwoord:', 'wachtwoord', 40), array('minLengte', 5));
$oForm->add( new Submit('aanmelden', 'Aanmelden') );
$oForm->add( new Reset('wis', 'Wis velden') );
}
catch( Exception $e )
{
return '<pre>'.$e->getMessage().'</pre>';
}
$sUsername = $_POST['gebruikersnaam'];
$connector = new DbConnect('mark moes'); //Select the db..
$connector->DbConnector(); //make connection
$aRow = $connector->fetchArray($connector->MySQLquery("SELECT username, password FROM users WHERE username = '$sUsername' LIMIT 1")); //Selectquery
if(md5($_POST['wachtwoord']) !== $aRow['password'])
{
return false;
}
}
}
?>