Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ADODB] Sesje ...
Forum PHP.pl > Forum > PHP
Luke
[php:1:ce11497c5e]<?php
class MainEngine {

var $db;
var $tpl;

function MainEngine() {
include('adodb.inc.php');
$this->db = &ADONewConnection('mysql');
$this->db->SetFetchMode(ADODB_FETCH_ASSOC);
$this->db->Connect('localhost', 'root', '12345', 'db');
$this->db->debuge = true;

$ADODB_SESSION_DRIVER = 'mysql';
$ADODB_SESSION_CONNECT = 'localhost';
$ADODB_SESSION_USER = 'root';
$ADODB_SESSION_PWD = '12345';
$ADODB_SESSION_DB = 'db';
$ADODB_SESSION_TBL = 'sessions';
include('session/adodb-session.php');

include('Smarty.class.php');
$this->tpl = new Smarty;
}
?>[/php:1:ce11497c5e]

Problem:

Kiedy wywoluje jakas operacje klasy np.:

Kod
<?php



$cos = new MainEngine;

$cos->loginUser($login, password);

?>


otrzymuje nastepujace bledy:

Kod
Warning: mysql_pconnect(): Access denied for user: 'root@localhost' (Using password: NO) in c:Servhomeadodbdriversadodb-mysql.inc.php on line 334



Session: connection failed





Warning: session_start(): Cannot send session cookie - headers already sent by (output started at c:Servhomeadodbdriversadodb-mysql.inc.php:334) in C:Servhomepublic_htmlcmsindex.php on line 3



Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at c:Servhomeadodbdriversadodb-mysql.inc.php:334) in C:Servhomepublic_htmlcmsindex.php on line 3


Nie jestem pewien czy zmienne konfiguracji sesji ADODB sa dobrze zadeklarowane (w dobrym miejscu)?
Czy ktos z Was spotkal sie z podobnym problemem?
Luke
[php:1:4566ca568c]<?php
class MainEngine {

var $db;
var $tpl;

function MainEngine() {
include('adodb.inc.php');
$this->db = &ADONewConnection('mysql');
$this->db->SetFetchMode(ADODB_FETCH_ASSOC);
$this->db->Connect('localhost', 'root', '12345', 'cms');
$this->db->debuge = true;

include('session/adodb-session.php');

include('Smarty.class.php');
$this->tpl = new Smarty;
}

function loginUser($login, $password) {
if(empty($login) || empty($password)) {
return(false);
} else {
$row = $this->db->GetRow("SELECT password FROM users WHERE login='".$login."'") or die($this->db->ErrorMsg());
}

if($row['password'] != md5($password)) {
return(false);
} else {
$this->db->Execute("UPDATE users SET session='".session_id()."', ip='".$_SERVER['REMOTE_ADDR']."', date=NOW() WHERE login='".$login."'") or die($this->db->ErrorMsg());
}

if(!$this->db->Affected_Rows()) {
return(false);
} else {
$row = $this->db->GetRow("SELECT userId FROM users WHERE login='".$login."'") or die($this->db->ErrorMsg());
$_SESSION['userId'] = $row['userId'];
return(true);
}
}

?>[/php:1:4566ca568c]

Pozbylem sie bledu po przez reczne wpisanie odpowiednich wartosci w pliku adodb-session.php.

Jednak $this->db i $this->tpl nie sa widoczne wewnatrz metod klasy.

[php:1:4566ca568c]<?php
$row = $this->db->GetRow("SELECT password FROM users WHERE login='".$login."'") or die($this->db->ErrorMsg());
?>[/php:1:4566ca568c]

plecenie to nie jest wykonywane. Dlaczego? Jak powinnino wygladac odwolanie do tych atrybutow aby miec do nich dostep wewnatrz metod?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.