Foros del Web » Programando para Internet » PHP »

Duda con mis variables de sesion

Estas en el tema de Duda con mis variables de sesion en el foro de PHP en Foros del Web. Hola, intento enviar desde una página a otra una variable de sesión que alberga el identificador de conexión MySQL, con el que tendré que interactuar ...
  #1 (permalink)  
Antiguo 21/07/2007, 09:47
 
Fecha de Ingreso: abril-2006
Mensajes: 21
Antigüedad: 18 años
Puntos: 0
Duda con mis variables de sesion

Hola, intento enviar desde una página a otra una variable de sesión que alberga el identificador de conexión MySQL, con el que tendré que interactuar en todo momento para hacer consultas.

En el archivo conexion.php valido usuario y contraseña en la base de datos, y me da el identificador de conexión, que lo inserto como variable de sesión. En la siguiente página, eleccion.php, supuestamente intento usar esa variable de sesión pero me da valor cero...

He intentado lo siguiente (siempre poniendo session_start() arriba del todo):

$_SESSION[identMySQL] = $conexion_ID;
$_SESSION['identMySQL'] = $conexion_ID;
$_SESSION["identMySQL"] = $conexion_ID;

De ninguna de las maneras me sale la asignación.

Aquí os pongo el código:

conexion.php:

<?php
session_start();

