Foros del Web » Programando para Internet » PHP »

PHP OO no puedo iniciar session con mi variable de session

Estas en el tema de no puedo iniciar session con mi variable de session en el foro de PHP en Foros del Web. Hola hice 35 intento antes de pasar por aquí y nada esto es lo que pasa ya tengo mi pagina donde inicia la sesión y ...
  #1 (permalink)  
Antiguo 07/04/2016, 21:23
 
Fecha de Ingreso: diciembre-2015
Mensajes: 369
Antigüedad: 8 años, 4 meses
Puntos: 4
no puedo iniciar session con mi variable de session

Hola hice 35 intento antes de pasar por aquí y nada
esto es lo que pasa ya tengo mi pagina donde inicia la sesión y funciona pero quise ir mas aya, porque registrase y luego regresar a inicio y probar el código escribiendo tu nick y tu password.
pense en algo mas fácil para el usuario luego de inscribirse en la web aparezca un texto que diga Gracias por inscribirse usuario X. luego un link que automáticamente lo presiones entre a su sesión, no quiero que el usuario tinga que escribir su nick y password una ves mas. pienso que es mejor inscribirse y ya dale click al link de su session y listo
yo tengo esto que me fuciona para registrarse y loguearse

le agregue este código a el lugar donde se registra para luego enviarlo a la pagina que es la sesión del usuario

Código PHP:
Ver original
  1. <?php
  2. if(!isset($_POST['rpass'])){  //script por si alguien tinetenta entrar a la web por el link lo redireciona
  3. header('Location: ../../index.php');
  4. exit();
  5. }
  6. ?>
  7.  
  8. <?php
  9. //verificnado se la informacion del formulario esta
  10. if(isset($_POST['nick']) && isset($_POST['pass']) && isset($_POST['rpass']) && isset($_POST['email'] ))  //busaca si las variables Post estan
  11. {
  12.     //atrapa el id
  13.     $ip = $_SERVER['REMOTE_ADDR'];  //agregar IP
  14.     //atrapa la fecha
  15.     $fecha_hora = date('d-m-Y H:i:s');  
  16.     //atrapa el valor de name del fomulario
  17.     $nick  = $_POST['nick'];
  18.     $pass  = $_POST['pass'];
  19.     $rpass  = $_POST['rpass'];
  20.     $email  = $_POST['email'];
  21.     // verificacion si el usuario esta registrado con el mismo email
  22.     require("../../conexion/conexionmsqli.php");
  23.     $cad= mysqli_query($conexion,"SELECT * FROM usuarios WHERE email='".$email."'");
  24.     if(mysqli_num_rows($cad))
  25.     {
  26.         header('Location: resgistrado.php');
  27.         exit();
  28.     }
  29. }
  30. //validar los campos si estan llenos en el formulario
  31. if (empty($_POST['nick']) or empty($_POST['pass']) or empty($_POST['rpass']) or empty($_POST['email']))
  32. {
  33.     $array = array($nick,$pass,$rpass, $email);
  34.  
  35.     if ($array[0] == NULL)  //si estan vacias
  36.     {
  37.     echo "nick vacio<br>";  
  38.     }
  39.     if ($array[1] == NULL)
  40.     {
  41.      echo "pass vacio <br>";    
  42.     }
  43.     if ($array[2] == NULL)
  44.     {
  45.      echo "rpass vacio <br>";  
  46.     }
  47.     if ($array[3] == NULL)
  48.     {
  49.      echo "email vacio <br>";  
  50.     }
  51. }else  // si no estan vacias corre el script
  52.  {  
  53.         if ($pass === $rpass ) //verifica si pass es igual a pass
  54.         {                                      
  55.             require("../../conexion/conexion.php");                                 //busca el file php para conectarse a la base de datos
  56.             //(DESASTIVADO)$pass = md5 ($pass);                         // encrista la clave
  57.             mysql_query("INSERT INTO usuarios VALUES ('','$ip','imagenes/people.jpg','$fecha_hora','$nick','$pass','$email')"); //           //HAce la consulta a la base de datos                                para introducir los datos
  58.             //mysql_close($link);                                         //cerramos las conecion la conecios se encuentra en el archivo connect_db.php que es invocado por required linea 9
  59.            
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.             $pass  = $_POST['pass'];
  68.             $email  = $_POST['email'];
  69.             //sacar datos \\\\\\\\\\
  70.             include("../../conexion/conexionmsqli.php");
  71.             $proceso = mysqli_query($conexion, "SELECT * FROM usuarios WHERE email='".mysql_real_escape_string($email)."' AND pass='".mysql_real_escape_string($pass)."'"); //consulata a la base de datos con la funcion mysql_real_escape_string para evitar inyeciones SQL
  72.             if($resultado = mysqli_fetch_array($proceso)) //busca en la bd
  73.             {
  74.        
  75.             //creamos las variables de sesion sacando valores de la tabla usuarios . Donde email es igaul a $email y pass es igual a $pass  
  76.             $_SESSION['id'] = $resultado["id"];
  77.             $_SESSION['ip'] = $resultado["ip"];
  78.             $_SESSION['img'] = $resultado["img"];
  79.             $_SESSION['fecha_hora'] = $resultado["fecha_hora"];
  80.             $_SESSION['nick'] = $resultado["nick"];
  81.             $_SESSION['pass'] = $resultado["pass"];
  82.             $_SESSION['email'] = $resultado["email"];    
  83.             //redirecionamos a sesion.php
  84.             //header("location: confirmacion.php");
  85.             echo 'Se ha registrado con exito  '.$_SESSION["nick"].'<br>' ;
  86.             echo "<a href='../../funciones/ingresar/sesion.php'>Ingresar  </a><br>";
  87.             echo 'Se ha registrado con exito  '.$_SESSION["email"].'<br>' ;
  88.  
  89.        
  90.             }
  91.             else
  92.             {
  93.             echo "Usuario no encontrado." ; // si no c cumple la peticion
  94.             }//termino el codigo de sacar los datos
  95.  
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.             //header("location: confirmacion.php");
  110.  
  111.         }
  112.         else
  113.         {
  114.                 echo 'Los pass no son iguales';
  115.         }
  116.     }
  117. ?>
