Hola amigos de forosdelweb, soy nuevo en esto, es mas acabo de registrarme ya me di cuenta que es un exelente foro.
quisiera ver si alguien me puede ayudar, con este codido de php en 3 capas u OO como lo entiendan, resulta que desde el index(pagina inicial) estoy enviando por metodo post un Usuario y una contraseña, pero no estoy muy claro en la comunicación de las clases de conexion y Usuario. de todas maneras ahi les dejo el codigo a ver si alguien me ayuda. gracias de antemano.
EL ERROR QUE ME ENVIA AL EJECUTARLO ES EL SIGUIENTE:
Fatal error: Call to a member function ConectarOracle() on a non-object in C:\AppServ\www\taller pactica\AD\ADUsuario.php on line 15
NOTA:
lo estoy haciendo mysqls aunque la funcion se llame conexionOracle.
Autentificando
<?php session_start(); ?>
<?php
require_once 'class.Usuario.php';
if(isset($_POST['enviar'])) {
$usuario_A = $_POST['usuario_txt'];
$clave_A = $_POST['contrasena_txt'];
$obj = new UsuarioRN();
$obj->setUsuario($usuario_A);
$obj->setClave($clave_A);
if ($obj->verificarUsuario()){
$_SESSION['usuario']= $obj->getUsuario();
$_SESSION['clave']= $obj->getClave();
?>
ClassUsuario
<?php
require_once '../AD/ADUsuario.php';
class UsuarioRN{
private $Usuario;
private $Clave;
public function UsuarioRN(){
}
public function setUsuario ($newVal) {
$this->Usuario = $newVal;
}
public function setClave ($newVal) {
$this->Clave = $newVal;
}
public function getUsuario () { return $this->Usuario; }
public function getClave () { return $this->Clave; }
public function verificarUsuario() {
$sql = new UsuarioSQL();
$valido = $sql->validarUsuario($this->Usuario);
return $valido;
}
}
?>
ClassADUsuario
<?php
require_once 'ConeccionOracle.php';
class UsuarioSql{
private $sql;
public function UsuarioSql() {
$this->sql = new ConeccionOracle("localhost","root","root","reserva _pc_online");
}
public function validarUsuario($usuario){
$sql->ConectarOracle();
$sql->consultarBD ("select * from usuarios where rut ='".$usuario."'");
if ($sql->obtenerdatosBD()){
echo"usuario existe";
}else{
echo "usuario no existe";
}
$sql->limpliaconsulta();
$sql->cerrarConexion();
}
}
?>
Finalmente la conexion
<?php
class ConeccionOracle{
private $host;//servidor donde se encuentra la base de datos
private $usuario;//nombre de usuario de la base de datos
private $contrasena;//password de la base de datos
private $database;//nombre de la base de datos a la que quieres acceder
/////////////////////////////////////////////////////////////////////////
protected $conexion;//nombre de la base de datos a la que quieres acceder
protected $consulta;//aquí se guarda las consultas que se realizan
private $resultado;//aquí se guarda las consultas que se realizan
//constructor, donde se inicializan las variables
public function ConeccionOracle($host,$usuario,$contrasena,$databa se){
$this->host=$host;
$this->usuario=$usuario;
$this->contrasena=$contrasena;
$this->database=$database;
/*if (!isset($this->conexion)){
$this->conexion = (mysql_connect($this->host,$this->usuario,$this->contrasena))or die (mysql_error());
mysql_select_db("reserva_pc_online",$this->conexion)or die (mysql_error());
}*/
}
//función para conectarnos a la base de datos
public function ConectarOracle(){
//realizamos la conexión a la base de datos
if ($this->conexion = mysql_connect($this->host,$this->usuario,$this->contrasena)){
//intentamos acceder a la base de datos que deseamos
if (mysql_select_db($this->database,$this->conexion)){
echo "conexion correcta";
}else{
echo "no se puede seleccionar la base de datos";
}
}else{
echo "no se puede conectar a la base de datos";
}
}
//function que realiza consultas a la bd
public function consultarBD($query){
//aquí se realizan las consultas a la base de datos
$this->consulta = mysql_query($query,$this->conexion);
}
//obtener resultados de la consulta
public function obtenerdatosBD(){
//aquí se obtienen los datos de la consulta
$this->consulta = mysql_fetch_array($this->consulta);
return $this->resultado;
}
//cerramos la conexión con la base de datos
public function cerrarConexion(){
mysql_close($this->conexion);
}
//libera el contenido que se encuentra en el atributo
public function limpliaconsulta(){
mysql_free_result($this->consulta);
}
/*public function closeConnection(){
OCILogoff($this->conn);
}*/
}
?>