hulp gevraagd bij mijn eerste class

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Marcel K

Marcel K

14/03/2007 20:02:00
Quote Anchor link
Ik ben bezig om een user-class te schrijven, gaat op zich goed, maar loop nu tegen een probleem aan.
Als de user inlogt dan worden zijn gegevens opgeslagen in de class-variabelen, en 2 gegevens in een sessie gezet.

Wil ik nu in een andere fuctie (method?) uit dezelfde class de reeds opgeslagen gegevens gebruiken dan zijn ze leeg !!??
Schijnbaar worden ze niet onthouden ? Kan iemand mij vertellen wat ik fout doe ?

Hieronder de code van de login-method:

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
function login_check($naam, $pass)
    {
        $db = $this->db;
        if ( (empty($naam)) || (empty($pass)) ){
            $this->errmsg = $this->messages(11);
            return false;
        }
        $sql = "SELECT * FROM `members` WHERE nick_name='".$naam."' AND active='j'";
        if ( !($result = $db->sql_query($sql)) ) { $error = $db->sql_error(); die ( $error['message']); }
        if ($db->sql_numrows($result) == 0){
            /* user staat niet in de database */
            $this->errmsg = $this->messages(10);
            return false;
        }
        else
        {
               $row = $db->sql_fetchrow($result);
            if (!($row['password'] == md5($pass))) {
                /* password klopt niet */
                $this->errmsg = $this->messages(10);
                return false;
            }
            else
            {   /* inloggegevens kloppen, nu de rest inlezen */
                $_SESSION['login'] = 'ok';
                $_SESSION['id'] = $row['id'];
                $this->realname = $row['real_name'];
                $this->nick = $row['nick_name'];
                $this->lastdate = $row['last_date'];
                $this->visits = $row['num_visits'];
                $this->id = $row['id'];
                $this->info = $row['extra_info'];
                $this->email = $row['email'];
                /* even database updaten */
                $datum = date( "Y-m-d H:i:s" );
                $sql = "UPDATE `members` SET num_visits=num_visits+1, last_date='".$datum."' WHERE id='".$row['id']."'";
                if ( !($result = $db->sql_query($sql)) ) { $error = $db->sql_error(); die ( $error['message']); }
                return true;
            }
        }
    }
Gewijzigd op 01/01/1970 01:00:00 door Marcel K
 
PHP hulp

PHP hulp

28/09/2022 15:30:17
 
Marcel K

Marcel K

15/03/2007 16:46:00
Quote Anchor link
bump ?
 
Stien ss

stien ss

15/03/2007 18:01:00
Quote Anchor link
Die andere mehode gebruik je die op dezelfde pagina?
Een object wordt niet bewaard als je van de ene naar de andere pagina gaat he.. net als normale variablen.

Als dit niet het geval is, weet je zeker dat je bij die laatste else komt, is alles daarboven goed gegaan dus?

Als ook dat het niet is, laat je andere methode is zien, misschien klopt daar iets niet aan.
 
Marcel K

Marcel K

15/03/2007 20:01:00
Quote Anchor link
alles wordt aangeroepen vanuit hetzelfde script.
zal ik anders de complete class hier neerzetten inclusief script ?
 
Joren de Wit

Joren de Wit

15/03/2007 20:10:00
Quote Anchor link
Laat inderdaad eens wat meer van je klasse zien. Onder andere waar je je members declareert. En ook de methode die je probeert aan te roepen en tevens het script waarin je dat doet...

Dan wordt het misschien duidelijk waar het fout gaat.
 
Marcel K

Marcel K

15/03/2007 20:19:00
Quote Anchor link
oké, komt het dan, is nogal een lap...

edit: ter informatie, ik gebruik de db-class van phpbb voor connectie met de database.

hier de class:
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
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
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
<?php
session_start();

require 'class_members_config_inc.php';

class members {
    /*
    --
    -- Tabel structuur voor tabel `members`
    --

CREATE TABLE `members` (
  `id` int(11) NOT NULL auto_increment,
  `nick_name` varchar(25) NOT NULL,
  `password` varchar(32) NOT NULL,
  `real_name` varchar(32) NOT NULL,
  `email` varchar(50) NOT NULL default '',
  `active` enum('j','n') NOT NULL default 'n',
  `reg_date` datetime NOT NULL,
  `last_date` datetime NOT NULL,
  `num_visits` int(11) NOT NULL default '0',
  `extra_info` varchar(32) NOT NULL,
  PRIMARY KEY  (`id`),
  UNIQUE KEY `nick_name` (`nick_name`),
  UNIQUE KEY `email` (`email`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin2 AUTO_INCREMENT=2 ;
--
-- Gegevens worden uitgevoerd voor tabel `members`
--


    */
    // gebruiker variabelen/

