functies aanzetten als het ware

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Nick Audenaerde

Nick Audenaerde

31/08/2011 13:07:32
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
class login {         
public static function LastIp($ip) {
            $ip = $_SERVER['REMOTE_ADDR'];
            $db->query("INSERT INTO user WHERE ip = '" .mysql_real_escape_string($_POST['last_ip']) ."'");
            $_SESSION['last_ip'] = $ip;
        }
}

?>


Ik weet hoe ik een classe iets kan luiten uitvoeren

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php $login = new LogIn($_POST['name'], $_POST['password'], $_POST['last_ip']); ?>


Door bijvoorbeeld dit te gebruiken wat verder in me script staat, ,maar hoe zet ik nou precies een functie aan het werk hoe zorg ik dat mijn script het leest en gebruikt, om de een of andere reden begrijp ik het niet zal misschien heel dom klinken, maar ik ben echt een php leek.
 
PHP hulp

PHP hulp

25/01/2021 19:06:24
 
Wouter J

Wouter J

31/08/2011 13:18:19
Quote Anchor link
Bijna geen 1 regel klopt in dit script. Waarom begin je ook meteen met OOP? Dat kunnen zelfs mensen die 3 jaar PHP scripten nog niet.

Begin gewoon bij het begin door bijv. de phpbeginnershandleiding te lezen. Daarna kun je misschien verder gaan met SQL en OOP (beide handleidingen beschikbaar op die site)
 
Jacco Brandt

Jacco Brandt

31/08/2011 13:20:21
Quote Anchor link
Aangezien deze functie statisch is, moet je hem zo aanroepen: "login::LastIp("127.0.0.1");"
Maar waarschijnlijk wil je dit niet, want dan heeft hij geen beschikking over de meegegeven variabelen, dus probeer dit eens:
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
<?php
class login
{
    // deze functie word aangeroepen als je "new login("","","")" doet.
    public function __construct($name, $password, $ip)
    {

        // Doe er dingen mee.
    }
    
    public function LastIp($ip)
    {

        // Doe er dingen mee
    }
}


$login = new login("name", "password", "127.0.0.1");
$login->LastIp("8.8.8.8");
?>
Gewijzigd op 31/08/2011 13:20:50 door Jacco Brandt
 
Nick Audenaerde

Nick Audenaerde

31/08/2011 13:20:27
Quote Anchor link
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
<?php session_start();
    require_once('db.class.php');

    class login {
    
            public function LogIn($name, $password) {
            
            //als naam en wachtwoord goed gepost zijn.
            if(!isset($_POST['name']) && (!isset($_POST['password']) )) {
                echo ('Velden niet ingevuld');
            }
else {
                global $db;
                
                $res = $db->query("SELECT * FROM user WHERE name = '" . $db->escape_all_not_tolerated_chararacters($name)
                .
"' AND password = '" . $db->escape_all_not_tolerated_chararacters($password) . "'");
                
                if($db->numRows($res == 1)){
            // dan maak sessie loggedin met name/pass. en ip.
                $_SESSION['loggedin'] = $name && $password;    
                echo ("u bent ingelogd   " . $res ." ");        
                }

                else {
                    echo $ip;
                    echo ('naam of wachtwoord onjuist');
                }
            }
        }

        
        
        
        public static function LastIp($ip) {
            $ip = $_SERVER['REMOTE_ADDR'];
            $db->query("INSERT INTO user WHERE ip = '" .mysql_real_escape_string($_POST['last_ip']) ."'");
            $_SESSION['last_ip'] = $ip;
            echo ('zie iets');
        }
        
        
    }


$login = new LogIn($_POST['name'], $_POST['password'], $_POST['last_ip']);
?>



Toevoeging op 31/08/2011 13:21:24:

dat is het complete script, het inloggen werkt wel degelijk :P het probleem is dat ik niet weet/snap hoe ik een functie aanzet zonder dat zinnetje op regel 41 te gebruiken....
ik wil dat die function LastIp ook iets gaat doen.

Toevoeging op 31/08/2011 13:39:53:

nvm het antwoord was vrij simpel heb nu wel een error dat de functie niet bestaat, maar hij roept hem wel aan :P bedankt wouter ik had erover heen gelezen ;)
 
John Acid

John Acid

31/08/2011 13:52:38
Quote Anchor link
Als je een echte leek op php gebied bent, zoals ik, heb je hier meer aan
Gewijzigd op 31/08/2011 13:55:20 door John Acid
 
Nick Audenaerde

Nick Audenaerde

31/08/2011 13:58:56
Quote Anchor link
Ik vind de uitleg op phptuts van wouter iets duidelijker,
maar leek is misschien overdreven ik programmeer normaal gezien java en ben sinds anderhalve week bezig met php :P
 
John Acid

John Acid

31/08/2011 14:10:26
Quote Anchor link
Als je Java kent, moet php niet al te moeilijk zijn, van een echte programmeertaal naar een script taal is volgens de programmeurs makkelijker dan andersom.
 
Nick Audenaerde

Nick Audenaerde

31/08/2011 14:12:48
Quote Anchor link
Ja het is ook makkelijker denk ik (a) maar af en toe van die problemen geef mij maar java >.< (als het kon).
Nu weer een error met het aanroepen van die functie.

