Здравейте, тепърва започвам да се занимавам с ООП и все още имам някой неясноти.
index.php
________
<?php
include('../include/session.php');
?>
<form method="POST" action="proc.php">
username: <input type="text" name="username" />
password: <input type="password" name="password" />
<input type="submit" name="login" value="Вход" />
</form>
session.php
__________
<?php
class Session {
var $logged;
var $last_action;
var $username;
function checkUser($username) {
global $db;
$check = $db->checkUser($username);
if($check == 1) {
$this->username = $_SESSION['username'] = $username;
return $this->username;
} else {
return false;
}
}
function confirmUser($password) {
global $db;
if($db->confirmUser($password) != false) {
return $this->username;
}
}
function startSession() {
session_start();
$this->last_action = $_SESSION['last_action'] = time();
$this->logged = $_SESSION['logged'] = 1;
return true;
}
function login($username, $password) {
if($this->checkUser($username) != false) {
if($this->confirmUser($password) != false ) {
$this->startSession();
}
}
return true;
}
}
$session = new Session();
?>
db.php
_____
<?php
class DB {
public function __construct() {
if(!mysql_connect('localhost', '', '')) {
die(mysql_error());
}
if(!mysql_select_db('new_db')) {
die(mysql_error());
}
}
function query($q) {
return mysql_query($q);
}
function checkUser($username) {
return mysql_num_rows($this->query("SELECT * FROM `users` WHERE `username` = '".$username."' LIMIT 1"));
}
function confirmUser($password) {
global $session;
$q = "SELECT * FROM `users` WHERE `username` = '".$session->username."' AND `password` = '".$password."' LIMIT 1";
$r = $this->query($q);
if(mysql_num_rows($r)==1) {
return $session->username;
} else {
return false;
}
}
}
$db = new DB();
?>
така... в класа $db всичко си работи нормално, но нямам никаква идея защо в index.php не мога да използвам $session след като съм го include-нал... ще съм ви много благодарен ако някой ми помогне
index.php
________
<?php
include('../include/session.php');
?>
<form method="POST" action="proc.php">
username: <input type="text" name="username" />
password: <input type="password" name="password" />
<input type="submit" name="login" value="Вход" />
</form>
session.php
__________
<?php
class Session {
var $logged;
var $last_action;
var $username;
function checkUser($username) {
global $db;
$check = $db->checkUser($username);
if($check == 1) {
$this->username = $_SESSION['username'] = $username;
return $this->username;
} else {
return false;
}
}
function confirmUser($password) {
global $db;
if($db->confirmUser($password) != false) {
return $this->username;
}
}
function startSession() {
session_start();
$this->last_action = $_SESSION['last_action'] = time();
$this->logged = $_SESSION['logged'] = 1;
return true;
}
function login($username, $password) {
if($this->checkUser($username) != false) {
if($this->confirmUser($password) != false ) {
$this->startSession();
}
}
return true;
}
}
$session = new Session();
?>
db.php
_____
<?php
class DB {
public function __construct() {
if(!mysql_connect('localhost', '', '')) {
die(mysql_error());
}
if(!mysql_select_db('new_db')) {
die(mysql_error());
}
}
function query($q) {
return mysql_query($q);
}
function checkUser($username) {
return mysql_num_rows($this->query("SELECT * FROM `users` WHERE `username` = '".$username."' LIMIT 1"));
}
function confirmUser($password) {
global $session;
$q = "SELECT * FROM `users` WHERE `username` = '".$session->username."' AND `password` = '".$password."' LIMIT 1";
$r = $this->query($q);
if(mysql_num_rows($r)==1) {
return $session->username;
} else {
return false;
}
}
}
$db = new DB();
?>
така... в класа $db всичко си работи нормално, но нямам никаква идея защо в index.php не мога да използвам $session след като съм го include-нал... ще съм ви много благодарен ако някой ми помогне