    var $id;            /* gebruiker id*/
    var $nick;         /* nickname*/
    var $realname;    /* echte naam */
    var $email;        /* email address */
    var $active;    /* aktief j/n */
    var $regdate;    /* registratiedatum */
    var $lastdate;    /* laatste bezoekdatum */
    var $visits;    /* aantal bezoekjes */
    var $info;      /* wordt gebruikt voor informatie zoals bv check-code bij activatie, is normaal leeg */

    // systeem variabelen

    var $db;        // Global DB
    var $errmsg;    // errorboodschap
    var $newpaswoord;   // nieuw gegenereerd wachtwoord
    var $send_copy = true;
    var
$admin_name = ADMIN_NAME;
    var
$admin_mail = ADMIN_MAIL;
    var
$webmaster_mail = WEB_MAIL;
    var
$login_page = LOGIN_PAGE;

    /* constructor */
    function members($db)
    {

        $this->db = $db;
    }


    /* Kijk of de login-naam (nicknaam) bestaat in de database */
    function exist_login($naam)
    {
   $db = $this->db;
        $return=false;
        $sql="SELECT * FROM members WHERE nick_name = '".$naam."'";
        if ( !($result = $db->sql_query($sql)) ) { $error = $db->sql_error(); die ( $error['message']); }
           $total = $db->sql_numrows($result);
         if ($total >=1) {
            $return=true;
        }

        return $return;
    }


    /* Kijk of het emailadres bestaat in de database */
    function exist_email($email)
    {
   $db = $this->db;
        $return=false;
        $sql="SELECT * FROM members WHERE email ='".$email."'";
        if ( !($result = $db->sql_query($sql)) ) { $error = $db->sql_error(); die ( $error['message']); }
           $total = $db->sql_numrows($result);
         if ($total >=1) {
            $return=true;
        }

        return $return;
    }


    /* kontroleert of een emailadres geldig is */
    function is_validmail($mail)
    {

    $valid=false;
    $email_host = explode("@", $mail);
    $email_host = $email_host['1'];
    $email_resolved = gethostbyname($email_host);
    if ($email_resolved != $email_host && eregi("^[0-9a-z]([-_.~]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,4}$",$mail))
       $valid = true;
    return $valid;
    }


    /* kontroleert password op lengte en gelijkheid */
    function checkpass($pass1, $pass2)
    {
if ($pass1 == $pass2)
        {
   $this->errmsg=''; // verwijder vorige foutmelding
            if (strlen($pass1) >= PW_LENGTH)
            {

                return true;
            }

            else
            {
                $this->errmsg = $this->messages(32);
                return false;
            }

        }

        else
        {
            $this->errmsg = $this->messages(38);
            return false;
        }

    }


    /* Voeg een nieuwe gebruiker toe */
    function voegtoe($nick,$pass1,$naam,$email){
        $this->realname = $naam; $this->email=$email;
        $db = $this->db;
        $pass1 = md5($pass1);
        $regdatum = date( "Y-m-d H:i:s" );
        $code = $this->gen_random_code();
        $this->info = $code;
        $sql = "INSERT INTO `members` VALUES('','$nick','$pass1','$naam','$email','n','$regdatum','$regdatum',1,'$code')";
        if ( !($result = $db->sql_query($sql)) )
        {

            $error = $db->sql_error(); die ( $error['message']);
        }

        $this->id = mysql_insert_id();
        $send = $this->send_confirmation($naam,$email);
        header("Location: index.php?module=ingeschreven");
    }


