Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Problema con odbc_connect

Estas en el tema de Problema con odbc_connect en el foro de PHP en Foros del Web. Hola a todos. Tengo el siguiente problema, tengo una aplicación la cual ya está terminada pero el desarrollo lo hice en un entorno Windows, y ...
  #1 (permalink)  
Antiguo 18/03/2013, 09:31
 
Fecha de Ingreso: abril-2008
Ubicación: El Salvador
Mensajes: 736
Antigüedad: 16 años
Puntos: 47
Problema con odbc_connect

Hola a todos.

Tengo el siguiente problema, tengo una aplicación la cual ya está terminada pero el desarrollo lo hice en un entorno Windows, y ahora quiero publicarla pero debe estar alojada en un servidor Ubuntu, y me ha surgido el problema que no funciona..

Al parecer el problema está en que la conexión la he hecho mediante ODBC, ya hice la instalación y configuración necesaria en el servidor y he hecho las pruebas necesarias y si funciona la conexión por odbc, pero cuando ejecuto la aplicación no se comporta como debería.

Les dejo una porción de codigo que he estado ocupando para probar es un login muy básico y resulta que cuando quiero ver el numero de filas devueltas con echo odbc_num_rows($login) me dice "0" cuando debería devolverme 1 porque el usuario y la clave ingresada es correcta, esto lo he probado en windows y ahi si me devuelve 1 pero en linux me dice "0" alguien tiene idea de lo que sucede??


Código:
if(isset($_POST["entrar"])){
	require_once("inc/funciones.inc");
	if(isset($_POST["usuario"]) AND limpiarCadena($_POST["usuario"])!=""){
		$us=$_POST["txtUser"];
		require_once("config.php");
		require_once("odbc_connect.php");

		$sql="SELECT * FROM usuario WHERE usuario='".trim(limpiarCadena($_POST["usuario"]))."' AND clave='".trim(encriptarPwd(limpiarCadena($_POST["clave"])))."'";
		$login = odbc_exec($dbconect,$sql) or die("Error al intentar validar la información de ingreso.");
		echo odbc_num_rows($login);
		if(odbc_num_rows($login)==1){
			$rowMov = odbc_fetch_array($login);
			if($rowMov["estado"]=='A'){
				echo "Usuario Autenticado";
			}else{ echo "Usuario inactivo.";}
		}else{
			echo "Usuario y/o Clave incorrecta.";
		}
	}
}
  #2 (permalink)  
Antiguo 18/03/2013, 11:13
 
Fecha de Ingreso: noviembre-2009
Mensajes: 535
Antigüedad: 14 años, 5 meses
Puntos: 25
Respuesta: Problema con odbc_connect

has probado de cambiar el separador (/) por (\)
__________________
cada vez que aprendes algo te crees que no sabes nada
  #3 (permalink)  
Antiguo 18/03/2013, 11:29
 
Fecha de Ingreso: abril-2008
Ubicación: El Salvador
Mensajes: 736
Antigüedad: 16 años
Puntos: 47
Respuesta: Problema con odbc_connect

Cita:
Iniciado por arros Ver Mensaje
has probado de cambiar el separador (/) por (\)
Cual separado??, te refieres al del mensaje usuario y/o clave???
Si te refieres a eso mmmm no tiene nada que ver porque por si ves en la parte superior hago
Código:
		echo odbc_num_rows($login);
		if(odbc_num_rows($login)==1){
			$rowMov = odbc_fetch_array($login);
			if($rowMov["estado"]=='A'){
				echo "Usuario Autenticado";
			}else{ echo "Usuario inactivo.";}
		}else{
			echo "Usuario o Clave incorrecta.";
		}
Con lo que antes de evaluar en los if hago una impresión del numero de filas devueltas por la consulta y ese es el problema, me devuelve 0 filas cuando debería devolverme 1, y nada mas por obediecia cambie el mensaje a Usuario o clave incorrecta pero nada sigue devolviendome 0
  #4 (permalink)  
Antiguo 18/03/2013, 11:36
 
Fecha de Ingreso: noviembre-2009
Mensajes: 535
Antigüedad: 14 años, 5 meses
Puntos: 25
Respuesta: Problema con odbc_connect

el separador de archivos
inc/funciones.inc
inc\funciones.inc
__________________
cada vez que aprendes algo te crees que no sabes nada
  #5 (permalink)  
Antiguo 18/03/2013, 11:43
 
Fecha de Ingreso: abril-2008
Ubicación: El Salvador
Mensajes: 736
Antigüedad: 16 años
Puntos: 47
Respuesta: Problema con odbc_connect

