Foros del Web » Programando para Internet » PHP »

Inicio de Sesión

Estas en el tema de Inicio de Sesión en el foro de PHP en Foros del Web. Ahora tienes que hacer comprobaciones dentro del archivo cursos, como por ejemplo: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original if ( empty ( $_SESSION [ 'usuario' ...

  #31 (permalink)  
Antiguo 20/04/2015, 12:27
Avatar de MaNuX0218  
Fecha de Ingreso: marzo-2014
Mensajes: 787
Antigüedad: 10 años
Puntos: 67
Respuesta: Inicio de Sesión

Ahora tienes que hacer comprobaciones dentro del archivo cursos, como por ejemplo:

Código PHP:
Ver original
  1. if(empty($_SESSION['usuario'])){
  2. // aqui el usuario no esta logeado por lo que no puede acceder, lo redireccionamos al login
  3. }
  4.  
  5. if(!empty($_GET['idCurso'])) {
  6. // aqui comprobamos si existe en la url un id para el curso
  7. // entonces realizamos la consulta y sacamos el id del $_GET y mostramos lo de ese curso
  8. }

Espero se entienda.

SAludos.
__________________
No te preocupes si tu código no funciona bien. Si todo lo hiciera, no tendrías trabajo.
  #32 (permalink)  
Antiguo 20/04/2015, 12:36
 
Fecha de Ingreso: marzo-2015
Ubicación: Valencia
Mensajes: 132
Antigüedad: 9 años
Puntos: 0
Respuesta: Inicio de Sesión

Cita:
Iniciado por MaNuX0218 Ver Mensaje
Ahora tienes que hacer comprobaciones dentro del archivo cursos, como por ejemplo:

Código PHP:
Ver original
  1. if(empty($_SESSION['usuario'])){
  2. // aqui el usuario no esta logeado por lo que no puede acceder, lo redireccionamos al login
  3. }
  4.  
  5. if(!empty($_GET['idCurso'])) {
  6. // aqui comprobamos si existe en la url un id para el curso
  7. // entonces realizamos la consulta y sacamos el id del $_GET y mostramos lo de ese curso
  8. }

Espero se entienda.

SAludos.
Eres un artista Manux0218. No sabes bien lo que me has ayudado.
Esto último que me explicas, nunca he utilizado esto. Lo que he echo es añadir esto a la pagina que carga los cursos.

Código PHP:
Ver original
  1. <?php
  2.  
  3. //creamos la sesion
  4.  
  5. //validamos si se ha hecho o no el inicio de sesion correctamente
  6.  
  7. //si no se ha hecho la sesion nos regresará a login.php
  8. if(!isset($_SESSION['usuario']))
  9. {
  10.    
  11. if(empty($_SESSION['usuario'])){
  12. // aqui el usuario no esta logeado por lo que no puede acceder, lo redireccionamos al login
  13. }
  14.  
  15. if(!empty($_GET['IdCurso'])) {
  16. // aqui comprobamos si existe en la url un id para el curso
  17. // entonces realizamos la consulta y sacamos el id del $_GET y mostramos lo de ese curso
  18. }
  19.   header('Location: login.php');
  20.   exit();
  21. }
  22.  ?>

Pero sigo podiendo ver todos, tambien he probado quitando el primero y dejando los que tu me as dado, pero ahi no reconoce usuario.

Saludos y mil gracias
  #33 (permalink)  
Antiguo 20/04/2015, 12:56
Avatar de MaNuX0218  
Fecha de Ingreso: marzo-2014
Mensajes: 787
Antigüedad: 10 años
Puntos: 67
Respuesta: Inicio de Sesión

Código PHP:
Ver original
  1. <?php
  2. mysql_connect('db569861939.db.1and1.com','dbo569861939','p23HJd1As')or die ('Ha fallado la conexión: '.mysql_error());
  3.  
  4. /*Luego hacemos la conexión a la base de datos.
  5. **De igual manera mandamos un msj si hay algun error*/
  6. mysql_select_db('db569861939')or die ('Error al seleccionar la Base de Datos: '.mysql_error());
  7.  
  8. //creamos la sesion
  9.  
  10.    
  11. if(empty($_SESSION['usuario'])){
  12. // aqui el usuario no esta logeado por lo que no puede acceder, lo redireccionamos al login
  13. header('Location: login.php');
  14. }
  15.  
  16. $curso1 = 0;
  17. $curso2 = 0;
  18. $curso3 = 0;
  19. $curso4 = 0;
  20.  
  21. if(!empty($_GET['IdCurso'])) {
  22. if($_GET['idCurso'] == 1) {
  23. $curso1 = 1;
  24. }else if($_GET['idCurso'] == 2) {
  25. $curso2 = 1;
  26. }else if($_GET['idCurso'] == 3) {
  27. $curso3 = 1;
  28. }else if($_GET['idCurso'] == 4) {
  29. $curso4 = 1;
  30. }
  31. }
  32.  ?>

Despues en el html puedes hacer:

Código PHP:
Ver original
  1. <?php if($curso1 > 0) { ?>
  2. Mostrar curso 1
  3. <?php } ?>
  4.  
  5. <?php if($curso2 > 0) { ?>
  6. Mostrar curso 2
  7. <?php } ?>
  8.  
  9. <?php if($curso3 > 0) { ?>
  10. Mostrar curso 3
  11. <?php } ?>
  12.  
  13. <?php if($curso4 > 0) { ?>
  14. Mostrar curso 4
  15. <?php } ?>

Esto es un ejemplo por así decir guarro, pero es para que te des una idea de como podrias hacerlo.

Saludos.
__________________
No te preocupes si tu código no funciona bien. Si todo lo hiciera, no tendrías trabajo.
  #34 (permalink)  
Antiguo 20/04/2015, 13:05
 
Fecha de Ingreso: marzo-2015
Ubicación: Valencia
Mensajes: 132
Antigüedad: 9 años
Puntos: 0
Respuesta: Inicio de Sesión

Al html te refieres, donde esta el formulario de poner usuario y contraseña¿?¿

Y esto que dices iria en validar_usuario no en lo de los cursos!?
  #35 (permalink)  
Antiguo 20/04/2015, 13:12
Avatar de MaNuX0218  
Fecha de Ingreso: marzo-2014
Mensajes: 787
Antigüedad: 10 años
Puntos: 67
Respuesta: Inicio de Sesión

No, esto iria en vercursos.php

Y la parte de :

<?php if($curso1 > 0) { ?>
Mostrar curso 1
<?php } ?>

<?php if($curso2 > 0) { ?>
Mostrar curso 2
<?php } ?>

<?php if($curso3 > 0) { ?>
Mostrar curso 3
<?php } ?>

<?php if($curso4 > 0) { ?>
Mostrar curso 4
<?php } ?>

Seria el html, donde $curso1 iria el html del curso 1 y asi con los demas.

Saludos.
__________________
No te preocupes si tu código no funciona bien. Si todo lo hiciera, no tendrías trabajo.
  #36 (permalink)  
Antiguo 20/04/2015, 13:24
 
Fecha de Ingreso: marzo-2015
Ubicación: Valencia
Mensajes: 132
Antigüedad: 9 años
Puntos: 0
Respuesta: Inicio de Sesión

Cita:
Iniciado por MaNuX0218 Ver Mensaje
No, esto iria en vercursos.php

Y la parte de :

<?php if($curso1 > 0) { ?>
Mostrar curso 1
<?php } ?>

<?php if($curso2 > 0) { ?>
Mostrar curso 2
<?php } ?>

<?php if($curso3 > 0) { ?>
Mostrar curso 3
<?php } ?>

<?php if($curso4 > 0) { ?>
Mostrar curso 4
<?php } ?>

Seria el html, donde $curso1 iria el html del curso 1 y asi con los demas.

Saludos.
Puffff que de veces te estooy molestando, lo siento.

Código PHP:
Ver original
  1. <?php
  2.  
  3. //creamos la sesion
  4.  
  5. //validamos si se ha hecho o no el inicio de sesion correctamente
  6.  
  7. //si no se ha hecho la sesion nos regresará a login.php
  8. if(empty($_SESSION['usuario'])){
  9. // aqui el usuario no esta logeado por lo que no puede acceder, lo redireccionamos al login
  10. header('Location: login.php');
  11. }
  12.  
  13. $curso1 = 0;
  14. $curso2 = 0;
  15. $curso3 = 0;
  16. $curso4 = 0;
  17.  
  18. if(!empty($_GET['IdCurso'])) {
  19. if($_GET['idCurso'] == 1) {
  20. $curso1 = 1;
  21. }else if($_GET['idCurso'] == 2) {
  22. $curso2 = 1;
  23. }else if($_GET['idCurso'] == 3) {
  24. $curso3 = 1;
  25. }else if($_GET['idCurso'] == 4) {
  26. $curso4 = 1;
  27. }
  28. }
  29.  ?>

Esto lo he puesto en vercursos.php, he quitado lo que me has dicho antes y he puesto esto y queda tal que así. Pero los idCurso, no tendrian que se IdCurso?? o lo pones en minuscula por algo???

Lo que si que no tengo claro es donde quieres que ponga lo otro? No se si tiene que ver que la pagina la tengo echa con includes y estos datos los estoy poniendo en los .php que dentro esta los includes.

No se si me explico bien y perdona mi ignorancia
  #37 (permalink)  
Antiguo 20/04/2015, 13:28
Avatar de MaNuX0218  
Fecha de Ingreso: marzo-2014
Mensajes: 787
Antigüedad: 10 años
Puntos: 67
Respuesta: Inicio de Sesión

el IdCurso lo pongo de ejemplo, solo tu sabes como estan nombrados correctamente. Si los cursos los tienes metidos en includes entonces haz esto:

Código PHP:
Ver original
  1. <?php
  2.  
  3. //creamos la sesion
  4.  
  5. //validamos si se ha hecho o no el inicio de sesion correctamente
  6.  
  7. //si no se ha hecho la sesion nos regresará a login.php
  8. if(empty($_SESSION['usuario'])){
  9. // aqui el usuario no esta logeado por lo que no puede acceder, lo redireccionamos al login
  10. header('Location: login.php');
  11. }
  12.  
  13. if(!empty($_GET['IdCurso'])) {
  14. if($_GET['idCurso'] == 1) {
  15. include('curso1.php');
  16. }else if($_GET['idCurso'] == 2) {
  17. include('curso2.php');
  18. }else if($_GET['idCurso'] == 3) {
  19. include('curso3.php');
  20. }else if($_GET['idCurso'] == 4) {
  21. include('curso4.php');
  22. }
  23. }
  24.  ?>

Y esto iria dentro de vercursos.php

Saludos.
__________________
No te preocupes si tu código no funciona bien. Si todo lo hiciera, no tendrías trabajo.
  #38 (permalink)  
Antiguo 20/04/2015, 13:34
 
Fecha de Ingreso: marzo-2015
Ubicación: Valencia
Mensajes: 132
Antigüedad: 9 años
Puntos: 0
Respuesta: Inicio de Sesión

Cita:
Iniciado por MaNuX0218 Ver Mensaje
el IdCurso lo pongo de ejemplo, solo tu sabes como estan nombrados correctamente. Si los cursos los tienes metidos en includes entonces haz esto:

Código PHP:
Ver original
  1. <?php
  2.  
  3. //creamos la sesion
  4.  
  5. //validamos si se ha hecho o no el inicio de sesion correctamente
  6.  
  7. //si no se ha hecho la sesion nos regresará a login.php
  8. if(empty($_SESSION['usuario'])){
  9. // aqui el usuario no esta logeado por lo que no puede acceder, lo redireccionamos al login
  10. header('Location: login.php');
  11. }
  12.  
  13. if(!empty($_GET['IdCurso'])) {
  14. if($_GET['idCurso'] == 1) {
  15. include('curso1.php');
  16. }else if($_GET['idCurso'] == 2) {
  17. include('curso2.php');
  18. }else if($_GET['idCurso'] == 3) {
  19. include('curso3.php');
  20. }else if($_GET['idCurso'] == 4) {
  21. include('curso4.php');
  22. }
  23. }
  24.  ?>

Y esto iria dentro de vercursos.php

Saludos.
No me explico bien, disculpa.

Dentro de vercursos hay varios includes:

Código PHP:
Ver original
  1. <div class="header">
  2.   <?php include("includes/cabecera.php"); ?>  <h1>BIENVENIDO</h1>
  3.   <a href="logout.php">Cerrar Sesión</a>
  4.  <?php
  5. ?>
  6.   <div class="clearfloat"></div>
  7.   <?php include("includes/menu.php"); ?>
  8.   <?php include("includes/verCurso2.php"); ?>
  9. </div>

Este ultimo verCurso2.php, ahi dentro a traves de consulta saca todos los cursos y sus contenidos. Entonces no hay un archivo por cada curso, lo saca todo de BD.

Saludos y gracias
  #39 (permalink)  
Antiguo 20/04/2015, 13:59
Avatar de MaNuX0218  
Fecha de Ingreso: marzo-2014
Mensajes: 787
Antigüedad: 10 años
Puntos: 67
Respuesta: Inicio de Sesión

Pues crea un archivo para cada curso, verCurso1.php, verCurso2.php y en vercursos.php ponlo así:

Código PHP:
Ver original
  1. <?php
  2. //creamos la sesion
  3.  
  4. //validamos si se ha hecho o no el inicio de sesion correctamente
  5.  
  6. //si no se ha hecho la sesion nos regresará a login.php
  7. if(empty($_SESSION['usuario'])){
  8. // aqui el usuario no esta logeado por lo que no puede acceder, lo redireccionamos al login
  9. header('Location: login.php');
  10. }
  11.  
  12. if(!empty($_GET['IdCurso'])) {
  13. if($_GET['idCurso'] == 1) {
  14. include('verCruso1.php');
  15. }else if($_GET['idCurso'] == 2) {
  16. include('verCruso2.php');
  17. }else if($_GET['idCurso'] == 3) {
  18. include('verCruso3.php');
  19. }else if($_GET['idCurso'] == 4) {
  20. include('verCruso4.php');
  21. }
  22. }
  23.  ?>

Sólo tendrias que ir realizando las consultas para curso para mostrar los datos de cada uno.

Saludos.
__________________
No te preocupes si tu código no funciona bien. Si todo lo hiciera, no tendrías trabajo.
  #40 (permalink)  
Antiguo 20/04/2015, 14:06
 
Fecha de Ingreso: marzo-2015
Ubicación: Valencia
Mensajes: 132
Antigüedad: 9 años
Puntos: 0
Respuesta: Inicio de Sesión

Cita:
Iniciado por MaNuX0218 Ver Mensaje
Pues crea un archivo para cada curso, verCurso1.php, verCurso2.php y en vercursos.php ponlo así:

Código PHP:
Ver original
  1. <?php
  2. //creamos la sesion
  3.  
  4. //validamos si se ha hecho o no el inicio de sesion correctamente
  5.  
  6. //si no se ha hecho la sesion nos regresará a login.php
  7. if(empty($_SESSION['usuario'])){
  8. // aqui el usuario no esta logeado por lo que no puede acceder, lo redireccionamos al login
  9. header('Location: login.php');
  10. }
  11.  
  12. if(!empty($_GET['IdCurso'])) {
  13. if($_GET['idCurso'] == 1) {
  14. include('verCruso1.php');
  15. }else if($_GET['idCurso'] == 2) {
  16. include('verCruso2.php');
  17. }else if($_GET['idCurso'] == 3) {
  18. include('verCruso3.php');
  19. }else if($_GET['idCurso'] == 4) {
  20. include('verCruso4.php');
  21. }
  22. }
  23.  ?>

Sólo tendrias que ir realizando las consultas para curso para mostrar los datos de cada uno.

Saludos.
Pufff! No hay otra forma de hacerlo???

Esque con las consultas saco hasta los cursos en el navbar. No hay ningun archivo.
Con las consultas saco el navbar y todo su contenido, como si fuera un blog.

No hay un modo de decirle que si el usuario tiene IdCurso 4, solo pueda entrar en 4º de ESO. Porque ahora si tiene IdCurso 4, va directamente a 4º de eso y lo que necesito es que solo pueda ver 4º de ESO.

Espero que aya otra forma de hacerlo, que reconstruir una parte de la web.

Ahora te paso por privado el link de la web y su usuario, por si quieres echar un vistazo.


Saludos
  #41 (permalink)  
Antiguo 20/04/2015, 14:19
Avatar de MaNuX0218  
Fecha de Ingreso: marzo-2014
Mensajes: 787
Antigüedad: 10 años
Puntos: 67
Respuesta: Inicio de Sesión

Si que es posible mostrar en el menú en el curso que está e incluso no dejar que agan clic en los de más cursos o lo que quieras.

Pero para esto yo ya te recomendaría leerte un poco el manual de php para no estar preguntando y aprender por tu cuenta y llevarlo a la practica.

Saludos.
__________________
No te preocupes si tu código no funciona bien. Si todo lo hiciera, no tendrías trabajo.
  #42 (permalink)  
Antiguo 20/04/2015, 15:49
 
Fecha de Ingreso: marzo-2015
Ubicación: Valencia
Mensajes: 132
Antigüedad: 9 años
Puntos: 0
Respuesta: Inicio de Sesión

Cita:
Iniciado por MaNuX0218 Ver Mensaje
Si que es posible mostrar en el menú en el curso que está e incluso no dejar que agan clic en los de más cursos o lo que quieras.

Pero para esto yo ya te recomendaría leerte un poco el manual de php para no estar preguntando y aprender por tu cuenta y llevarlo a la practica.

Saludos.
Creo que no me he vuelto a explicar mal. El menu ya lo muestro con consultas.
La cuestion es que me pedias que crease 1 archivo para cada curso.

Y lo que yo te intentava decir es que yo todo eso lo tengo gestionado a traves de consultas y tener que hacer eso ahora seria un follon.

Entonces creo que debe de haber un modo para que si el usuario tiene IdCurso 4 pues que solo pueda leer dicho curso. Pero sin tener que cambiar nada de la forma en que esta programado.

Supongo que tienes razon y podria leer manuales o tutoriales para aprender más sobre todo esto, pero no se como buscar lo que tengo que hacer, ya que es un rango muy amplio. Ya he leido unos cuantos antes de preguntar y como los casos no son iguales, pues me pierdo bastante

Muchas gracias por todo y siento haberte entretenido tanto.
  #43 (permalink)  
Antiguo 21/04/2015, 00:28
Avatar de MaNuX0218  
Fecha de Ingreso: marzo-2014
Mensajes: 787
Antigüedad: 10 años
Puntos: 67
Respuesta: Inicio de Sesión

Si lo tienes guardado los cursos en la base de datos, vastaria con que realices la consulta, con $_GET sacarias el IdCurso correspondiente. Al obtener el id mediante get puedes hacer todo lo que pretendes.

Saludos.
__________________
No te preocupes si tu código no funciona bien. Si todo lo hiciera, no tendrías trabajo.
  #44 (permalink)  
Antiguo 21/04/2015, 03:36
 
Fecha de Ingreso: marzo-2015
Ubicación: Valencia
Mensajes: 132
Antigüedad: 9 años
Puntos: 0
Respuesta: Inicio de Sesión

Cita:
Iniciado por MaNuX0218 Ver Mensaje
Si lo tienes guardado los cursos en la base de datos, vastaria con que realices la consulta, con $_GET sacarias el IdCurso correspondiente. Al obtener el id mediante get puedes hacer todo lo que pretendes.

Saludos.
Ok intentare buscar información.

Muchas gracias por todo
  #45 (permalink)  
Antiguo 21/04/2015, 05:35
 
Fecha de Ingreso: marzo-2015
Ubicación: Valencia
Mensajes: 132
Antigüedad: 9 años
Puntos: 0
Respuesta: Inicio de Sesión

Nada que no encuentro ni me sale como hacerlo!
  #46 (permalink)  
Antiguo 21/04/2015, 05:50
Avatar de MaNuX0218  
Fecha de Ingreso: marzo-2014
Mensajes: 787
Antigüedad: 10 años
Puntos: 67
Respuesta: Inicio de Sesión

Bueno muestranos lo que intentas y te ayudamos con el código
__________________
No te preocupes si tu código no funciona bien. Si todo lo hiciera, no tendrías trabajo.
  #47 (permalink)  
Antiguo 21/04/2015, 06:01
 
Fecha de Ingreso: marzo-2015
Ubicación: Valencia
Mensajes: 132
Antigüedad: 9 años
Puntos: 0
Respuesta: Inicio de Sesión

Cita:
Iniciado por MaNuX0218 Ver Mensaje
Bueno muestranos lo que intentas y te ayudamos con el código
Es que todo lo que he probado no vale, porque lo que veo que estoy haciendo es:

Si la persona tiene IdCurso 1, pues con un header se va 1º de eso. Pero el resto de cursos lo sigue viendo, por que yo no le digo que no lo vea.

Creo que empiezo a saber lo que tengo que hacer pero no se plasmarlo. Creo que seria explicado sin codigo así:

Si el usuario, tiene como IdCurso 1, ira a 1º de Eso y si va a uno de los otros tres cursos le saldria de nuevo el login por que no tiene ese curso comprado.

Entonces lo que yo he hecho es esto pero, evidentemente no vale, por que el resto de usuarios con otra IdCurso no verian nada.

Código PHP:
Ver original
  1. <?php
  2.  
  3. //creamos la sesion
  4.  
  5. //validamos si se ha hecho o no el inicio de sesion correctamente
  6.  
  7. //si no se ha hecho la sesion nos regresará a login.php
  8. if(empty($_SESSION['usuario'])){
  9. // aqui el usuario no esta logeado por lo que no puede acceder, lo redireccionamos al login
  10. header('Location: login.php');
  11. }
  12.  
  13.  
  14.  
  15. if(!empty($_GET['IdCurso'])) {
  16. if($_GET['IdCurso'] == 1) {
  17. header('Location: login.php');
  18. }else if($_GET['IdCurso'] == 2) {
  19. header('Location: login.php');
  20. }else if($_GET['IdCurso'] == 3) {
  21. header('Location: login.php');
  22. }else if($_GET['IdCurso'] == 4) {
  23. include('./vercursos.php?IdCurso= 4');
  24. }
  25. }
  26.  ?>

Espero que me entiendas lo que explico.
  #48 (permalink)  
Antiguo 21/04/2015, 06:14
Avatar de MaNuX0218  
Fecha de Ingreso: marzo-2014
Mensajes: 787
Antigüedad: 10 años
Puntos: 67
Respuesta: Inicio de Sesión

Si pero eso haces que solamente el 4º curso sea accesible.
__________________
No te preocupes si tu código no funciona bien. Si todo lo hiciera, no tendrías trabajo.
  #49 (permalink)  
Antiguo 21/04/2015, 06:37
 
Fecha de Ingreso: marzo-2015
Ubicación: Valencia
Mensajes: 132
Antigüedad: 9 años
Puntos: 0
Respuesta: Inicio de Sesión

Si es lo que te comento. Evidentemente no vale eso.

Pero esque no se como tengo que hacerlo.
  #50 (permalink)  
Antiguo 21/04/2015, 12:34
 
Fecha de Ingreso: marzo-2015
Ubicación: Valencia
Mensajes: 132
Antigüedad: 9 años
Puntos: 0
Respuesta: Inicio de Sesión

Manux mira haber esto que te parece?

Código PHP:
Ver original
  1. <?php
  2. mysql_connect('db569861939.db.1and1.com','dbo569861939','p23HJd1As')or die ('Ha fallado la conexión: '.mysql_error());
  3.  
  4. /*Luego hacemos la conexión a la base de datos.
  5. **De igual manera mandamos un msj si hay algun error*/
  6. mysql_select_db('db569861939')or die ('Error al seleccionar la Base de Datos: '.mysql_error());
  7.  
  8. //creamos la sesion
  9.  
  10.    
  11. if(empty($_SESSION['usuario'])){
  12. // aqui el usuario no esta logeado por lo que no puede acceder, lo redireccionamos al login
  13. header('Location: login.php');
  14. }
  15.  
  16. $consulta = mysql_query("SELECT * FROM acceso_cursos WHERE IdCurso = '$IdCurso'");
  17.  
  18. $fila=mysql_fetch_array($datos);
  19.         $_SESSION["usuario"]=$fila["IdCurso"];
  20.        
  21.  
  22.         // Aqui tendras que poner tantos if como grupos tengas ....
  23.        
  24.                 if($fila["IdCurso"]== '1'){  
  25.        
  26.                     header("location:./vercursos.php?IdCurso= 1");
  27.        
  28.                 }else
  29.                
  30.                     {
  31.              
  32.                 if($fila["IdCurso"]== '2'){
  33.                                                  
  34.                     header("location:./vercursos.php?IdCurso= 2");
  35.            
  36.                 }else
  37.                
  38.                 {
  39.                  
  40.                 if($fila["IdCurso"]== '3'){
  41.                    
  42.                     header("location:./vercursos.php?IdCurso= 3");
  43.                    
  44.                 }else
  45.                
  46.                 {
  47.                    
  48.                     if($fila["IdCurso"]== '4'){
  49.                        
  50.                     header("location:./vercursos.php?IdCurso= 4"); 
  51.  
  52.                     }else
  53.                    
  54.                     {
  55.  
  56.  
  57.                     }
  58.                 }
  59.                 }
  60.                 }
  61.  
  62.  
  63.  //Mysql_free_result() se usa para liberar la memoria empleada al realizar una consulta
  64. mysql_free_result($consulta);
  65.  
  66. /*Mysql_close() se usa para cerrar la conexión a la Base de datos y es
  67. **necesario hacerlo para no sobrecargar al servidor, bueno en el caso de
  68. **programar una aplicación que tendrá muchas visitas ;) .*/
  69. ?>

Lo unico que no se si por que, pero ahora pongamos el ejemplo.

Inicio con un usuario con IdCurso 4, lo reconoce y se va a 4º de ESO y cuando voy a los otros me devuelve a login.php.

Pero cuando quiero volver a 4º de ESO me sigue volviendo a login.php, en lugar de quedarse con la sesión iniciada.

No se si lo que he echo esta bien, espero tu sabiduria. Saludos
  #51 (permalink)  
Antiguo 21/04/2015, 12:50
Avatar de MaNuX0218  
Fecha de Ingreso: marzo-2014
Mensajes: 787
Antigüedad: 10 años
Puntos: 67
Respuesta: Inicio de Sesión

Código PHP:
Ver original
  1. <?php
  2. mysql_connect('db569861939.db.1and1.com','dbo569861939','p23HJd1As')or die ('Ha fallado la conexión: '.mysql_error());
  3.  
  4. /*Luego hacemos la conexión a la base de datos.
  5. **De igual manera mandamos un msj si hay algun error*/
  6. mysql_select_db('db569861939')or die ('Error al seleccionar la Base de Datos: '.mysql_error());
  7.  
  8. //creamos la sesion
  9.  
  10.    
  11. if(empty($_SESSION['usuario'])){
  12. // aqui el usuario no esta logeado por lo que no puede acceder, lo redireccionamos al login
  13. header('Location: login.php');
  14. }else {
  15.  
  16. $IdUsuario = $_SESSION['usuario'];
  17.  
  18. $consulta = mysql_query("SELECT * FROM acceso_cursos WHERE IdUsuario =  '$IdUsuario'");
  19.  
  20. $fila=mysql_fetch_array($datos);
  21.        
  22.  
  23.         // Aqui tendras que poner tantos if como grupos tengas ....
  24.        
  25.                 if($fila["IdCurso"] == 1){  
  26.        
  27.                     header("location:./vercursos.php?IdCurso=1");
  28.        
  29.                 }else if($fila["IdCurso"] == 2){
  30.                                                  
  31.                     header("location:./vercursos.php?IdCurso=2");
  32.            
  33.                 }else if($fila["IdCurso"] == 3){
  34.                    
  35.                     header("location:./vercursos.php?IdCurso=3");
  36.                    
  37.                 }else if($fila["IdCurso"] == 4){
  38.                        
  39.                     header("location:./vercursos.php?IdCurso=4");  
  40.  
  41.                  }else{
  42.                     die('el curso al que estas apuntado no existe');
  43.                  }
  44.  
  45.  //Mysql_free_result() se usa para liberar la memoria empleada al realizar una consulta
  46. mysql_free_result($consulta);
  47.  
  48. /*Mysql_close() se usa para cerrar la conexión a la Base de datos y es
  49. **necesario hacerlo para no sobrecargar al servidor, bueno en el caso de
  50. **programar una aplicación que tendrá muchas visitas ;) .*/
  51. }
  52. ?>

Pruebalo asi y dime como te a ido, también si te aparecen errores muestralos, si no te aparecen los errores agrega esto al principio del documento para que te muestre los errores:

Código PHP:
Ver original
  1. ini_set('display_errors', 1);

Saludos.
__________________
No te preocupes si tu código no funciona bien. Si todo lo hiciera, no tendrías trabajo.
  #52 (permalink)  
Antiguo 21/04/2015, 12:57
 
Fecha de Ingreso: marzo-2015
Ubicación: Valencia
Mensajes: 132
Antigüedad: 9 años
Puntos: 0
Respuesta: Inicio de Sesión

Cita:
Iniciado por MaNuX0218 Ver Mensaje
Código PHP:
Ver original
  1. <?php
  2. mysql_connect('db569861939.db.1and1.com','dbo569861939','p23HJd1As')or die ('Ha fallado la conexión: '.mysql_error());
  3.  
  4. /*Luego hacemos la conexión a la base de datos.
  5. **De igual manera mandamos un msj si hay algun error*/
  6. mysql_select_db('db569861939')or die ('Error al seleccionar la Base de Datos: '.mysql_error());
  7.  
  8. //creamos la sesion
  9.  
  10.    
  11. if(empty($_SESSION['usuario'])){
  12. // aqui el usuario no esta logeado por lo que no puede acceder, lo redireccionamos al login
  13. header('Location: login.php');
  14. }else {
  15.  
  16. $IdUsuario = $_SESSION['usuario'];
  17.  
  18. $consulta = mysql_query("SELECT * FROM acceso_cursos WHERE IdUsuario =  '$IdUsuario'");
  19.  
  20. $fila=mysql_fetch_array($datos);
  21.        
  22.  
  23.         // Aqui tendras que poner tantos if como grupos tengas ....
  24.        
  25.                 if($fila["IdCurso"] == 1){  
  26.        
  27.                     header("location:./vercursos.php?IdCurso=1");
  28.        
  29.                 }else if($fila["IdCurso"] == 2){
  30.                                                  
  31.                     header("location:./vercursos.php?IdCurso=2");
  32.            
  33.                 }else if($fila["IdCurso"] == 3){
  34.                    
  35.                     header("location:./vercursos.php?IdCurso=3");
  36.                    
  37.                 }else if($fila["IdCurso"] == 4){
  38.                        
  39.                     header("location:./vercursos.php?IdCurso=4");  
  40.  
  41.                  }else{
  42.                     die('el curso al que estas apuntado no existe');
  43.                  }
  44.  
  45.  //Mysql_free_result() se usa para liberar la memoria empleada al realizar una consulta
  46. mysql_free_result($consulta);
  47.  
  48. /*Mysql_close() se usa para cerrar la conexión a la Base de datos y es
  49. **necesario hacerlo para no sobrecargar al servidor, bueno en el caso de
  50. **programar una aplicación que tendrá muchas visitas ;) .*/
  51. }
  52. ?>

Pruebalo asi y dime como te a ido, también si te aparecen errores muestralos, si no te aparecen los errores agrega esto al principio del documento para que te muestre los errores:

Código PHP:
Ver original
  1. ini_set('display_errors', 1);

Saludos.
Me sale esto:

el curso al que estas apuntado no existe

Pero al poner el codigo que muestre los errores sale esto:

Código PHP:
Ver original
  1. Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /homepages/36/d569523899/htdocs/vercursos.php on line 7
  2.  
  3. Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /homepages/36/d569523899/htdocs/vercursos.php:3) in /homepages/36/d569523899/htdocs/vercursos.php on line 14
  4.  
  5. Notice: Undefined variable: datos in /homepages/36/d569523899/htdocs/vercursos.php on line 26
  6.  
  7. Warning: mysql_fetch_array() expects parameter 1 to be resource, null given in /homepages/36/d569523899/htdocs/vercursos.php on line 26

Una pregunta? es casi la misma consulta que esta en validar_usuario, eso pasa algo o es que sobra ese archivo ahora??

Saludos
  #53 (permalink)  
Antiguo 21/04/2015, 13:18
Avatar de MaNuX0218  
Fecha de Ingreso: marzo-2014
Mensajes: 787
Antigüedad: 10 años
Puntos: 67
Respuesta: Inicio de Sesión

Código PHP:
Ver original
  1. <?php
  2. mysql_connect('db569861939.db.1and1.com','dbo569861939','p23HJd1As')or die ('Ha fallado la conexión: '.mysql_error());
  3.  
  4. /*Luego hacemos la conexión a la base de datos.
  5. **De igual manera mandamos un msj si hay algun error*/
  6. mysql_select_db('db569861939')or die ('Error al seleccionar la Base de Datos: '.mysql_error());
  7.  
  8.    
  9. if(empty($_SESSION['usuario'])){
  10. // aqui el usuario no esta logeado por lo que no puede acceder, lo redireccionamos al login
  11. header('Location: login.php');
  12. }else {
  13.  
  14. $IdUsuario = $_SESSION['usuario'];
  15.  
  16. $consulta = mysql_query("SELECT * FROM acceso_cursos WHERE IdUsuario =  '$IdUsuario'");
  17.  
  18. $fila=mysql_fetch_assoc($consulta);
  19.        
  20.  
  21.         // Aqui tendras que poner tantos if como grupos tengas ....
  22.        
  23.                 if($fila["IdCurso"] == 1){  
  24.        
  25.                     header("location:./vercursos.php?IdCurso=1");
  26.        
  27.                 }else if($fila["IdCurso"] == 2){
  28.                                                  
  29.                     header("location:./vercursos.php?IdCurso=2");
  30.            
  31.                 }else if($fila["IdCurso"] == 3){
  32.                    
  33.                     header("location:./vercursos.php?IdCurso=3");
  34.                    
  35.                 }else if($fila["IdCurso"] == 4){
  36.                        
  37.                     header("location:./vercursos.php?IdCurso=4");  
  38.  
  39.                  }else{
  40.                     die('el curso al que estas apuntado no existe');
  41.                  }
  42. }
  43. mysql_free_result($consulta);
  44.  
  45. ?>

Pruebalo ahora, aun que como te dice el error mysql esta obsoleto, deberias usar mysqli

Saludos.
__________________
No te preocupes si tu código no funciona bien. Si todo lo hiciera, no tendrías trabajo.
  #54 (permalink)  
Antiguo 21/04/2015, 13:26
 
Fecha de Ingreso: marzo-2015
Ubicación: Valencia
Mensajes: 132
Antigüedad: 9 años
Puntos: 0
Respuesta: Inicio de Sesión

Cita:
Iniciado por MaNuX0218 Ver Mensaje
Código PHP:
Ver original
  1. <?php
  2. mysql_connect('db569861939.db.1and1.com','dbo569861939','p23HJd1As')or die ('Ha fallado la conexión: '.mysql_error());
  3.  
  4. /*Luego hacemos la conexión a la base de datos.
  5. **De igual manera mandamos un msj si hay algun error*/
  6. mysql_select_db('db569861939')or die ('Error al seleccionar la Base de Datos: '.mysql_error());
  7.  
  8.    
  9. if(empty($_SESSION['usuario'])){
  10. // aqui el usuario no esta logeado por lo que no puede acceder, lo redireccionamos al login
  11. header('Location: login.php');
  12. }else {
  13.  
  14. $IdUsuario = $_SESSION['usuario'];
  15.  
  16. $consulta = mysql_query("SELECT * FROM acceso_cursos WHERE IdUsuario =  '$IdUsuario'");
  17.  
  18. $fila=mysql_fetch_assoc($consulta);
  19.        
  20.  
  21.         // Aqui tendras que poner tantos if como grupos tengas ....
  22.        
  23.                 if($fila["IdCurso"] == 1){  
  24.        
  25.                     header("location:./vercursos.php?IdCurso=1");
  26.        
  27.                 }else if($fila["IdCurso"] == 2){
  28.                                                  
  29.                     header("location:./vercursos.php?IdCurso=2");
  30.            
  31.                 }else if($fila["IdCurso"] == 3){
  32.                    
  33.                     header("location:./vercursos.php?IdCurso=3");
  34.                    
  35.                 }else if($fila["IdCurso"] == 4){
  36.                        
  37.                     header("location:./vercursos.php?IdCurso=4");  
  38.  
  39.                  }else{
  40.                     die('el curso al que estas apuntado no existe');
  41.                  }
  42. }
  43. mysql_free_result($consulta);
  44.  
  45. ?>

Pruebalo ahora, aun que como te dice el error mysql esta obsoleto, deberias usar mysqli

Saludos.
Ahora si carga el curso, pero puedo verlos todos, no tengo resticción con ninguno.

Por que se necesita saber la IdUsuario? Es lo que te preguntaba, esto tiene que ir en vercursos.php no? por que la consulta se parece mucho a la de validar_usuario.

Saludos y gracias
  #55 (permalink)  
Antiguo 21/04/2015, 13:31
Avatar de MaNuX0218  
Fecha de Ingreso: marzo-2014
Mensajes: 787
Antigüedad: 10 años
Puntos: 67
Respuesta: Inicio de Sesión

Claro tiene que ir en vercursos.php, donde lo estas metiendo xD
__________________
No te preocupes si tu código no funciona bien. Si todo lo hiciera, no tendrías trabajo.
  #56 (permalink)  
Antiguo 21/04/2015, 13:33
 
Fecha de Ingreso: marzo-2015
Ubicación: Valencia
Mensajes: 132
Antigüedad: 9 años
Puntos: 0
Respuesta: Inicio de Sesión

Cita:
Iniciado por MaNuX0218 Ver Mensaje
Claro tiene que ir en vercursos.php, donde lo estas metiendo xD
Si si lo estoy metiendo en vercursos.php jajjajajjaja
  #57 (permalink)  
Antiguo 22/04/2015, 09:20
 
Fecha de Ingreso: marzo-2015
Ubicación: Valencia
Mensajes: 132
Antigüedad: 9 años
Puntos: 0
Respuesta: Inicio de Sesión

Hola de nuevo! He esado dando vueltas al tema, y he probado con el mismo código de ayer pero añadiéndole el "seesion start", por qué debería estar no? o da igual??

Este es el código tal cual está ahora:


Código PHP:
Ver original
  1. <?php
  2. ini_set('display_errors', 1);
  3.  
  4. mysql_connect('db569861939.db.1and1.com','dbo569861939','p23HJd1As')or die ('Ha fallado la conexión: '.mysql_error());
  5.  
  6. /*Luego hacemos la conexión a la base de datos.
  7. **De igual manera mandamos un msj si hay algun error*/
  8. mysql_select_db('db569861939')or die ('Error al seleccionar la Base de Datos: '.mysql_error());
  9.  
  10.    
  11. if(empty($_SESSION['usuario'])){
  12. // aqui el usuario no esta logeado por lo que no puede acceder, lo redireccionamos al login
  13. header('Location: login.php');
  14. }else {
  15.  
  16. $IdUsuario = $_SESSION['usuario'];
  17.  
  18. $consulta = mysql_query("SELECT * FROM acceso_cursos WHERE IdUsuario =  '$IdUsuario'");
  19.  
  20. $fila=mysql_fetch_assoc($consulta);
  21.        
  22.  
  23.         // Aqui tendras que poner tantos if como grupos tengas ....
  24.        
  25.                 if($fila["IdCurso"] == 1){  
  26.        
  27.                     header("location:./vercursos.php?IdCurso=1");
  28.        
  29.                 }else if($fila["IdCurso"] == 2){
  30.                                                  
  31.                     header("location:./vercursos.php?IdCurso=2");
  32.            
  33.                 }else if($fila["IdCurso"] == 3){
  34.                    
  35.                     header("location:./vercursos.php?IdCurso=3");
  36.                    
  37.                 }else if($fila["IdCurso"] == 4){
  38.                        
  39.                     header("location:./vercursos.php?IdCurso=4");  
  40.  
  41.                  }else{
  42.                     die('el curso al que estas apuntado no existe');
  43.                  }
  44. }
  45. mysql_free_result($consulta);
  46.  
  47. ?>

Y este sería el error que me da:

Código PHP:
Deprecatedmysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /homepages/36/d569523899/htdocs/vercursos.php on line 5

Warning
session_start(): Cannot send session cache limiter headers already sent (output started at /homepages/36/d569523899/htdocs/vercursos.php:5in /homepages/36/d569523899/htdocs/vercursos.php on line 11

Warning
Cannot modify header information headers already sent by (output started at /homepages/36/d569523899/htdocs/vercursos.php:5in /homepages/36/d569523899/htdocs/vercursos.php on line 41
mysql_free_result
($consulta); mysql_close(); ?> 
  #58 (permalink)  
Antiguo 22/04/2015, 14:20
Avatar de NueveReinas  
Fecha de Ingreso: septiembre-2013
Ubicación: No tan Buenos Aires
Mensajes: 1.101
Antigüedad: 10 años, 6 meses
Puntos: 145
Respuesta: Inicio de Sesión

Hola;

El primer error (mysql_connect) indica que deberías usar mysqli_connect.

El segundo indica que los headers ya se han enviado, o sea, no debes tener ningún código ANTES de iniciar la sesión con session_start, es lo primero que va justo después de abrir la etiqueta PHP.

El tercero puede deberse a un pequeño error de escritura o a espacios mal puestos.
__________________
¿Te sirvió la respuesta? Deja un +1

Etiquetas: inicio, sesión
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 07:00.