    /* activeer gebruiker */
    function activate($id, $code)
    {
   $db = $this->db;
        $sql = "SELECT * FROM `members` WHERE id='".$id."'";
        if ( !($result = $db->sql_query($sql)) ) { $error = $db->sql_error(); die ( $error['message']); }
        if ($db->sql_numrows($result) == 0){
            /* id staat niet in de database */
            $this->errmsg = $this->messages(46);
            return false;
        }

        else
        {
               $row = $db->sql_fetchrow($result);
            $this->email = $row['email'];
            $this->realname = $row['real_name'];
            /* is al geaktiveerd */
            if ($row['active'] == 'j'){
                $this->errmsg = $this->messages(22);
                return false;
            }

            /* code klopt niet */
            if ($code <> $row['extra_info']){
                $this->errmsg = $this->messages(21);
                return false;
            }

            /* alles klopt, nu mogen we activeren */
            $sql = "UPDATE `members` SET active='j', extra_info='' WHERE id='".$id."'";
            if ( !($result = $db->sql_query($sql)) ) { $error = $db->sql_error(); die ( $error['message']); }
            /* update niet gelukt */
            if (mysql_affected_rows() == 0) {
                $this->errmsg = $this->messages(19);
                return false;
            }

            else
            {
                /* activatie gelukt, stuur ook bevestigingsmail */
                $this->errmsg = $this->messages(39);
                $msg= $this->send_mail($this->email, 37, 36, $this->send_copy);
                return true;
            }
        }

        return true;
    }


    /* genereer een random code tbv activatie_id etc. */
    /* sha1 is 40 tekens lang, md5 is 32 tekens lang */
    /* hieronder is dus dubbele encryptie gebruikt */

    function gen_random_code()
    {

    //een array maken met kleine letters van a tot z
    $letters = range("a", "z");
    //alle letters door elkaar gooien
    srand((float)microtime() * 1000000);
    shuffle($letters);
    //imploden van alle letters
    $letters = implode($letters);
    //een hash maken van de letters
    $return = md5(sha1($letters));

    return $return;
    }


    /* maak een nieuw random password */
    function newpass()
    {

        $k_array = array_merge(range('a','z'), range('A','Z'), range(0,9) ); // Toegestane karakters
        srand((float)microtime() * 1000000);
        shuffle($k_array); // door elkaar gooien
        $karakters = implode("", $k_array); // samenvoegen
        $password = substr($karakters, 0, 10); // Tien tekens is genoeg
        return $password;
    }



    /* Stuur een email voor bevestiging */
    function send_confirmation($naam,$email)
    {

        if ($this->send_mail($this->email, 29, 28, $this->send_copy))
            {

                return true;
            }

            else
            {
            return false;
            }
        }




    /* Functie om een email te versturen */
    function send_mail($mail_address, $msg = 29, $subj = 28, $send_admin = false) {
        $header = "From: \"".$this->admin_name."\" <".$this->admin_mail.">\r\n";
        if ($send_admin) $header .= "Bcc: ".$this->webmaster_mail."\r\n";
        $header .= "MIME-Version: 1.0\r\n";
        $header .= "Content-Type: text/plain; charset=\"iso-8859-1\"\r\n";
        $header .= "Content-Transfer-Encoding: 7bit\r\n";
        $subject = $this->messages($subj);
        $body = $this->messages($msg);
        if (mail($mail_address, $subject, $body, $header)) {
            return true;
        }
else {
            return false;
        }
    }

    function
login_check($naam, $pass)
    {

        $db = $this->db;
        if ( (empty($naam)) || (empty($pass)) ){
            $this->errmsg = $this->messages(11);
            return false;
        }

        $sql = "SELECT * FROM `members` WHERE nick_name='".$naam."' AND active='j'";
        if ( !($result = $db->sql_query($sql)) ) { $error = $db->sql_error(); die ( $error['message']); }
        if ($db->sql_numrows($result) == 0){
            /* user staat niet in de database */
            $this->errmsg = $this->messages(10);
            return false;
        }

        else
        {
               $row = $db->sql_fetchrow($result);
            if (!($row['password'] == md5($pass))) {
                /* password klopt niet */
                $this->errmsg = $this->messages(10);
                return false;
            }

            else
            {   /* inloggegevens kloppen, nu de rest inlezen */
                $_SESSION['login'] = 'ok';
                $_SESSION['id'] = $row['id'];
                $this->realname = $row['real_name'];
                $this->nick = $row['nick_name'];
                $this->lastdate = $row['last_date'];
                $this->visits = $row['num_visits'];
                $this->id = $row['id'];
                $this->info = $row['extra_info'];
                $this->email = $row['email'];
                /* even database updaten */
                $datum = date( "Y-m-d H:i:s" );
                $sql = "UPDATE `members` SET num_visits=num_visits+1, last_date='".$datum."' WHERE id='".$row['id']."'";
                if ( !($result = $db->sql_query($sql)) ) { $error = $db->sql_error(); die ( $error['message']); }
                return true;
            }
        }
    }

