hola gente como estan despues de mucho vuelvo a molestarlos, con una pavada pero bueno... me tiene loco y no le encuentro la vuelta, esto tiene como objetivo registrar un usuario en una pagina ,muestro de donde me parece que empieza el problema, es ta clase hace de nexo entre la base y el programa y a esta le llegan tres paramatros para que trabaje, estos son $username, $passwd y $mail. Todo va bien hasta que se topa con la sentencia en donde sale $insertarStr la cual va a para a la clase conecta que se muestra mas abajo, porque al hacer un debug con netbeans muestra que se pasan perfectamente los datos que contiene las variables pero al llegar a la funcion consultar de la clase conecta el contenido de la variable $insertarStr falla, y algo raro cuando lo probe por primera vez me tomo el contenido de la variable $insertar('insert into usuario(nombUsuario, clave, correo) values("$usrname", "$passwd", "$mail")') pero en la base de datos lo que aparecio fue $usrname, $passwd y $mail es decir las variables del formulario donde cargo los datos y no su contenido crei que eran las comillas pero si se las saco creo que da error tambien asi, no se que hacer si me pueden dar una mano se los agradecere y disculpen por lo extenso.
saludos
Código PHP:
require_once('conexion.php');
class Autentica
{
private $servidor= 'localhost';
private $usuario= 'gerardo';
private $clave= 'gerardo';
private $baseDatos= 'marcadores';
private $base;
//Asi se crea y usa un objeto dentro de una clase
function __construct()
{
$this-> base= new Conecta($this-> servidor, $this-> usuario, $this-> clave, $this-> baseDatos);
}
function registrar($usrname, $passwd, $mail)
{
try
{
$consultaStr= 'select * from usuario where nombUsuario= "$usrname"';
$this-> base->consultar($consultaStr);
}
catch (Exception $e)
{
$msg= $e->getMessage();
echo $msg;
exit();
}
if(mysql_num_rows>0)
{
echo 'El ususario que intenta registrar ya existe';
exit();
}
try
{
$insertarStr= 'insert into usuario(nombUsuario, clave, correo) values("$usrname", "$passwd", "$mail")';
$this-> base->consultar($insertarStr);
}
catch (Exception $e)
{
$msg= $e-> getMessage();
echo $msg;
exit();
}
}
}
Código PHP:
class Conecta
{
private $servidor;
private $usuario;
private $clave;
private $baseDatos;
private $abrirConexion;
function __construct($servidor, $usuario, $clave, $baseDatos)
{
$this-> servidor= $servidor;
$this-> usuario= $usuario;
$this-> clave= $clave;
$this-> baseDatos= $baseDatos;
try //se usa este bloque donde se de puede producir un error(esta conectado a throw new Exception)
{
$this-> conectar_base();
}
catch (Exception $e)
{
$msg= $e->getMessage();
echo $msg;
exit();
}
}
public function conectar_base()//ABRE conexión con la base
{
$this->abrirConexion= @mysql_connect($this->servidor, $this->usuario, $this->clave);
if(!$this->abrirConexion)
{
throw new Exception('<b>ERROR::</b> No se ha podido establecer la
conexion con el SERVIDOR, por favor intente mas tarde.<br>');
exit();
}
$enlazarBase= @mysql_select_db($this->baseDatos, $this->abrirConexion);
if(!$enlazarBase)
{
throw new Exception('<b>ERROR::</b>No sea podido establecer conexion con
la BASE DE DATOS solicitada, por favor intente más tarde.<br>');
exit();
}
}
public function desconectar_base()//CIERRA la conexión con la base
{
$cerrarConexion= @mysql_close($this->abrirConexion);
}
public function consultar($consulta)//usar esta func en caso de una petición mas específica a la base
{
$this->resultado= @mysql_query($consulta);
if(!$this->resultado)
{
throw new Exception('<b>ERROR::</b>No se ha podido realizar la peticion.<br>');
exit();
}
}
public function extraer_registro()//EXTRAE registro o fila de la base según consulta
{
if($fila= @mysql_fetch_assoc($this->resultado))
{
return $fila;
}
else
{
return false;
}
}
}