arros muchas gracias por tu ayuda, pero realizando el cambio que me sugieres me da este error

Warning: require_once(inc\funciones.inc): failed to open stream: No such file or directory in /var/www/consulta/login.php on line 8 Fatal error: require_once(): Failed opening required 'inc\funciones.inc' (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/consulta/login.php on line 8
  #6 (permalink)  
Antiguo 18/03/2013, 11:52
 
Fecha de Ingreso: noviembre-2009
Mensajes: 535
Antigüedad: 14 años, 5 meses
Puntos: 25
Respuesta: Problema con odbc_connect

asegúrate que el archivo funciones.inc, esta en la mista ubicación. y cuales el error que te da, usando
Código PHP:
Ver original
  1. odbc_exec($dbconect,$sql) or die(mysql_error())
__________________
cada vez que aprendes algo te crees que no sabes nada
  #7 (permalink)  
Antiguo 18/03/2013, 11:57
 
Fecha de Ingreso: abril-2008
Ubicación: El Salvador
Mensajes: 736
Antigüedad: 16 años
Puntos: 47
Respuesta: Problema con odbc_connect

Gracias por tu tiempo..

Si el archivo está en la misma ubicación y al colocar odbc_exec($dbconect,$sql) or die(mysql_error());

No me genera ningun error, es mas hasta mando a imprimir la consulta, la cual luego copio del navegador y pruebo en el gestor de BD y en efecto si me devuelve un registro..
  #8 (permalink)  
Antiguo 18/03/2013, 14:32
 
Fecha de Ingreso: abril-2008
Ubicación: El Salvador
Mensajes: 736
Antigüedad: 16 años
Puntos: 47
Respuesta: Problema con odbc_connect

Alguien tiene idea del porque tengo problemas con esto???
  #9 (permalink)  
Antiguo 18/03/2013, 15:11
 
Fecha de Ingreso: noviembre-2009
Mensajes: 535
Antigüedad: 14 años, 5 meses
Puntos: 25
Respuesta: Problema con odbc_connect

publica tus archivos odbc_connect.php y config.php
__________________
cada vez que aprendes algo te crees que no sabes nada
  #10 (permalink)  
Antiguo 18/03/2013, 15:17
 
Fecha de Ingreso: abril-2008
Ubicación: El Salvador
Mensajes: 736
Antigüedad: 16 años
Puntos: 47
Respuesta: Problema con odbc_connect

Este es el contenido del config

Código PHP:
Ver original
  1. <?php
  2.     /********Datos de conexion BD*******/
  3.     define("_IP_SqlServer", "192.101.152.1");
  4.     define("_ODBC", "SQLServer");
  5.     define("_USU_DB", "usuario");
  6.     define("_US_PASS", "clave");
  7.  
  8. ?>

el de conexión es


Código PHP:
Ver original
  1. <?php
  2.     $dbconect = odbc_connect(_ODBC, _USU_DB, _US_PASS);
  3.     if ($dbconect == 0) {
  4.         echo("Ha fallado la conexión a la base de datos.");
  5.         $sqlerror = odbc_errormsg($dbconect);
  6.         echo($sqlerror);
  7.         exit();
  8.     }
  9. ?>
  #11 (permalink)  
Antiguo 18/03/2013, 15:35
 
Fecha de Ingreso: noviembre-2009
Mensajes: 535
Antigüedad: 14 años, 5 meses
Puntos: 25
Respuesta: Problema con odbc_connect

ententa cambiar la configuracion del archivo config.php en ves de numero ip o dns pon solo localhost o 127.0.0.1
__________________
cada vez que aprendes algo te crees que no sabes nada
  #12 (permalink)  
Antiguo 18/03/2013, 15:53
 
Fecha de Ingreso: abril-2008
Ubicación: El Salvador
Mensajes: 736
Antigüedad: 16 años
Puntos: 47
Respuesta: Problema con odbc_connect

resulta de la base está alojada en un servidor remoto por lo cual debo colocar la IP.
Por otra parte como comentaba al inicio esto mismo ejecuto en mi pc en un ambiente windows y no tengo problemas pero en linux no funciona :(
  #13 (permalink)  
Antiguo 18/03/2013, 15:57
 
Fecha de Ingreso: noviembre-2009
Mensajes: 535
Antigüedad: 14 años, 5 meses
Puntos: 25
Respuesta: Problema con odbc_connect

entonces coloca el puerto de mysql 3306
__________________
cada vez que aprendes algo te crees que no sabes nada
  #14 (permalink)  
Antiguo 18/03/2013, 16:12
 
Fecha de Ingreso: abril-2008
Ubicación: El Salvador
Mensajes: 736
Antigüedad: 16 años
Puntos: 47
Respuesta: Problema con odbc_connect

Mira el servidor es SQL Server y la conexión si funciona porque he hecho la siguiente prueba
antes de evaluar if(odbc_num_rows($login)==1) mando a imprimir el usuario recuperado de la consulta y en efecto me devuelve el usuario, por lo que si hace la conexion por lo que concluyo que el odbc_num_rows($login) no devuelve 1 cuando debería de hacerlo porque si se recupero una fila

Código PHP:
Ver original
  1. if(isset($_POST["entrar"])){
  2.     require_once("inc/funciones.inc");
  3.     if(isset($_POST["usuario"]) AND limpiarCadena($_POST["usuario"])!=""){
  4.         $us=$_POST["txtUser"];
  5.         require_once("config.php");
  6.         require_once("odbc_connect.php");
  7.  
  8.         $sql="SELECT * FROM usuario WHERE usuario='".trim(limpiarCadena($_POST["usuario"]))."' AND clave='".trim(encriptarPwd(limpiarCadena($_POST["clave"])))."'";
  9.         $login = odbc_exec($dbconect,$sql) or die("Error al intentar validar la información de ingreso.");
  10.  
  11.  
  12.         $rowMov = odbc_fetch_array($login);
  13.         echo $rowMov["usuario"];
  14.  
  15.         if(odbc_num_rows($login)==1){
  16.             $rowMov = odbc_fetch_array($login);
  17.             if($rowMov["estado"]=='A'){
  18.                 echo "Usuario Autenticado";
  19.             }else{ echo "Usuario inactivo.";}
  20.         }else{
  21.             echo "Usuario yo Clave incorrecta.";
  22.         }
  23.     }
  24. }
  #15 (permalink)  
Antiguo 18/03/2013, 16:13
 
Fecha de Ingreso: abril-2008
Ubicación: El Salvador
Mensajes: 736
Antigüedad: 16 años
Puntos: 47
Respuesta: Problema con odbc_connect

Tienes alguna idea porque al evaluar los odbc_num_rows($login) me dice 0 como si no devolviera un registro??
  #16 (permalink)  
Antiguo 18/03/2013, 16:16
 
Fecha de Ingreso: noviembre-2009
Mensajes: 535
Antigüedad: 14 años, 5 meses
Puntos: 25
Respuesta: Problema con odbc_connect

la columna de usuario que representa? por que se es un nombre solamente comprueba que existe , pero se representa un (int) 1 == activo entonces es correcto
__________________
cada vez que aprendes algo te crees que no sabes nada
  #17 (permalink)  
Antiguo 18/03/2013, 16:22
 
Fecha de Ingreso: noviembre-2009
Mensajes: 535
Antigüedad: 14 años, 5 meses
Puntos: 25
Respuesta: Problema con odbc_connect

o mejo enseñame el registro en la base de datos y have una prueba
__________________
cada vez que aprendes algo te crees que no sabes nada
  #18 (permalink)  
Antiguo 18/03/2013, 16:23
 
Fecha de Ingreso: abril-2008
Ubicación: El Salvador
Mensajes: 736
Antigüedad: 16 años
Puntos: 47
Respuesta: Problema con odbc_connect

la columna usuario es el nombre del usuario, la tome al hazar no representa nada en ese momento unicamente la tome porque queria ver si existia algo recuperado de la base, porque si existe un registro recuperado del a base entiendo que odbc_num_rows deberia devolverme "1" que significa que un registro se recupero de la base por lo tanto la clave y usuario ingresados son correctos y puedo autenticarme, creo que en esa logica estoy en lo correcto
  #19 (permalink)  
Antiguo 18/03/2013, 16:31
 
Fecha de Ingreso: noviembre-2009
Mensajes: 535
Antigüedad: 14 años, 5 meses
Puntos: 25
Respuesta: Problema con odbc_connect

prueba asi
Código PHP:
Ver original
  1. if(!empty($login)){
  2.             $rowMov = odbc_fetch_array($login);
  3.             if($rowMov["estado"]=='A'){
  4.                 echo "Usuario Autenticado";
  5.             }else{ echo "Usuario inactivo.";}
  6.         }else{
  7.             echo "Usuario yo Clave incorrecta.";
  8.         }
__________________
cada vez que aprendes algo te crees que no sabes nada

Etiquetas: select, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:54.