    function
nick_vergeten($pass, $email)
    {

         $db = $this->db;
        if ( (empty($email)) || (empty($pass)) ){
            $this->errmsg = $this->messages(52);
            return false;
        }

        $sql = "SELECT nick_name, real_name FROM `members` WHERE email='".$email."' AND password='".md5($pass)."'";
        if ( !($result = $db->sql_query($sql)) ) { $error = $db->sql_error(); die ( $error['message']); }
        if ($db->sql_numrows($result) == 0){
            /* kombinatie staat niet in de database */
            $this->errmsg = $this->messages(53);
            return false;
        }

        else{
            $row = $db->sql_fetchrow($result);
            $this->realname = $row['real_name'];
            $this->nick = $row['nick_name'];
            $zend = $this->send_mail($email, 55, 54, $this->send_copy);
            $this->errmsg = $this->messages(27);
            return true;
        }
    }

    function
pass_vergeten($nick, $email)
    {

        $db = $this->db;
        if ( (empty($nick)) || (empty($email)) ){
            $this->errmsg = $this->messages(48);
            return false;
        }

        $sql = "SELECT nick_name, real_name, email FROM `members` WHERE nick_name='".$nick."' AND email='".$email."'";
        if ( !($result = $db->sql_query($sql)) ) { $error = $db->sql_error(); die ( $error['message']); }
        if ($db->sql_numrows($result) == 0){
            /* kombinatie staat niet in de database */
            $this->errmsg = $this->messages(51);
            return false;
        }

        else{
        /* Haal eerst de real name op t.b.v. emailbericht */
        $row = $db->sql_fetchrow($result);
        $this->realname = $row['real_name'];
        /* maak nieuw wachtwoord en zet in de database */
        $this->newpaswoord = $this->newpass();
        $sql = "UPDATE `members` SET password='".md5($this->newpaswoord)."', extra_info='NEWPASS' WHERE nick_name='".$nick."' AND email='".$email."'";
        if ( !($result = $db->sql_query($sql)) ) { $error = $db->sql_error(); die ( $error['message']); }
        /* en stuur bericht naar de gebruiker */
        $zend = $this->send_mail($email, 50, 49, $this->send_copy);
        $this->errmsg = $this->messages(27);
        return true;
        }
    }

    function
wijzig_pass($pass1, $pass2)
    {

        $db = $this->db;
        if (!$this->checkpass($pass1, $pass2)){
            return false;
        }

        else
        { /*workaround met sessie_id omdat variabelen niet onthouden worden */
            $sql = "SELECT real_name, email FROM `members` WHERE id='".$_SESSION['id']."'";
            if ( !($result = $db->sql_query($sql)) ) { $error = $db->sql_error(); die ( $error['message']); }
            $row = $db->sql_fetchrow($result);
            $this->email = $row['email'];
            $this->realname = $row['real_name'];
            $this->newpaswoord = $pass1;
            $sql = "UPDATE `members` SET password='".md5($pass1)."', extra_info='' WHERE id='".$_SESSION['id']."'";
            if ( !($result = $db->sql_query($sql)) ) { $error = $db->sql_error(); die ( $error['message']); }
            $zend = $this->send_mail($this->email, 23, 24, $this->send_copy);
            $this->errmsg = $this->messages(26);
            return true;
        }
    }