Fatal error: Call to undefined function lastIp() in /Applications/MAMP/htdocs/infodatek/classes/class_login_comments.php on line 43

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
<?php session_start();
    require_once('db.class.php');

    class login {
    
            public function LogIn($name, $password) {
            
            //als naam en wachtwoord goed gepost zijn.
            if(!isset($_POST['name']) && (!isset($_POST['password']) )) {
                echo ('Velden niet ingevuld');
            }
else {
                global $db;
                
                $res = $db->query("SELECT * FROM user WHERE name = '" . $db->escape_all_not_tolerated_chararacters($name)
                .
"' AND password = '" . $db->escape_all_not_tolerated_chararacters($password) . "'");
                
                if($db->numRows($res == 1)){
            // dan maak sessie loggedin met name/pass. en ip.
                $_SESSION['loggedin'] = $name && $password;    
                echo ("u bent ingelogd   " . $res ." ");        
                }

                else {
                    echo $ip;
                    echo ('naam of wachtwoord onjuist');
                }
            }
        }

        
        
        
        public function lastIp($ip) {
            $ip = $_SERVER['REMOTE_ADDR'];
            $db->query("INSERT INTO user WHERE ip = '" .mysql_real_escape_string($_POST['last_ip']) ."'");
            $_SESSION['last_ip'] = $ip;
            return $ip;
            echo ('zie iets');
        }
        
        
    }


$login = new LogIn($_POST['name'], $_POST['password']);
lastIp($ip);
?>
 
Jasper DS

Jasper DS

31/08/2011 14:15:32
Quote Anchor link
$login->lastIp($ip) ?
Gewijzigd op 31/08/2011 14:15:54 door Jasper DS
 
Nick Audenaerde

Nick Audenaerde

31/08/2011 14:17:42
Quote Anchor link
Notice: Undefined variable: ip in /Applications/MAMP/htdocs/infodatek/classes/class_login_comments.php on line 43

Notice: Undefined variable: db in /Applications/MAMP/htdocs/infodatek/classes/class_login_comments.php on line 33

Fatal error: Call to a member function query() on a non-object in /Applications/MAMP/htdocs/infodatek/classes/class_login_comments.php on line 33

$login = new LogIn($_POST['name'], $_POST['password']);
$login->lastIp($ip);

Toevoeging op 31/08/2011 14:17:54:

had ik al geprobeerd :P
 
Jasper DS

Jasper DS

31/08/2011 14:18:32
Quote Anchor link
je moet wel $ip aanmaken he! $_SERVER['REMOTE_ADDR'];
+ er is geen verbinding met de db. De var $db is niet vindbaar -> de query mislukt daardoor.
Gewijzigd op 31/08/2011 14:20:01 door Jasper DS
 
Nick Audenaerde

Nick Audenaerde

31/08/2011 14:20:01
Quote Anchor link
$ip = $_SERVER['REMOTE_ADDR']; ik heb IP toch aangemaakt in me functie?
 
Jasper DS

Jasper DS

31/08/2011 14:20:36
Quote Anchor link
Dan doe je $login->lastIp()
 
Nick Audenaerde

Nick Audenaerde

31/08/2011 14:20:48
Quote Anchor link
als ik de functie van ip weghaal kan ik gewoon inloggen?
 
Fabian M

Fabian M

31/08/2011 15:03:57
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
class login {
private $ip;
private $db;      
public static function LastIp($ip) {
            $this->.ip = $_SERVER['REMOTE_ADDR'];
            $this->db->query("INSERT INTO user WHERE ip = '" .mysql_real_escape_string($_POST['last_ip']) ."'");
            $_SESSION['last_ip'] = $ip;
        }
}

?>
 
Nick Audenaerde

Nick Audenaerde

31/08/2011 15:24:42
Quote Anchor link
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
<?php session_start();
    require_once('db.class.php');

    class login {
    
            public function LogIn($name, $password) {
            
            //als naam en wachtwoord goed gepost zijn.
            if(!isset($_POST['name']) && (!isset($_POST['password']) )) {
                echo ('Velden niet ingevuld');
            }
else {
                global $db;
                
                $res = $db->query("SELECT * FROM user WHERE name = '" . $db->escape_all_not_tolerated_chararacters($name)
                .
"' AND password = '" . $db->escape_all_not_tolerated_chararacters($password) . "'");
                
                if($db->numRows($res == 1)){
            // dan maak sessie loggedin met name/pass. en ip.
                $_SESSION['loggedin'] = $name && $password;    
                echo ("u bent ingelogd   " . $res ." ");        
                }

                else {
                    echo ('naam of wachtwoord onjuist');
                }
            }
        }

    
    
        public function lastIp() {
            $ip = $_SERVER['REMOTE_ADDR'];
            $_SESSION['ip'] = $ip;
            mysql_query ("UPDATE user SET last_ip ='$ip'");
        }

    


        public function logOut() {
            
        }
    }

$login = new LogIn($_POST['name'], $_POST['password']);
$login->lastIp();

?>



het werkt!! bedankt mensen :)
 
Jasper DS

Jasper DS

31/08/2011 15:57:29
Quote Anchor link
Geen probleem. :)
 



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.