Foros del Web » Programando para Internet » PHP »

Error al acceder a base de datos PHP 4 a PHP5

Estas en el tema de Error al acceder a base de datos PHP 4 a PHP5 en el foro de PHP en Foros del Web. Saludos cordiales este es mi primer mensaje y estoy en un problema ojala alguien me pueda ayudar... Resulta que tenia una aplicacion en PHP4 y ...
  #1 (permalink)  
Antiguo 10/09/2011, 09:32
Avatar de alejandromolinac  
Fecha de Ingreso: septiembre-2011
Ubicación: El Salavador
Mensajes: 6
Antigüedad: 12 años, 7 meses
Puntos: 0
Error al acceder a base de datos PHP 4 a PHP5

Saludos cordiales este es mi primer mensaje y estoy en un problema ojala alguien me pueda ayudar...

Resulta que tenia una aplicacion en PHP4 y todo trabajaba bien ahora que he comprado una nueva maquina tengo puesto el PHP5 y ya no me corre resulta que tengo una pagina llamada config_ini.php donde defino algunas variables y las incluyo en la mayoria de paginas a traves de include incluyendo las variables para la conexion a la base de datos...

este es el codigo

<?php
include 'config_ini.php';
echo $data_server_db.$data_user_db.$data_password_db;
//****************************************
//FUNCION PARA CONECTARSE A UNA BASE DE DATOS
function Conectar(){
$conector = mysql_connect($data_server_db, $data_user_db, $data_password_db);
mysql_select_db("crp", $conector);
return ($conector);
}
//CONECTAMOS A BASE DE DATOS

$pass = $_POST[pass];
$user = $_POST[user];
$conn = Conectar();
$sql = "SELECT * FROM usuarios WHERE login = '%$user%' and password = '%$pass%'";
$result = mysql_query($sql , $conn);
$row = mysql_fetch_array($result);
$confirm = $row[password];
?>

Las variables para conectarme a la base de datos las declaro en el archivo config_ini.php
El mensaje de error es:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\Program Files\AppServ\www\crp\pages\Ctrl_user.php on line 18

Pero resulta que cuando pongo directamente los valores de las variables en la pagina si me conecta...

el archivo config_ini.php declara las varibales asi
<?php
//ARCHIVO DE CONFIGURACIÓN DE LA APLICACIÓN
//*****************************************
//Variables para el manejo de base de datos

$data_user_db = 'root';
$data_password_db = '';
$data_server_db = 'localhost';
?>

Espero sus comentarios gracias
  #2 (permalink)  
Antiguo 10/09/2011, 09:42
 
Fecha de Ingreso: agosto-2011
Ubicación: España
Mensajes: 445
Antigüedad: 12 años, 7 meses
Puntos: 89
Respuesta: Error al acceder a base de datos PHP 4 a PHP5

Un error en el include supongo.
  #3 (permalink)  
Antiguo 10/09/2011, 10:04
 
Fecha de Ingreso: agosto-2011
Mensajes: 42
Antigüedad: 12 años, 7 meses
Puntos: 8
Respuesta: Error al acceder a base de datos PHP 4 a PHP5

¿A qué variables te refieres?
Supongo que

$user y $pass

Si es así, no has pensado en colocar un

echo $_POST[pass];
echo $_POST[user];

Para saber que contienen tus variables antes de ser conectado??
__________________
Publicityextrim - http://www.publicityextrim.com
Email: [email protected]
..Lo que tu empresa necesita..
  #4 (permalink)  
Antiguo 10/09/2011, 10:12
Avatar de alejandromolinac  
Fecha de Ingreso: septiembre-2011
Ubicación: El Salavador
Mensajes: 6
Antigüedad: 12 años, 7 meses
Puntos: 0
Respuesta: Error al acceder a base de datos PHP 4 a PHP5

Pues las variables

$data_server_db
$data_user_db
$data_password_db

con las que me conecto a la base de datos es decir servidor, usuario y contraseña

gracias
  #5 (permalink)  
Antiguo 10/09/2011, 11:22
Avatar de hasdpk  
Fecha de Ingreso: agosto-2011
Ubicación: $spain->city( 'Arucas' );
Mensajes: 1.800
Antigüedad: 12 años, 7 meses
Puntos: 297
Respuesta: Error al acceder a base de datos PHP 4 a PHP5

lo que se hace dentro de function() se queda dentro, ni se puede entrar, ni salir.

¿Qué te quiero decir con esto? Imaginate una cárcel, si quieres entrar o salir, tienes que pasar por la puerta principal, con function() es exactamente lo mismo, la función en sí es la cárcel, nada de lo que está dentro puede salir, y si alguien quiere entrar, no puede.

Tienes que crear las puertas para dicha cárcel, eso se hace pasándole los parámetros a function(), o sea, function($parametro1, $parametro2, etc.).

Si quieres que alguien que está dentro salga, puedes usar return, o cualquier otra funcion que imprima por pantalla, por ejemplo echo()

Código PHP:
Ver original
  1. function conectar($server, $user, $password, $bd){
  2.  
  3.     mysql_connect($server, $user, $password);
  4.    
  5.     return mysql_select_db($bd);
  6.  
  7. }

PD: Está un poquito modificado, pero funciona.
  #6 (permalink)  