    /* Geleend van een andere user-class, lijkt me handig */
    function messages($num)
    {

        $host = "http://".$_SERVER['HTTP_HOST'];
        $msg[10] = "Gebruikersnaam en/of wachtwoord vinden geen overeenkomst in de database.";
        $msg[11] = "Gebruikersnaam en/of wachtwoord zijn leeg!";
        $msg[12] = "Helaas bestaat er al een gebruiker met deze gebruikersnaam en/of e-mail adres.";
        $msg[16] = "Het opgegeven e-mail adres is niet geldig.";
        $msg[17] = "De echte naam mag niet leeg zijn !";
        $msg[19] = "Kan uw account niet activeren, probeer het later opnieuw";
        $msg[21] = "De gebruikte activeringscode is niet geldig!";
        $msg[22] = "Dit account is al geactiveerd !";
        $msg[23] = "Hallo ".$this->realname.",\r\n\r\nJe wachtwoord is gewijzigd.\r\n\r\nJouw nieuwe wachtwoord is ".$this->newpaswoord."\r\n\r\nJe kunt met dit wachtwoord inloggen door klikken op de volgende link:\r\n\r\n".$host.$this->login_page."\r\n\r\nmet vriendelijke groet,\r\n\r\n".$this->admin_name;
        $msg[24] = "Uw wachtwoord is gewijzigd";
         $msg[26] = 'Uw wachtwoord is gewijzigd, u wordt nu uitgelogd, log in met uw nieuwe wachtwoord<br>Klik hiervoor op de volgende link:  <a href="index.php?module=login">inloggen</a>';
        $msg[27] = "Er is een e-mail is aan u verzonden, volg de instructies die daarin vermeld staan.";
          $msg[28] = "Bevestig uw aanmelding ...";
        $msg[29] = "Hallo ".$this->realname.",\r\n\r\nHartelijk dank voor uw inschrijving,\r\n\r\nKlik op de volgende link om de aanmelding te voltooien:\r\n".$host."/members/index.php?module=activeren&actnmbr=".$this->id."&activate=".$this->info."\r\n\r\nmet vriendelijke groeten\r\n".$this->admin_name;
          $msg[32] = "Het wachtwoord mag niet leeg zijn of is korter dan ".PW_LENGTH." tekens !";
        $msg[33] = "Het kontrole wachtwoord moet gelijk zijn aan het wachtwoord !";
         $msg[36] = "Uw account is geactiveerd...";
        $msg[37] = "Hallo ".$this->realname.",\r\n\r\nUw account is nu geactiveerd en u kunt zich aanmelden.\r\n\r\nKlik hiervoor op de volgende link:\r\n".$host."/members/index.php?module=login"."\r\n\r\nmet vriendelijke groet\r\n".$this->admin_name;
          $msg[38] = "Het bevestigings wachtwoord komt niet overeen met het wachtwoord, probeer het opnieuw !";
        $msg[39] = '<p>Je account is nu geactiveerd en u kunt zich aanmelden.</p><p>Klik hiervoor op de volgende link:  <a href="index.php?module=login">hier inloggen</a></p><p> met vriendelijke groet,</p><p>2Markt</p>';
          $msg[42] = "Login-naam mag niet leeg zijn !";
          $msg[44] = "Het email-adres mag niet leeg zijn !";
          $msg[45] = "U moet akkoord gaan met de algemene voorwaarden !";
        $msg[46] = "De gebruikte code's staan niet in de database, uw inschrijving is waarschijnlijk verlopen.<br> Registreer opnieuw s.v.p.<br><br>met vriendelijke groet\r\n".$this->admin_name;
        $msg[47] = "Login-naam en/of wachtwoord mogen niet leeg zijn !";
        $msg[48] = "Gebruikersnaam en/of wachtwoord zijn leeg!";
        $msg[49] = "Wachtwoord vergeten...";
        $msg[50] = "Hallo ".$this->realname.",\r\n\r\nEr is een nieuw wachtwoord voor je aangemaakt.\r\n\r\nJouw nieuwe wachtwoord is : ".$this->newpaswoord."\r\n\r\nWe stellen voor dat je bij inloggen zo spoedig mogelijk je wachtwoord veranderd.\r\n\r\n".$host.$this->login_page."\r\n\r\nmet vriendelijke groet,\r\n\r\n".$this->admin_name;
        $msg[51] = "De kombinatie van Gebruikersnaam met emailadres komt niet voor in de database.";
        $msg[52] = "Emailadres en/of wachtwoord is leeg!";
        $msg[53] = "De kombinatie ven het email-adres met het wachtwoord is niet korrekt, probeer opnieuw.";
           $msg[54] = "Inlognaam vergeten...";
        $msg[55] = "Hallo ".$this->realname.",\r\n\r\nJe bent je inlognaam vergeten ?\r\n\r\nJe inlognaam is : ".$this->nick."\r\n\r\nJe kunt nu weer inloggen op:\r\n\r\n".$host.$this->login_page."\r\n\r\nmet vriendelijke groet,\r\n\r\n".$this->admin_name;

        return $msg[$num];
    }

 }