ese codigo dentro del espacio es que hago eso cuando trabaja con el codigo para no enredarme con los if y else

pero ese mismo tro lo tengo en otra pagana que es donde lo envia el formulario cuando se registro y sale al index otra vez que es lo que intento de que no haga este es el codigo y fuciona
Código PHP:
Ver original
  1. <?php
  2.  session_start();  //inicia sesion
  3. /* recogemos las variables enviadas desde el form */
  4. $email = $_POST['email'];
  5. $pass = $_POST['pass'];
  6.  
  7. /* comprobamos que no estén vacías */
  8. if ( empty($email) OR empty($pass) ){
  9.         header("location: ../../index.php");
  10.         exit;
  11.  }
  12.  
  13.  //verificamos si el pass y el email son los correcto
  14. include("../../conexion/conexionmsqli.php");
  15. $proceso = mysqli_query($conexion, "SELECT * FROM usuarios WHERE email='".mysql_real_escape_string($email)."' AND pass='".mysql_real_escape_string($pass)."'"); //consulata a la base de datos con la funcion mysql_real_escape_string para evitar inyeciones SQL
  16.  
  17.  
  18.  
  19.     if($resultado = mysqli_fetch_array($proceso)) //busca en la bd
  20.     {
  21.        
  22.         //creamos las variables de sesion sacando valores de la tabla usuarios . Donde email es igaul a $email y pass es igual a $pass  
  23.         $_SESSION['id'] = $resultado["id"];
  24.         $_SESSION['ip'] = $resultado["ip"];
  25.         $_SESSION['img'] = $resultado["img"];
  26.         $_SESSION['fecha_hora'] = $resultado["fecha_hora"];
  27.         $_SESSION['nick'] = $resultado["nick"];
  28.         $_SESSION['pass'] = $resultado["pass"];
  29.         $_SESSION['email'] = $resultado["email"];    
  30.         //redirecionamos a sesion.php
  31.         header("location: sesion.php");
  32.        
  33.     }
  34.     else
  35.     {
  36.         echo "Usuario no encontrado." ; // si no c cumple la peticion
  37.     }
  38.  
  39.  
  40. ?>

este es el de la pagian de session

Código PHP:
Ver original
  1. <?php
  2.  
  3. session_start(); // inicia la sesion
  4.  
  5. if (isset($_SESSION['email']))  // pregunta si existe la sesion email si es tru
  6. {
  7.     echo "sexion exitosa <br>";
  8.     echo "<a href='cerrar_sesion.php'>Cerrar sesion </a><br>";
  9.     echo "<a href='../../funciones/editar_user/index.php'>Editar usuario </a><br>";
  10. }
  11.  
  12. else  // si el if no es cierto
  13. {
  14.     header("location: ../../index.php" );
  15. }
  16. //creamos la variable avatar del valor que contiene la sesion para usar de image por defaul
  17. $avatar=$_SESSION['img'];
  18.  
  19. ?>
  20. <!-- varibles de sesion impresa dentro del codigo HTML-->
  21. <b>En HTML</b>  hola <b><font color="blue"><?=$_SESSION['nick'];?></font></b><br>
  22. <b>En HTML</b>  hola <b><font color="blue"><?=$_SESSION['img'];?></font></b><br>
  23. <!-- imprime la foto del avatar -->
  24. <a><?php echo '<img src="'.$avatar.'" width="100"  height="100">';?><br>
  25. <!-- imprimer la variable de sesión que se crea en el archivo proceso-->
  26. Id: <?=$_SESSION['id']?><br>
  27. Fecha De registro: <?=$_SESSION['fecha_hora']?>

no se lo que pasa debería funcionar segun mi logica
el problema es que cuando lo hago con el primer codigo que puse u pasa a este ultimo codigo que es el de sesion del usuario creo que no me reconoce al sesión y como no me da true funciona el else eso es lo que pasa pero no se como resolverlo.

Etiquetas: fecha, formulario, html, mysql, registro, select, sql, tabla, usuarios, variable
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 21:38.