Login script

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ruben Portier

Ruben Portier

07/07/2010 16:13:12
Quote Anchor link
Beste

Ik ben vrij nieuw bij OOP. Nu wil ik een login script gaan maken die gebruik maakt van OOP. Ik heb al een basis en wil eerst even weten wat ik goed / fout doe en wat nog anders moet. Het is nog niet echt inloggen. het is een class om te registeren.

Er wordt ook nog niets naar een database verstuurd. Het is simpelweg een input die dan via OOP de password omzet naar md5 enzo.

En hoe kan ik dan die gebruikersnaam enzo in de database zetten? Ik bedoel zal ik wat maken dat je iets hebt van: setUsername, setPassword, setName, setStreet enzo. Deze allemaal public functions van maken en dan ze allemaal achtereenvolgens laten uitvoeren ofzo? Want ik snap nog niet goed hoe OOP werkt. Of kunnen jullie mij een zeer goed simpel voorbeeld van zo'n registratie + login script in OOP tonen?

Alvast heel erg bedankt!

CODE:

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
<?php
class Register
{
    public $username;
    public $password;
    
    public function setUsername($name)
    {

        $this->username = htmlspecialchars(stripslashes($name));
    }

    
    public function setPassword($pass)
    {

        $this->password = md5(htmlspecialchars(stripslashes($pass)));
    }

    
    public function getData()
    {

        return array($this->username, $this->password);
    }
}

?>


<form action="
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php $_SERVER['PHP_SELF'] ?>
" method="post">
<input type="text" name="username" value="" />
<input type="password" name="password" value="" />
<input type="submit" value="Save" />
</form>

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
<?php
if(strtolower($_SERVER['REQUEST_METHOD']) == 'post')
{

    $class01 = new Register();
    if(!empty($_POST['username']))
    {

        $class01->setUsername($_POST['username']);
    }

    if(!empty($_POST['password']))
    {

        $class01->setPassword($_POST['password']);
    }

    
    $userData = $class01->getData();
    $_SESSION['AccountData']['Username'] = $userData[0];
    $_SESSION['AccountData']['Password'] = $userData[1];
    echo 'Je gebruikersnaam is: <strong>'.$_SESSION['AccountData']['Username'].'</strong> en je md5 gegenereerde wachtwoord is: <strong>'.$_SESSION['AccountData']['Password'].'</strong>';
}

?>
 
PHP hulp

PHP hulp

21/01/2020 03:22:49
 
Martijn Boshoven

Martijn Boshoven

07/07/2010 16:17:12
Quote Anchor link
Ik zou user als class maken met de functies:
login, logout en register
 
Ruben Portier

Ruben Portier

07/07/2010 16:18:20
Quote Anchor link
Ow dus eigenlijk moet ik niet een class login, logout en register doen? Maar alles in een?

EDIT:

Meer als dit dan? En kan ik dan in elke public function nog eens een function maken of hoe zal ik dat dan allemaal doen? En moet ik public, private of wat moet ik gebruiken?

Dit heb ik nu:

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
<?php
class User
{
    public function Login($username, $password)
    {
    }

    
    public function Logout()
    {
    }

    
    public function Register($username, $password, $email)
    {
    }
}

?>
Gewijzigd op 07/07/2010 16:23:18 door Ruben Portier
 
Martijn Boshoven

Martijn Boshoven

07/07/2010 16:25:31
Quote Anchor link
Quote:
En kan ik dan in elke public function nog eens een function maken of hoe zal ik dat dan allemaal doen?


waarom zou je dat willen?

Quote:
En moet ik public, private of wat moet ik gebruiken?


Public lijkt me.
Public functies zijn van buiten de class aanroepbaar
private alleen binnen de class
en protected binnen de class of afgeleiden van de class.
 
Ruben Portier

Ruben Portier

07/07/2010 16:27:34
Quote Anchor link
Oke, bedankt. Ik heb hier wat gevonden: http://www.massassi.com/php/articles/classes/

Ik zal dat even bekijken. Ziet dat script er goed uit? Wel snap ik niet alles. En volgens mij is het toch ook niet nodig dat ik verbinding maak met mijn mysql database via OOP? Dat kan toch ook nog gewoon?

Verder snap ik ook niet waarom hij dit gebruikt:

var $userID,
$userName,
$userPassword,

EDIT: En als ik nu wil registeren. Zal ik dan ook in die registerUser function controleren of alle velden ingevuld zijn enzo? Of moet ik daar een aparte function voor maken?
Gewijzigd op 07/07/2010 16:31:33 door Ruben Portier
 
Martijn Boshoven

Martijn Boshoven

07/07/2010 16:31:21
Quote Anchor link
ziet er zo snel bekeken wel goed uit.

var $userID,
$userName,
$userPassword,

daarmee geeft hij aan welke variablen de class user heeft.

Ik zou echter dit doen:

private $userID;
private $userName;
( ww niet opslaan in de class denk ik )

de variablen hoef je niet buiten de class te gebruiken.
 
Ruben Portier

Ruben Portier

07/07/2010 16:40:35
Quote Anchor link
Oke, en waarom doe jij private en hij doet var?
En moet ik voor elke function private, public ofzo gebruiken? want hij doet dat niet
 
L B

L B

07/07/2010 22:13:40
Quote Anchor link
private, public en protected is van php 5 of hoger. Bij lagere versies zet je 'var' voor de variabele om aan te geven dat het een variabele is.
 



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.