?>


script: index.php werkt met smarty

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
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
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
<?php
session_start();

include '../includes/start.inc.php';
include '../includes/class_members_inc.php';

/**********************************************************************************************************/
$module = $_GET['module'];
/**********************************************************************************************************/

    if ($_SERVER['REQUEST_METHOD'] == 'POST') {
        if ($_POST['module']=='login'){
            $module = 'login';
        }

        elseif ($_POST['module']=='vergeten'){
            $module='vergeten';
        }

        elseif ($_POST['module']=='changepass'){
            $module='changepass';
        }
    }


$member = new members($db);

if (empty($module))
     {

         $module="register";
    }

/**********************************************************************************************************/
    switch($module){
    /* module registratie */
    case "register" :
        $smarty->assign("module",$module); /* selekteer registratie-form in de template */
        $template = "members.tpl";
        $smarty->assign("contentfile",$template);

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

         /* op knopje Opslaan geklikt ? */
         if ($_POST['opslaan']){
             //print_r($_POST);
            $error='';  /* leegmaken van error */

            /* kontrole login-naam */

            if (!empty($_POST['login_naam'])) {
                $nick = mysql_real_escape_string($_POST['login_naam']);
                $smarty->assign('login_naam',$nick);
                if ($member->exist_login($nick)){
                    $error .= $member->messages(12)."<br />";
                    $smarty->assign("input_fout_nick","input_fout");
                    $smarty->assign('login_naam',$nick);
                }
             }
else{
                $error .= $member->messages(42)."<br />";
                $smarty->assign("input_fout_nick","input_fout");
            }


            /* kontrole echte naam */
            if (!empty($_POST['echte_naam'])) {
                $naam = mysql_real_escape_string($_POST['echte_naam']);
                $smarty->assign('echte_naam',$naam);
            }
else{
                $error .= $member->messages(17)."<br />";
                $smarty->assign("input_fout_naam","input_fout");
            }


            /* kontrole emailadres */
            if (!empty($_POST['email'])){
                $email = mysql_real_escape_string($_POST['email']);
                if ($member->exist_email($email)){
                    $error .= $member->messages(12)."<br />";
                    $smarty->assign("input_fout_email","input_fout");
                    $smarty->assign('email',$email);
                }

                elseif
                (!$member->is_validmail($email)){
                    $error .= $member->messages(16)."<br />";
                    $smarty->assign("input_fout_email","input_fout");
                    $smarty->assign('email',$email);
                }

                $smarty->assign('email',$email);
            }

            elseif (empty($_POST['email'])) {
                $error .= $member->messages(44)."<br />";
                $smarty->assign("input_fout_email","input_fout");
                }


            /* kontrole wachtwoorden */
            if (empty($_POST['pass1'])){
                $error .= $member->messages(32)."<br />";
                $smarty->assign("input_fout_pass","input_fout");
            }

            elseif (!empty($_POST['pass1']))
            {

                $pass1=mysql_real_escape_string($_POST['pass1']);
                $pass2=mysql_real_escape_string($_POST['pass2']);
                if ($member->checkpass($pass1, $pass2)){
                    $smarty->assign('pass1', $pass1);
                    $smarty->assign('pass2', $pass2);
                }
else{
                    $error .= $member->errmsg."<br />";
                    $smarty->assign("input_fout_pass","input_fout");
                    $smarty->assign('pass1',$pass1);
                    $smarty->assign('pass2',$pass2);
                    }

            }



            /* kontrole akkoord met algemene voorwaarden */
            if (!$_POST['agreebox'])
            {

                $error .= $member->messages(45)."<br />";
                $smarty->assign("input_fout_box","input_fout");
               }

            else
            {
                $smarty->assign("agree","ja");
            }


            if (!empty($error)){
                $smarty->assign("fout",$error);
              }


            /* indien geen fouten dan opslaan in de database */
            if (empty($error)){
                $member->voegtoe($nick,$pass1,$naam,$email);
            }

              }
/* einde POST['opslaan']*/

            /* op knopje Annuleren geklikt ? */

            if ($_POST['annuleren']) {
                header("Location: ../home/index.php");
            }

            }