Antiguo 10/09/2011, 11:39
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Error al acceder a base de datos PHP 4 a PHP5

Te recomiendo que leas esto: Ámbito de las variables
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #7 (permalink)  
Antiguo 10/09/2011, 12:09
Avatar de alejandromolinac  
Fecha de Ingreso: septiembre-2011
Ubicación: El Salavador
Mensajes: 6
Antigüedad: 12 años, 7 meses
Puntos: 0
Respuesta: Error al acceder a base de datos PHP 4 a PHP5

Gracias me ha funcionado pero tengo la interrogante por que me funcionaba todo bien en el PHP4 y ahora que tengo el PHP5 ya no.... ahora logre pasar ese escollo pero me sale un nuevo error :(

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\Program Files\AppServ\www\crp\pages\Sel_menu.php:2) in C:\Program Files\AppServ\www\crp\pages\Seguridad.php on line 4

Esto de pasarme de PHP4 a PHP5 me esta volviendo loco y es que he aprendido PHP yo solo :( asi que no puedo mucho que digamos

Gracias por tu ayuda...



Cita:
Iniciado por hasdpk Ver Mensaje
lo que se hace dentro de function() se queda dentro, ni se puede entrar, ni salir.

¿Qué te quiero decir con esto? Imaginate una cárcel, si quieres entrar o salir, tienes que pasar por la puerta principal, con function() es exactamente lo mismo, la función en sí es la cárcel, nada de lo que está dentro puede salir, y si alguien quiere entrar, no puede.

Tienes que crear las puertas para dicha cárcel, eso se hace pasándole los parámetros a function(), o sea, function($parametro1, $parametro2, etc.).

Si quieres que alguien que está dentro salga, puedes usar return, o cualquier otra funcion que imprima por pantalla, por ejemplo echo()

Código PHP:
Ver original
  1. function conectar($server, $user, $password, $bd){
  2.  
  3.     mysql_connect($server, $user, $password);
  4.    
  5.     return mysql_select_db($bd);
  6.  
  7. }

PD: Está un poquito modificado, pero funciona.
  #8 (permalink)  
Antiguo 10/09/2011, 12:18
Avatar de alejandromolinac  
Fecha de Ingreso: septiembre-2011
Ubicación: El Salavador
Mensajes: 6
Antigüedad: 12 años, 7 meses
Puntos: 0
Respuesta: Error al acceder a base de datos PHP 4 a PHP5

Muchas Gracias andres lo leere la verdad tengo que leer mucho mas puesto que he ido aprendiendo php yo solo poco a poco

Cita:
Iniciado por andresdzphp Ver Mensaje
Te recomiendo que leas esto: [URL="http://php.net/manual/es/language.variables.scope.php"]Ámbito de las variables[/URL]
  #9 (permalink)  
Antiguo 10/09/2011, 12:40
Avatar de hasdpk  
Fecha de Ingreso: agosto-2011
Ubicación: $spain->city( 'Arucas' );
Mensajes: 1.800
Antigüedad: 12 años, 7 meses
Puntos: 297
Respuesta: Error al acceder a base de datos PHP 4 a PHP5

Compueba que no tienen ningún carácter que se imprima por pantalla antes de session_start(), aunque sea un simple espacio antes de <?php, un echo/print o un header().
  #10 (permalink)  
Antiguo 10/09/2011, 12:58
Avatar de alejandromolinac  
Fecha de Ingreso: septiembre-2011
Ubicación: El Salavador
Mensajes: 6
Antigüedad: 12 años, 7 meses
Puntos: 0
Respuesta: Error al acceder a base de datos PHP 4 a PHP5

Pues la verdad si tengo caracteres que se imprimen y los header estan despues de esta funcion :S


Cita:
Iniciado por hasdpk Ver Mensaje
Compueba que no tienen ningún carácter que se imprima por pantalla antes de session_start(), aunque sea un simple espacio antes de <?php, un echo/print o un header().
  #11 (permalink)  
Antiguo 10/09/2011, 13:35
Avatar de hasdpk  
Fecha de Ingreso: agosto-2011
Ubicación: $spain->city( 'Arucas' );
Mensajes: 1.800
Antigüedad: 12 años, 7 meses
Puntos: 297
Respuesta: Error al acceder a base de datos PHP 4 a PHP5

Antes de session_start() no puede haber nada que se imprima por pantala ni header(), si es así, muevelo más arriba.
  #12 (permalink)  
Antiguo 10/09/2011, 14:15
Avatar de alejandromolinac  
Fecha de Ingreso: septiembre-2011
Ubicación: El Salavador
Mensajes: 6
Antigüedad: 12 años, 7 meses
Puntos: 0
Respuesta: Error al acceder a base de datos PHP 4 a PHP5

Muchas gracias lo he solucionado gracias a tu ayuda hora debo corregir todas mis paginas con este problema....
Imagino estos son algunos de locs cambios de PHP4 a PHP5 puesto que antes todo andaba.... al rato tengo otra consulta
Gracias

Cita:
Iniciado por hasdpk Ver Mensaje
Antes de session_start() no puede haber nada que se imprima por pantala ni header(), si es así, muevelo más arriba.

Etiquetas: acceder, mysql, php5, sql, variables, usuarios
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 23:44.