Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

variables de sesión y mysql

Estas en el tema de variables de sesión y mysql en el foro de Mysql en Foros del Web. Hola, buenas tardes. No se si debería postear esto en php o aquí, ya que mi pregunta está dirigida sobre todo a las variables de ...
  #1 (permalink)  
Antiguo 29/11/2010, 13:42
 
Fecha de Ingreso: octubre-2010
Mensajes: 189
Antigüedad: 13 años, 6 meses
Puntos: 0
variables de sesión y mysql

Hola, buenas tardes.

No se si debería postear esto en php o aquí, ya que mi pregunta está dirigida sobre todo a las variables de sesión, aunque realmente estoy usando mysql también.

Bueno, aseguro que he hecho todo lo posible para entender mi problema, pero no doy con la solución.

Estoy tratando de hacer lo siguiente:
Quiero dar la opción al usuario de log in y de log out desde la página principal(index.php). En la primera visita está log out, claro. Entonces, quiero que aparezca un formulario en el que le pido contraseña y email. Si sus datos están registrados(en Mysql) entonces creo una variable de sesión con su nombre. Además de este formulario hay un enlace para logearse desde otra página( en el mismo , pone log in). Bien, una vez que se ha logeado quiero que en lugar del formulario aparezca un mensaje de bienvenida, y en lugar del enlace con "log in" aparezca "log out". Al pulsar en log out se destruye la variable de sesión y le remite a la página inicial con los valores iniciales( formulario y enlace con log in).

Este es el código que he escrito, más o menos:

Código PHP:
<?php
session_start
()?>
...


<?php

if(!empty($_SESSION['name']))
{
echo 
"Hello ".$_SESSION['name']."<br />";
print<<<HERE
 <div id="log"><a href="logout.php">log in</a></div>
HERE;
}
if(empty(
$_SESSION['name']))
{
print<<<HERE
 <div id="log"><a href="login.html"></a></div>
  <div id="form">
 <table><tr ><td>
 log in:<br />
 <form method="post" action=""></td></tr><tr ><td>
 Your e-mail:<br />
 <input type="text" name="mail" ></td></tr><tr ><td>
 Your password:<br />
 <input type="password" name="password" ></td></tr><tr><td>
 <input type="submit" >Submit <value="enviar"></tr>
 </form></table></div>
HERE;
$conexion=mysql_connect("server","user","password")
 or die(
"Problemas en la conexión");
mysql_select_db("base de datos",$conexion)or
 die(
"Problemas en la selección de datos");
$registros=mysql_query("SELECT*from tabla where password= '$_REQUEST[password]'&& '$_REQUEST[name]'",$conexion)or
 die(
"Problems with select:".mysql_error());
if(
$reg=mysql_fetch_array($registros))
  {
  
$_SESSION['name']=$reg['name'];
  echo 
", hola,".$_SESSION['name'];
print<<<HERE
   <div id="log"><a href="logout.php">Log out</a></li></ul></div>
HERE;
  } 
 else
  {
  echo 
"No estás registrado. ";
  }  
}
?>
</div>
</body>
</html>

Bueno,estoy seguro de que no es muy compliacado para alguien que domine un poco php. Mi explicación seguro que es muy mejorable pero espero que se entienda un poco la idea. He de decir que he probado diversas combinaciones en el orden de los diferentes códigos pero en todos ocurren cosas raras. La primera vez que lo escribí( era otra combinación) parecía funcionar perfectamente. Luego al ir trabajando sobre la página algo cambió y dejó de funcionar bien. Lo peor es que el código escrito por mi tiene lógica( para mí), entonces no soy puedo entender porqué falla. En la página logout.php destruyo la variable. El código no lo he modificado en ningún momento, y al principio funcionaba perfectamente. Es el siguiente:
logout.php:
Código PHP:

<?php session_start();


$_SESSION = array();
session_destroy(); 

header"Location: index.php" );  
exit;

?>
El caso es que no me funciona bien ninguna función y a veces incluso aparecen nombres en la pantalla que fueron introducidos tiempo atrás...Cuando le doy al enlace log out vuelvo a la página pero sigue el log out..etc, etc..
Bueno, lo que más me interesaría saber es qué está mal(supongo que casi todo, hehe). Y como digo, practicamte con lo mismo antes me funcionaba(pero no recuerdo exactamente cómo estaba)..

Un saludo y muchíiiiiiiiisimas gracias de antemano.:)

Última edición por breaststroke; 29/11/2010 a las 13:50
  #2 (permalink)  
Antiguo 30/11/2010, 08:25
 
Fecha de Ingreso: octubre-2010
Mensajes: 189
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: variables de sesión y mysql

Hola de nuevo.

Bueno, gracias si alguien ha intentado comprender mi consulta.
Lo he cambiado, y en lugar de preguntar si existe la variable de sesión, comienzo preguntando si existen las variables del formulario. La conexion a la base de datos la hago antes del formulario y no después como yo lo había hecho. Creo que debe ser así porque al hacer una llamada a la misma página se va al inicio de la misma en lugar de continuar.
Bueno, no tengo muy muy claro porqué me salía lo que me salía pero supongo que lo de poner la consulta antes del formulario es fundamental.

Saludos.
  #3 (permalink)  
Antiguo 30/11/2010, 08:45
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: variables de sesión y mysql

Sesiones gestionadas en PHP y lo que pase en el script PHP, son asunto del Foro de PHP, que es donde se tratan los temas de programación en PHP. Ponerlo acá solamente te retrasará en la obtención de respuestas porque en este foro el tema es Bases de Datos y SQL...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: sesión, variables
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 02:01.