/* einde POST */

         break;  /* einde module register */
/**********************************************************************************************************/
    /* Laat de gebruiker zien dat hij ingeschreven is */

    case "ingeschreven":
        $smarty->assign("module",$module); /* selekteer registratie-form in de template */
        $template = "members.tpl";
        $smarty->assign("contentfile",$template);
        $smarty->assign("boodschap",$member->messages(27));
    break;
/**********************************************************************************************************/
   /* activeren van de gebruiker */

    case "activeren":
        $smarty->assign("module",$module); /* selekteer registratie-form in de template */
        $template = "members.tpl";
        $smarty->assign("contentfile",$template);

          if (is_numeric($_GET['actnmbr'])){
            $id = $_GET['actnmbr'];
            $code = $_GET['activate'];
            /* Laat de resultaat-melding van de activatie zien */
            $resultaat = $member->activate($id, $code);
            $smarty->assign("boodschap",$member->errmsg);
          }

    break;
/**********************************************************************************************************/
    /* module inloggen */

    case "login":
        $smarty->assign("module",$module); /* selekteer login-form in de template */
        $template = "members.tpl";
        $smarty->assign("contentfile",$template);

        if ($_SERVER['REQUEST_METHOD'] == 'POST') {
            $naam = mysql_real_escape_string($_POST['username']);
            $pass = mysql_real_escape_string($_POST['password']);
            /* Indien logincheck fout dan error */
            if (!$member->login_check($naam, $pass)){
                $smarty->assign("fout",$member->errmsg);
            }

            else
            {   /* inloggen is gelukt */
                if ($_SESSION['login'] == 'ok')
                {

                    $smarty->assign("login",'ok');
                    if (!empty($member->info))
                    {

                        $smarty->assign("forcepass","FORCE");
                        header("Location: index.php?module=changepass");
                    }
else{
                        header("Location: ../home/index.php");
                    }

                    //echo $member->id;
                    //echo $member->email;

                }
                else
                {
                    header("Location: ../home/index.php");
                }
            }
        }


    break;
/**********************************************************************************************************/
    /* uitloggen */

    case "logoff":
        $_SESSION['login']="";
        unset($_SESSION['login']);
        $smarty->assign("login",'--');
        header("Location: ../home/index.php");
    break;

/**********************************************************************************************************/
    /* module vergeten wachtwoord of inlognaam */

    case "vergeten":
        $smarty->assign('module',$module);
        $template = "members.tpl";
        $smarty->assign("contentfile",$template);

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

         /* op knopje send_pass geklikt ? */
         if ($_POST['send_pass']){
          /* kontrole login-naam */
            if (!empty($_POST['login_naam'])) {
                $nick = mysql_real_escape_string($_POST['login_naam']);
                $smarty->assign('login_naam',$nick);
            }
else{
                $error .= $member->messages(42)."<br />";
                $smarty->assign("input_fout_nick","input_fout");
            }


            /* kontrole emailadres */
            if (!empty($_POST['email'])){
                $email = mysql_real_escape_string($_POST['email']);
                if
                (!$member->is_validmail($email)){
                    $error .= $member->messages(16)."<br />";
                    $smarty->assign("input_fout_email","input_fout");
                    $smarty->assign('email',$email);
                }

                $smarty->assign('email',$email);
            }

            elseif (empty($_POST['email'])) {
                $error .= $member->messages(44)."<br />";
                $smarty->assign("input_fout_email","input_fout");
                }




            if (empty($error)){
                $err = $member->pass_vergeten($nick, $email);
                //header("Location: ../home/index.php");
                $smarty->assign('module',"passverzonden");
                $template = "members.tpl";
                $smarty->assign("contentfile",$template);
                $boodschap = $member->errmsg;
                $smarty->assign("boodschap",$boodschap);
            }

            else
            {
                $smarty->assign("fout",$error);
            }

            }
  /* op knopje send_pass geklikt ? */
            elseif ($_POST['send_nick']){

                /* kontrole login-naam */
            if (!empty($_POST['pass'])) {
                $pass = mysql_real_escape_string($_POST['pass']);
                $smarty->assign('pass',$pass);
            }
else{
                $error .= $member->messages(32)."<br />";
                $smarty->assign("input_fout_pass","input_fout");
            }


            /* kontrole emailadres */
            if (!empty($_POST['email'])){
                $email = mysql_real_escape_string($_POST['email']);
                if
                (!$member->is_validmail($email)){
                    $error .= $member->messages(16)."<br />";
                    $smarty->assign("input_fout_email2","input_fout");
                    $smarty->assign('email2',$email);
                }

                $smarty->assign('email',$email);
            }

            elseif (empty($_POST['email'])) {
                $error .= $member->messages(44)."<br />";
                $smarty->assign("input_fout_email2","input_fout");
                }




            if (empty($error)){
                $err = $member->nick_vergeten($pass, $email);
                //header("Location: ../home/index.php");
                $smarty->assign('module',"nick_verzonden");
                $template = "members.tpl";
                $smarty->assign("contentfile",$template);
                $boodschap = $member->errmsg;
                $smarty->assign("boodschap",$boodschap);
            }

            else
            {
                $smarty->assign("fout",$error);
            }
            }

        }

        $boodschap = $member->errmsg;
        $smarty->assign('boodschap', $boodschap);
    break;