$aceptar = $_POST["aceptar"];
if (isset($aceptar)){

$username = $_POST["usuario"];
$password = $_POST["password"];

$conexion_ID = mysql_connect("localhost",$username,$password)
or die("No se pudo conectar:" . mysql_error());

if ($conexion_ID){ // User y Pass correctos
echo "Bienvenido: ".$username ;

if (mysql_select_db("vallasd",$conexion_ID)){ //Entrada a la base de datos correcta

// Ahora conseguiremos los permisos del usuario
$sql_Query = "select * from p" . $username ;
$consulta_Permisos = mysql_query($sql_Query, $conexion_ID);

// Guardamos la variable de sesion

$_SESSION[identMySQL] = $conexion_ID ;

...
...
...
Luego aparecerá un formulario que me trasladará a "eleccion.php":

Código eleccion.php


<?php
session_start();

$aceptar = $_POST["aceptar"];
if (isset($aceptar)){

// Primero con los argumentos ocultos
$tipoDeBusqueda = $_POST["username"];
// $conexion_ID = $_POST["conexion_ID"];
// Luego con el radioButton elegido
$tipoConsulta = $_POST["tablaConsulta"];

print_r($_SESSION);
$conexion_ID = $_SESSION[identMySQL];
print_r($_SESSION);


// Vemos nuevamente los permisos de usuario
echo "conexion_ID ".$conexion_ID;
$sql_Query = "select * from p" . $username ;
$consulta_Permisos = mysql_query($sql_Query, $conexion_ID);


....
...
...

Que me da fallo en esta última consulta, diciendo lo siguiente:

Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in C:\wamp\www\20-07-07\eleccion.php on line 21


Un saludo y gracias.
  #2 (permalink)  
Antiguo 21/07/2007, 10:14
 
Fecha de Ingreso: abril-2007
Mensajes: 44
Antigüedad: 17 años
Puntos: 0
Re: Duda con mis variables de sesion

Hola.

Te recomiendo que uses el require_once en vez de variables session para almacenar el identificador de conexion a la base de datos.

Es decir..

Fichero conectar.php

Código PHP:
<?
$ID_CONEXION
=mysql_connect("host","user","password");
mysql_connect_db("base_de_datos");
?>
Ahora en cada página donde necesites este identificador incluye el anterior de la forma

Código PHP:
<?
require_once("conectar.php");
$s="Select id from tabla order by id":
$r=mysql_query($s);
// Y todo lo demas..
?>
  #3 (permalink)  
Antiguo 21/07/2007, 10:15
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Re: Duda con mis variables de sesion

Eso no funciona así, la conexión la tenés que hacer en cada página, esto es, ejecutar mysql_connect en cada página php.

Podrías mantener la conexión abierta usando mysql_pconnect, pero en realidad depende del uso que le des, a veces no es más que una sobrecarga para el servidor.

Con respecto a la primera pregunta de tu mensaje, la primera opción está mal, las otras son válidas.

Para saber por qué está mal, fijate en la sección "Recomendaciones sobre matrices y cosas a evitar" de esta página: http://php.net/types.array


Saludos.
  #4 (permalink)  
Antiguo 21/07/2007, 10:39
 
Fecha de Ingreso: abril-2006
Mensajes: 21
Antigüedad: 18 años
Puntos: 0
Re: Duda con mis variables de sesion

mmm...muxas gracias.

Pero todavia me queda algo sobre require_once, si tengo dos variables con el mismo nombre, cual coge? De esta manera, si me decis que existen problemas, no podria definir variables iguales no ?

Un saludo. Gracias.


RE:

Incluso ahora me dan fallos mas raros. He quitado todo lo que son variables de sesion, he quitado funciones que estaban repetidas(por insertar el require_once()). Todo parece que funciona, pero:

Warning: mysql_connect() [funciton.mysql-connect]: Access denied for user 'ODBC'@'localhost' (using password:NO) in conexion.php on line 8.

Y ahi antes no tenia ningun fallo...porque ha ocurrido eso ¿?

Gracias nuevamente

Última edición por pakkk; 21/07/2007 a las 10:51
  #5 (permalink)  
Antiguo 21/07/2007, 10:48
 
Fecha de Ingreso: abril-2007
Mensajes: 44
Antigüedad: 17 años
Puntos: 0
Re: Duda con mis variables de sesion

Cita:
Iniciado por pakkk Ver Mensaje
mmm...muxas gracias.

Pero todavia me queda algo sobre require_once, si tengo dos variables con el mismo nombre, cual coge? De esta manera, si me decis que existen problemas, no podria definir variables iguales no ?

Un saludo. Gracias.
Hola, te cogera una u otra dependiendo del ámbito que tenga estas.
De todas formas no es bueno nombrar variables con el mismo nombre,eso solo te creará quebraderos de cabeza.
Saludos
  #6 (permalink)  
Antiguo 21/07/2007, 10:58
 
Fecha de Ingreso: abril-2006
Mensajes: 21
Antigüedad: 18 años
Puntos: 0
Re: Duda con mis variables de sesion

Perdonad, pero he reeditado mi post anterior porque me han surgido mas problemas.

Perdon por no escribirlo en otro distinto
  #7 (permalink)  
Antiguo 21/07/2007, 12:31
 
Fecha de Ingreso: abril-2007
Mensajes: 44
Antigüedad: 17 años
Puntos: 0
Re: Duda con mis variables de sesion

Hola.

Pues ese error es que no estas poniendo el user y clave correcto para conectar con la base de datos MySQL, revisalas...

Cuando puse:
Código PHP:
<? 
$ID_CONEXION
=mysql_connect("host","user","password"); 
mysql_connect_db("base_de_datos"); 
?>
No hay que decir que donde pone "host" debes poner el host o direcciçon del servidor MySQL, el "user" es el nombre de usuario a conectar con la base de datos y "password" es la clave del usuario y "base_de_datos" es el nombre de la base de datos.

Saludos
  #8 (permalink)  
Antiguo 21/07/2007, 12:57
 
Fecha de Ingreso: abril-2006
Mensajes: 21
Antigüedad: 18 años
Puntos: 0
Busqueda Re: Duda con mis variables de sesion

Si si si, está todo bien...user, password, bd y servidor están bien ubicados...

No le encuentro el sentido....además, ese error aparece cuando paso de la página conexion.php a la página eleccion.php...

Es decir, que tanto user como password lo registra correctamente...

De todos modos...véis que la forma de tener el identificador de conexión mediante require_once es la más habitual o la más usada?

O existe otra forma mejor?

Gracias.
  #9 (permalink)  
Antiguo 21/07/2007, 13:00
 
Fecha de Ingreso: abril-2007
Mensajes: 44
Antigüedad: 17 años
Puntos: 0
Re: Duda con mis variables de sesion

Cita:
Iniciado por pakkk Ver Mensaje
Si si si, está todo bien...user, password, bd y servidor están bien ubicados...

No le encuentro el sentido....

De todos modos...véis que la forma de tener el identificador de conexión mediante require_once es la más habitual o la más usada?

O existe otra forma mejor?

Gracias.
Hola.

Es la usada, date cuenta que de una página a otra no se guarda el estado y debes iniciar una conexión cada vez que carges una nueva página.

Al igual que usas require_once, puedes usar include_once o require o include, la cuestión es la misma es incluir un código, en este caso la conexión a la base de datos, por el require no es tu fallo, ese fallo que comentas es que no has puesto bien el host o usuario o clave o nombre de la base de datos..

Mira que configuracion tienes en PhpMyAdmin y pon ese mismo usuario que se conecta y haber..

Saludos
  #10 (permalink)  
Antiguo 21/07/2007, 13:14
 
Fecha de Ingreso: abril-2006
Mensajes: 21
Antigüedad: 18 años
Puntos: 0
Re: Duda con mis variables de sesion

es que es lo que he puesto en el post MODIFICADO de arriba...os explico la situacion:

tengo una ventana inicial "index.html" en la que pongo user y password, dichos campos forman parte de un formulario, con el cual le paso estos dos campos al archivo "conexion.php" que es quien lo procesa para ver si son correctos, la cosa es que aquí, si fallase usuario contraseña servidor o base de datos, ya fallaría en esta página. La cuestión es que falla en la siguiente("eleccion.php")...que realmente no tiene nada que ver el "mysql_connect"...

Es por eso mi problema

Saludos

PD: es más, el usuario que meto es "root" y sin contraseña...pero bueno...como explico arriba...no tiene nada que ver en realidad...porque debe funcionar...

PD2: y como dices arriba...lo de iniciar una conexion cada vez que abro una pagina...no lo hago...porque supuestamente para eso sirve el require_once...para que conserve el identificador de conexion con mysql...es decir, para que en codigo anterior, pueda usar variables declaradas ( donde guardo dicho identificador )

Última edición por pakkk; 21/07/2007 a las 13:20
  #11 (permalink)  
Antiguo 21/07/2007, 13:31
 
Fecha de Ingreso: abril-2006
Mensajes: 21
Antigüedad: 18 años
Puntos: 0
Re: Duda con mis variables de sesion

llevabais razon, la he liado, le he cambiado el nombre de una variable por otra cosa.

Muchas gracias.
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 08:39.