Login script
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)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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);
}
}
?>
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="" method="post">
<input type="text" name="username" value="" />
<input type="password" name="password" value="" />
<input type="submit" value="Save" />
</form>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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>';
}
?>
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>';
}
?>
login, logout en register
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)
Gewijzigd op 07/07/2010 16:23:18 door Ruben Portier
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.
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?
Oke, bedankt. Ik heb hier wat gevonden: 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
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.
En moet ik voor elke function private, public ofzo gebruiken? want hij doet dat niet
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.