/**********************************************************************************************************/
/* wachtwoord wijzigen */

    case "changepass":
        $smarty->assign("module",$module); /* selekteer login-form in de template */
        $template = "members.tpl";
        $smarty->assign("contentfile",$template);


        if($_SERVER['REQUEST_METHOD'] == 'POST') {
            /* op knopje Annuleren geklikt ? */
            if ($_POST['annuleren']) {
                header("Location: ../home/index.php");
            }


            if ($_POST['wijzigen']){
                if (empty($_POST['pass1'])){
                     $error .= $member->messages(32)."<br />";
                    $smarty->assign("input_fout_pass","input_fout");
                }

                elseif (!empty($_POST['pass1'])){
                    $pass1=mysql_real_escape_string($_POST['pass1']);
                    $pass2=mysql_real_escape_string($_POST['pass2']);
                    if ($member->wijzig_pass($pass1, $pass2)){
                        $smarty->assign('pass1', $pass1);
                        $smarty->assign('pass2', $pass2);
                    }
else{
                        $error .= $member->errmsg."<br />";
                        $smarty->assign("input_fout_pass","input_fout");
                        $smarty->assign('pass1',$pass1);
                        $smarty->assign('pass2',$pass2);
                    }

                }

                if (empty($error)){
                    $boodschap = $member->errmsg;
                    $smarty->assign('module',"passchanged");
                    $template = "members.tpl";
                    $smarty->assign("contentfile",$template);
                    $smarty->assign("boodschap",$boodschap);
                    /* Log gebruiker uit, hij moet opnieuw inloggen met nieuwe password */
                    unset($_SESSION['id']);
                    unset($_SESSION['login']);
                    header("Location: index.php?module=login");
                }
            }
        }

    break;
    }



/**********************************************************************************************************/
    // uitvoeren


    $smarty->display('core_body.tpl');

?>


Begin maar te schieten, eventueel alvast hartelijk dank
Gewijzigd op 01/01/1970 01:00:00 door Marcel K
 
Joren de Wit

Joren de Wit

15/03/2007 20:23:00
Quote Anchor link
Oei, misschien dat je die lap wel even kunt beperken tot de relevanten stukken. Dus:

- declaratie van je class-members
- de twee relevante methodes (login en de methode die je wilt gebruiken)
- de regels script waarin je het object aanmaakt en de methodes aanroept.
 
Jelmer -

Jelmer -

15/03/2007 21:36:00
Quote Anchor link
Dingen die mogelijk de fout kunnen zijn:

- Je roept functie 1 aan op instantie 1, en functie 2 op instantie 2. In PHP 4 is het niet zo moeilijk om onbedoeld een kopie te maken in plaats van een reference.

- Je roept functie 2 voor functie 1 aan, en niet andersom. Al denk ik dat zo'n soort fout eerder bij een taal met timeouts, asynchroonheid & callbacks voorkomt (lees: Javascript)

- een van je if/else-constructies wordt niet uitgevoerd terwijl je dat wel verwacht.

En dan is er nog: var_dump. Duw het object waar je functie 2 op aanroept eens in, en kijk of ze geset zijn.
 
Marcel K

Marcel K

16/03/2007 14:27:00
Quote Anchor link
bedankt voor de tips heren, ik zal er eens verder mee aan het werk gaan.
 



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.