classes en functies

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Koen Bokern

Koen Bokern

28/04/2007 22:02:00
Quote Anchor link
Hallo beste mensen,

Ik heb een login systeem van iemand, met een class en functies. Nu weet ik alleen niet hoe ik dit moet toepassen.

Dit is het script:

class.login.php
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
<?php

class login
{
    var
$userid;
    var
$tabel;
    var
$cookiepath;
    
    function
login($userid)
    {

        $this -> user_id = $userid;
        $this -> tabel = 'logins';
        $this -> cookiepath = 'http://www.nn-tutorials.nl';
    }
    
    function
logincheck()
    {

        $query = mysql_query("SELECT * FROM ". $this -> tabel ." WHERE uid = '". $_COOKIE['uid'] ."' AND tijd > DATE_SUB(NOW(), INTERVAL 7 DAY) AND ip = '". $_COOKIE['ip'] ."'") or die (mysql_error());
        if (mysql_num_rows($query) == false)
        {

            return false;
        }

        else
        {
            $rij = mysql_fetch_assoc($query);
            if ($_COOKIE['code'] != $rij['code'] OR $_COOKIE['ip'] != $rij['ip'] OR $_COOKIE['uid'] != $rij['uid'])
            {

                $this -> clean_login($_COOKIE['uid']);
            }

            else
            {
                return true;
            }
        }
    }
    
    function
user_login($username, $password)
    {

        $query = mysql_query("SELECT * FROM users WHERE gebruikersnaam = '". $username ."' AND wachtwoord = '". md5($password) ."'");
        if (mysql_num_rows($query) == false)
        {

            return 0;
        }

        else
        {
            $rij = mysql_fetch_assoc($query);
            if ($rij['active'] == true)
            {

                $this -> user_id = $rij['id'];
                $this -> create_login();
                $_SESSION['username'] = $rij['gebruikersnaam'];
                return 1;
            }

            else
            {
                return 3;
            }
        }
    }
    
    function
clean_login($userid)
    {

        setcookie('code', '', time(), '/', $this -> cookiepath);
        setcookie('uid', 0, time(), '/', $this -> cookiepath);
        setcookie('ip', '', time(), '/', $this -> cookiepath);
        
        if (!empty($userid))
        {

            mysql_query("DELETE FROM ". $this -> tabel ." WHERE uid = '". $userid ."'");
        }
    }
    
    function
create_login()
    {

        $code = md5(rand(0, 99999));
        
        setcookie('code', $code, time()+60*60*24*7, '/', $this -> cookiepath);
        setcookie('uid', $this -> user_id, time()+60*60*24*7, '/', $this -> cookiepath);
        setcookie('ip', $_SERVER['REMOTE_ADDR'], time()+60*60*24*7, '/', $this -> cookiepath);
        
        mysql_query("REPLACE INTO ". $this -> tabel ." (tijd, code, uid, ip) VALUES (NOW(), '". $code ."', '". $this -> user_id ."', '". $_SERVER['REMOTE_ADDR'] ."' )") or die (mysql_error());
    }
}


?>


login.php
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
<?php
session_start();
include ('db_connect.php');
include_once ('class.login.php');

$login = new login($_COOKIE['uid']);
$loginstatus = $login -> user_login($_POST['username'], $_POST['password']);

switch ($loginstatus)
{
  case
0:
     echo "gebruikersnaam of wachtwoord fout";
     break;
  case
1:
     header ('location: http://www.nn-tutorials.nl');
     break;
  case
2:
     break;
  case
3:
     echo "account nog niet geactiveerd";
     break;
}


/*
0 = gebruikersnaam/wachtwoord fout
1 = succesvol ingelogd
2 = NIETS
3 = account nog niet geactiveerd
*/

?>


De vragen
1) Hoe controleer ik of iemand is inglogd met function logincheck()
2) Hoe kan iemand uitloggen met function clean_login($userid)
--------------------------

Ik ben nog niet echt ervaren met het gebruik van classes en functies.

Ik hoop dat iemand me kan helpen, want de gene waarvan ik het kreeg is op het moment heel druk, en ik wil mn site erg graag functioneel hebben.
 
PHP hulp

PHP hulp

22/12/2024 20:25:43
 
Dizzy

Dizzy

28/04/2007 22:27:00
Quote Anchor link
Mr. roelofs heeft hier een mooie tutorial over gemaakt :) (over OOP)
klikje
 
Koen Bokern

Koen Bokern

28/04/2007 23:10:00
Quote Anchor link
hmm even snel naar gekeken, maar ik kom er nog niet echt uit.

Ik probeer dit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
if ($login -> logincheck() == 0)  
{
      
     include ('login.php');      
     return false;  
}

?>


Hij geeft ten alle tijden de waarde 0 aan. Ook als ik mezelf inlog. In de MySQL database staan wel gegevens, en tevens wordt er een cookie aangemaakt.
 
Koen Bokern

Koen Bokern

29/04/2007 00:20:00
Quote Anchor link
Misschien heb ik niet de juiste type velden in de mysql?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
CREATE TABLE `logins` (
  `uid` varchar(255) NOT NULL default '',
  `tijd` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
  `ip` varchar(255) NOT NULL default '',
  `code` varchar(255) NOT NULL default ''
) ENGINE=MyISAM DEFAULT CHARSET=latin1;


Ik kom er echt niet uit.... Ik heb al van alles geprobeerd
 
Manaus

Manaus

29/04/2007 11:04:00
Quote Anchor link
bumpe pas na 24 uur - edit knop
 



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.