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. Buenas tardes foreros. Vereis estoy haciendo una pagina con dreamweaver, que contiene una web y en otra carperta el administrador de contenidos de la web. ...

  #1 (permalink)  
Antiguo 09/04/2015, 10:29
 
Fecha de Ingreso: marzo-2015
Ubicación: Valencia
Mensajes: 132
Antigüedad: 9 años, 1 mes
Puntos: 0
Inicio de Sesión

Buenas tardes foreros.

Vereis estoy haciendo una pagina con dreamweaver, que contiene una web y en otra carperta el administrador de contenidos de la web.

La pagina web esta en la raiz con un index.php
El administrador esta en una carpeta, _admin "www.paginaweb.es/_admin" que abre un index.php

La cuestión es que tengo que proteger ese administrador con usuario y contraseña, que yo haya puesto en la BD.

Se que para mucho de vosotros esto esta tirado, pero soy bastante novato en esto, he mirado muchos tutoriales de como se hace y más o menos lo tengo claro, pero no se muy bien donde tendria que ponerlo.

Pero mi problema es, si el administrador esta en "_admin" y ese "index.php" lee includes de otra carpeta, donde creo los archivos, en el include o en el index??? como hago para que abra ese inicio de sesion y luego el "index.php" si se supone que siempre carga el index.php??.

Como lo tendria que hacer?

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

Puedes usar sessiones donde comprueba si por ejemplo existe $_SESSION['admin'] le mostramos el _admin/index.php, de lo contrario le mostramos un _admin/login.php para que entre como admin.

Y las paginas puedes incluiras en la carpeta que tu quieras, por ejemplo crear una carpeta _admin/pages y hay ir metiendo todo "_admin/pages/usuarios.php, _admin/pages/otros.php".

Mas o menos con esto puedes darte una idea de como podría ir, aun que hay muchas otras formas de hacerlo.

Espero te sirva.

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

Cita:
Iniciado por MaNuX0218 Ver Mensaje
Puedes usar sessiones donde comprueba si por ejemplo existe $_SESSION['admin'] le mostramos el _admin/index.php, de lo contrario le mostramos un _admin/login.php para que entre como admin.

Y las paginas puedes incluiras en la carpeta que tu quieras, por ejemplo crear una carpeta _admin/pages y hay ir metiendo todo "_admin/pages/usuarios.php, _admin/pages/otros.php".

Mas o menos con esto puedes darte una idea de como podría ir, aun que hay muchas otras formas de hacerlo.

Espero te sirva.

Saludos.
Hola gracias por la respuesta.

Supongo que deberia de entenderlo, pero estoy algo bloqueado y no entiendo muy bien lo que quieres decir o bien yo no me he explicado bien.

el archivo index.php del _admin contiene esto.

<title>Administracion Secundaria Online</title>
<!-- InstanceEndEditable -->
<!-- InstanceBeginEditable name="head" -->
<!-- InstanceEndEditable -->
<link href="../css/estiloadmin.css" rel="stylesheet" type="text/css" />
</head>

<body>

Código PHP:
<div class="container"><!-- InstanceBeginEditable name="EditRegion3" -->
  <div class="header">
    <?php include("../includes/cabecera_admin.php"); ?>
    <div class="clearfloat"></div>
    <?php include("../includes/bienvenido_admin.php"); ?>
    <?php include("../includes/barra_admin.php"); ?>
    <?php include("../includes/opciones_admin.php"); ?>
    <?php include("../includes/barra_sobre.php"); ?>
    <?php include("../includes/opciones_sobremu.php"); ?>
    <?php include("../includes/barra_admin2.php"); ?>
    <?php include("../includes/opciones_admin2.php"); ?>
    <?php include("../includes/barra_admin3.php"); ?>
    <?php include("../includes/opciones_admin3.php"); ?>
    <?php include("../includes/barra_admin4.php"); ?>
    <?php include("../includes/opciones_admin4.php"); ?>
  </div>
<!-- InstanceEndEditable -->
  <div class="footer">
  <?php include("../includes/pie_admin.php"); ?>
    <p>&nbsp;</p>
    <!-- end .footer --></div>
  <!-- end .container --></div>
</body>
<!-- InstanceEnd --></html>
Todo eso lo abre el archivo index.php.

Entonces para hacer un inicio de sesion, que archivos tendria que crear? o como hacerlo desde 0 ya que no tengo ni idea.

Lo que he visto por aqui, o por google. Crean un archivo login.php o otro nombre, pero si creo eso como se hace para que abra el login.php y despues el index.php? o el codigo del login tendria que pegarlo en el index.php del _admin??

jajaja que cacao llevo, seguro que es más facil de como lo veo yo en mi cabeza!
  #4 (permalink)  
Antiguo 09/04/2015, 10:53
Avatar de MaNuX0218  
Fecha de Ingreso: marzo-2014
Mensajes: 787
Antigüedad: 10 años, 1 mes
Puntos: 67
Respuesta: Inicio de Sesión

Puedes crear un login.php en _admin/login.php y muestras un formulario para entrar, una vez comprobado que es admin le asignas la sesión por ejemplo $_SESSION['admin'] y lo redireccionas a index.php.

Después el index.php debe estar preparado para comprobar si existe o no esa sesión, por ejemplo te quedaría asi:

Código PHP:
Ver original
  1. if(empty($_SESSION['admin'])) {
  2. // aqui lo mandamos al login.php ya que no existe
  3. }else {
  4. // aqui mostramos todo lo del index, ya que existe la sesión por que se logeo correctamente
  5. }

También te recomiendo que mires manuales de php y ordenes un poco ese index, ya que no es recomendable utilizar html antes que php.

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

Hola gracias, probare lo que me dices.

Se que tengo un desorden enorme, pero he empezado a saber algo más de php, etc.. conforme hiba haciendo la web, ahora ya esta casi acabada y a punto de entregar, se que no es un codigo perfecto pero a la siguiente, sabre ordenarme mejor.

Gracias
  #6 (permalink)  
Antiguo 16/04/2015, 13:24
 
Fecha de Ingreso: marzo-2015
Ubicación: Valencia
Mensajes: 132
Antigüedad: 9 años, 1 mes
Puntos: 0
Respuesta: Inicio de Sesión

Buenas, gracias por la ayuda.

Creo que ya lo tengo más o menos como quiero :D

Esto seria el login.php

Código PHP:
<?php
session_start
();
if (
$_POST['user']) {
if (
$_POST['user'] == "usuario" && $_POST['pass'] == "contraseña") {
$_SESSION['autorizado'] = TRUE;
header ("Location: index.php");
} else {
$mensaje "Nombre de usuario o contraseña incorrectos";
}
}
?>
y esto estaria en el index.php

Código PHP:
<?php
session_start
();
if (
$_SESSION['autorizado'] != TRUEheader("Location: login.php");
?>
Como solamente es un suario el que va entrar en esta administración, lo he echo así.

Solo me queda una duda. Resulta que una vez ingresada la contraseña ya no necesito meterla más, hay alguna forma para que se cierre la sesión automatica? o bien como lo hacen la mayoria de paginas para que almenos no salga la contraseña???

Muchas gracias.
  #7 (permalink)  
Antiguo 17/04/2015, 01:41
Avatar de MaNuX0218  
Fecha de Ingreso: marzo-2014
Mensajes: 787
Antigüedad: 10 años, 1 mes
Puntos: 67
Respuesta: Inicio de Sesión

No sé a que te refieres exactamente, pero si lo que quieres es que expire la sesión por un tiempo especifico de inactividad puedes utilizar cookies para eso.

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

Ok! dare mirare de lo que me dices

Ahora tengo otra consulta que va más o menos de lo mismo. Si me decis que tengo que creear un tema nuevo y dar este como solucionado, lo hago.

La pagina que estoy haciendo tiene 4 cursos.

1º de eso - 2º de eso - 3º de eso - 4 eso

Los cursos me los saca con una consulta a la base de datos.

Cuando hago clic por ejemplo en 1º de Eso saldria esto.

www.paginaweb.es/vercursos.php?IdCurso=1

En los otros cursos seria IdCurso=2 = 3 o =4

La cosa esta en que, este cliente necesita que esos cuatro cursos esten protegidos con contraseña, y el cuando sus clientes le paguen, darles un usuario y contraseña para que puedan arrancar el curso que compren. Es decir si alguien le compra 1º de eso, tendria que hacerle un usuario y una contraseña y mandarsela.

Yo creo que esto se tendria que hacer con la BD, etc.. ya que seran bastantes clientes, pero no solo con pensarlo me pierdo un poco, y mas tratandose de que los cursos lo saca de una consulta.

Una ayudita por favor.
  #9 (permalink)  
Antiguo 18/04/2015, 18:53
Avatar de NueveReinas  
Fecha de Ingreso: septiembre-2013
Ubicación: No tan Buenos Aires
Mensajes: 1.101
Antigüedad: 10 años, 7 meses
Puntos: 145
Respuesta: Inicio de Sesión

Simplemente obtienes el ID del curso (con GET) y haces un login para cada curso. Lo suyo sería que cada curso tenga su propia tabla.
__________________
¿Te sirvió la respuesta? Deja un +1
  #10 (permalink)  
Antiguo 20/04/2015, 03:29
 
Fecha de Ingreso: marzo-2015
Ubicación: Valencia
Mensajes: 132
Antigüedad: 9 años, 1 mes
Puntos: 0
Respuesta: Inicio de Sesión

Cita:
Iniciado por NueveReinas Ver Mensaje
Simplemente obtienes el ID del curso (con GET) y haces un login para cada curso. Lo suyo sería que cada curso tenga su propia tabla.
Hola NueveReinas, gracias por la respuesta.

Entonces tendria que hacer cuatro archivos login.php?
Y en el archivo que carga los cursos? que tendria que poner?

Cuando dices que lo suyo seria que cada curso tenga su propia tabla, te refieres a que cree 4 tablas de usuarios?

Perdona mi torpeza, pero soy super nov.

Saludos

Última edición por miguelA4; 20/04/2015 a las 04:47
  #11 (permalink)  
Antiguo 20/04/2015, 07:56
Avatar de MaNuX0218  
Fecha de Ingreso: marzo-2014
Mensajes: 787
Antigüedad: 10 años, 1 mes
Puntos: 67
Respuesta: Inicio de Sesión

Lo que te dice NueveReinas es que crees tablas independientes para cada curso en la BBDD y con $_GET recoger el ID del curso y segun el id obtenido llevarle al login correspondiente para acceder al curso. Ya obtenido el ID por $_GET podras mostrar todo lo que se refiere a ese curso.

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

Cita:
Iniciado por MaNuX0218 Ver Mensaje
Lo que te dice NueveReinas es que crees tablas independientes para cada curso en la BBDD y con $_GET recoger el ID del curso y segun el id obtenido llevarle al login correspondiente para acceder al curso. Ya obtenido el ID por $_GET podras mostrar todo lo que se refiere a ese curso.

Saludos.
Gracias por ser tan rapido.

Pero es que las tablas ya estan echas y todos los contenidos introducidos. Hay alguna forma de hacer tal como lo tengo?

Yo pensaba que tendria que hacer una o mas tablas con usuarios y contraseñas y de algun modo poner a que curso tienen acceso.

Gracias
  #13 (permalink)  
Antiguo 20/04/2015, 08:07
Avatar de MaNuX0218  
Fecha de Ingreso: marzo-2014
Mensajes: 787
Antigüedad: 10 años, 1 mes
Puntos: 67
Respuesta: Inicio de Sesión

Yo lo que aría es una vez realizado el pago se genere un usuario y contraseña unico para ese usuario y que pueda acceder al curso, seria crear una tabla llamada por ejemplo acceso_cursos y dentro de ella

ID_USUARIO, ID_CURSO, USUARIO, CONTRASEÑA

Para el acceso, simplemente con un login vastaría, y cuando tenga el acceso comprobara que el usuario y contraseña pertenece al id de ese curso "ID_CURSO" por lo que mostraria ese curso, no sé si se entiende.

Sólo es mi opinión de como yo lo plantearía de hacer.

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

Cita:
Iniciado por MaNuX0218 Ver Mensaje
Yo lo que aría es una vez realizado el pago se genere un usuario y contraseña unico para ese usuario y que pueda acceder al curso, seria crear una tabla llamada por ejemplo acceso_cursos y dentro de ella

ID_USUARIO, ID_CURSO, USUARIO, CONTRASEÑA

Para el acceso, simplemente con un login vastaría, y cuando tenga el acceso comprobara que el usuario y contraseña pertenece al id de ese curso "ID_CURSO" por lo que mostraria ese curso, no sé si se entiende.

Sólo es mi opinión de como yo lo plantearía de hacer.

Saludos.
Geniaaaaalll muchas gracias, eso es como lo queria explicar yo, solo que soy tan nuevo que aveces no se ni como explicarlo. Lo has explicado de maravilla, solo me falta saber como desarrollarlo.

Lo de la tabla quedaria así muy claro, gracias MaNuX218.

Pero asi cuantos login.php tendria que creear? donde le tendria que poner el codigo para que busque usuario y contraseña?

El codigo que utilize detras valdria?

Saludos y millones de gracias.
  #15 (permalink)  
Antiguo 20/04/2015, 08:29
Avatar de MaNuX0218  
Fecha de Ingreso: marzo-2014
Mensajes: 787
Antigüedad: 10 años, 1 mes
Puntos: 67
Respuesta: Inicio de Sesión

No hace falta crear logins con uno vastaría como te he comentado, sólo tienes que comprobar el acceso que corresponda con el curso comprado.

Si ya tienes un archivo login.php, hay podrias comprobar dicho acceso, comprobar si el usuario y contraseña existe mandarlo al ID_CURSO y mostrar el curso correspondiente de ese id, de lo contrario no darle acceso.

Si necesitas mas ayuda publica el código y te echaremos una mano.

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

Cita:
Iniciado por MaNuX0218 Ver Mensaje
No hace falta crear logins con uno vastaría como te he comentado, sólo tienes que comprobar el acceso que corresponda con el curso comprado.

Si ya tienes un archivo login.php, hay podrias comprobar dicho acceso, comprobar si el usuario y contraseña existe mandarlo al ID_CURSO y mostrar el curso correspondiente de ese id, de lo contrario no darle acceso.

Si necesitas mas ayuda publica el código y te echaremos una mano.

Saludos.
Te lo agradezco muchisimo, voy a mirar de escribir el codigo y si me surgen dudas te pregunto.

De nuevo muchisimas gracias, voy a ver como se te dan puntos!
  #17 (permalink)  
Antiguo 20/04/2015, 09:00
 
Fecha de Ingreso: marzo-2015
Ubicación: Valencia
Mensajes: 132
Antigüedad: 9 años, 1 mes
Puntos: 0
Respuesta: Inicio de Sesión

Cita:
Iniciado por MaNuX0218 Ver Mensaje
No hace falta crear logins con uno vastaría como te he comentado, sólo tienes que comprobar el acceso que corresponda con el curso comprado.

Si ya tienes un archivo login.php, hay podrias comprobar dicho acceso, comprobar si el usuario y contraseña existe mandarlo al ID_CURSO y mostrar el curso correspondiente de ese id, de lo contrario no darle acceso.

Si necesitas mas ayuda publica el código y te echaremos una mano.

Saludos.
No se si estara bien planteado asi, pero me da error en la BD.

LOGIN.PHP

Código PHP:
Ver original
  1. <form action="validar_usuario.php" method="post">
  2.  <table>
  3.   <tr>
  4.    <td>Usuario:</td>
  5.    <td><input name="admin" required="required" type="text" /></td>
  6.   </tr>
  7.   <tr>
  8.    <td>Password:</td>
  9.    <td><input name="password_usuario" required="required" type="password" /></td>
  10.   </tr>
  11.   <tr>
  12.    <td colspan="2"><input name="iniciar" type="submit" value="Iniciar Sesión" /></td>
  13.   </tr>
  14. </table>
  15. </form>

VALIDAR_USUARIO.PHP

Código PHP:
Ver original
  1. <?php
  2. /****************************************
  3. **establecemos conexion con el servidor.
  4. **nombre del servidor: localhost.
  5. **Nombre de usuario: root.
  6. **Contraseña de usuario: root.
  7. **Si la conexion fallara mandamos un msj 'ha fallado la conexion'**/
  8. mysql_connect('db569861939.db.1and1.com','dbo569861939','p23HJd1As')or die ('Ha fallado la conexión: '.mysql_error());
  9.  
  10. /*Luego hacemos la conexión a la base de datos.
  11. **De igual manera mandamos un msj si hay algun error*/
  12. mysql_select_db('acceso_cursos')or die ('Error al seleccionar la Base de Datos: '.mysql_error());
  13.  
  14. /*caturamos nuestros datos que fueron enviados desde el formulario mediante el metodo POST
  15. **y los almacenamos en variables.*/
  16. $usuario = $_POST["admin"];  
  17. $password = $_POST["password_usuario"];
  18.  
  19. /*Consulta de mysql con la que indicamos que necesitamos que seleccione
  20. **solo los campos que tenga como nombre_administrador el que el formulario
  21. **le ha enviado*/
  22. $result = mysql_query("SELECT * FROM acceso_cursos WHERE IdCursos = " . $_GET['IdCurso'] );
  23.  
  24. //Validamos si el nombre del administrador existe en la base de datos o es correcto
  25. if($row = mysql_fetch_array($result))
  26. {    
  27. //Si el usuario es correcto ahora validamos su contraseña
  28.  if($row["password"] == $password)
  29.  {
  30.   //Creamos sesión
  31.   session_start();  
  32.   //Almacenamos el nombre de usuario en una variable de sesión usuario
  33.   $_SESSION['usuario'] = $usuario;  
  34.   //Redireccionamos a la pagina: index.php
  35.   header("Location: ./vercursos.php?IdCurso=");  
  36.  }
  37.  else
  38.  {
  39.   //En caso que la contraseña sea incorrecta enviamos un msj y redireccionamos a login.php
  40.   ?>
  41.    <script languaje="javascript">
  42.     alert("Contraseña Incorrecta");
  43.     location.href = "login.php";
  44.    </script>
  45.   <?
  46.            
  47.  }
  48. }
  49. else
  50. {
  51.  //en caso que el nombre de administrador es incorrecto enviamos un msj y redireccionamos a login.php
  52. ?>
  53.  <script languaje="javascript">
  54.   alert("El nombre de usuario es incorrecto!");
  55.   location.href = "login.html";
  56.  </script>
  57. <?  
  58.        
  59. }
  60.  
  61. //Mysql_free_result() se usa para liberar la memoria empleada al realizar una consulta
  62.  
  63. /*Mysql_close() se usa para cerrar la conexión a la Base de datos y es
  64. **necesario hacerlo para no sobrecargar al servidor, bueno en el caso de
  65. **programar una aplicación que tendrá muchas visitas ;) .*/
  66. ?>

Y ESTO ESTA PUESTO EN EL ARCHIVO QUE ABRE 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.   header('Location: login.php');
  11.   exit();
  12. }
  13.  ?>

En la bd esta:

IdUsuario, IdCurso, usuario, password
  #18 (permalink)  
Antiguo 20/04/2015, 09:07
Avatar de MaNuX0218  
Fecha de Ingreso: marzo-2014
Mensajes: 787
Antigüedad: 10 años, 1 mes
Puntos: 67
Respuesta: Inicio de Sesión

Muestra también el error que te da, también indicarte que cuando lo direccionas al curso le das un idcurso vacio.

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

Cita:
Iniciado por MaNuX0218 Ver Mensaje
Muestra también el error que te da, también indicarte que cuando lo direccionas al curso le das un idcurso vacio.

Saludos.
Lo de la conexion ya esta solucionado, hiva a postearlo ahora. Ahora no reconoce usuarios. ( solucionado, estaba mal la consulta )

A que te refieres con el idcurso vacio???

Crees que las consultas estan bien echas?? y los GET?

Creo que aunque así me funcionase, faltaria algo para que sepa que curso es el que tiene comprado, no?

Gracias

Última edición por miguelA4; 20/04/2015 a las 09:25
  #20 (permalink)  
Antiguo 20/04/2015, 10:24
 
Fecha de Ingreso: marzo-2015
Ubicación: Valencia
Mensajes: 132
Antigüedad: 9 años, 1 mes
Puntos: 0
Respuesta: Inicio de Sesión

Cita:
Iniciado por MaNuX0218 Ver Mensaje
Muestra también el error que te da, también indicarte que cuando lo direccionas al curso le das un idcurso vacio.

Saludos.
He modificado ya la BD que me daba error, solo hera que no estaba bien escrito, habia puesto la tabla en lugar de la BD.

La consulta la he cambiado para que reconozca usuario.

Código PHP:
Ver original
  1. $result = mysql_query("SELECT * FROM acceso_cursos WHERE usuario = '$usuario'");

Pero no se ni que poner en el header, ni como hacer para que reconozca que curso tiene comprado ese usuario, ademas que si me reconoce el usuario pero no me carga nada.
  #21 (permalink)  
Antiguo 20/04/2015, 10:32
Avatar de NueveReinas  
Fecha de Ingreso: septiembre-2013
Ubicación: No tan Buenos Aires
Mensajes: 1.101
Antigüedad: 10 años, 7 meses
Puntos: 145
Respuesta: Inicio de Sesión

A cada usuario debes asignarle el curso correspondiente.

Por ejemplo:
Usuario1 tiene comprado el curso 3, y Usuario2 tiene comprado el curso 1, entonces, cuando Usuario1 haga log-in, debes fijarte qué curso ha comprado (debes ponerlo en la BD) y redirigirlo a su correspondiente curso (por ejemplo, /curso3).

¿Se entiende?
__________________
¿Te sirvió la respuesta? Deja un +1
  #22 (permalink)  
Antiguo 20/04/2015, 10:37
 
Fecha de Ingreso: marzo-2015
Ubicación: Valencia
Mensajes: 132
Antigüedad: 9 años, 1 mes
Puntos: 0
Respuesta: Inicio de Sesión

Cita:
Iniciado por NueveReinas Ver Mensaje
A cada usuario debes asignarle el curso correspondiente.

Por ejemplo:
Usuario1 tiene comprado el curso 3, y Usuario2 tiene comprado el curso 1, entonces, cuando Usuario1 haga log-in, debes fijarte qué curso ha comprado (debes ponerlo en la BD) y redirigirlo a su correspondiente curso (por ejemplo, /curso3).

¿Se entiende?
Hola Nueve Reinas.

Eso ya lo tengo puesto en la BD. Es decir el unico usuario que he añadido seria:

Nombre: Miguel
Password: ******
IdCurso: 4

Que seria que puede ver el 4º de ESO.

Luego los cursos se cargar a traves de una consulta
Código PHP:
Ver original
  1. vercursos.php?IdCurso=4

Entonces mi problea es que no se que tengo que hacer en el validar_usuario
Tambien hay que tener en cuenta que en el menu de la web es:

INICIO | 1º DE ESO | 2º DE ESO | 3º DE ESO

Quizas me este explicado mal, tengo mucho cacao en la cabeza y más cuando es la primera vez que lo hace.
  #23 (permalink)  
Antiguo 20/04/2015, 10:43
Avatar de NueveReinas  
Fecha de Ingreso: septiembre-2013
Ubicación: No tan Buenos Aires
Mensajes: 1.101
Antigüedad: 10 años, 7 meses
Puntos: 145
Respuesta: Inicio de Sesión

¿Cómo compruebas si ese usuario ha comprado el curso? ¿Cuál es la consulta a la base de datos para eso?

Lo otro es muy simple:

Usuario1 hace log-in (rellena los datos del formulario) => El "login.php" comprueba los datos del usuario a través de una consulta SQL (compruebas si el usuario y la contraseña son correctos) => En esa consulta anterior obtienes también el curso (que va asignado al usuario) y según el curso haya comprado le llevas a "curso4.php" o a "cursoX.php" con una simple redirección.

¿Ahora se entiende?
__________________
¿Te sirvió la respuesta? Deja un +1
  #24 (permalink)  
Antiguo 20/04/2015, 10:47
 
Fecha de Ingreso: marzo-2015
Ubicación: Valencia
Mensajes: 132
Antigüedad: 9 años, 1 mes
Puntos: 0
Respuesta: Inicio de Sesión

Cita:
Iniciado por NueveReinas Ver Mensaje
¿Cómo compruebas si ese usuario ha comprado el curso? ¿Cuál es la consulta a la base de datos para eso?

Lo otro es muy simple:

Usuario1 hace log-in (rellena los datos del formulario) => El "login.php" comprueba los datos del usuario a través de una consulta SQL (compruebas si el usuario y la contraseña son correctos) => En esa consulta anterior obtienes también el curso (que va asignado al usuario) y según el curso haya comprado le llevas a "curso4.php" o a "cursoX.php" con una simple redirección.

¿Ahora se entiende?
No claro, no lo compruebo por que no se como tengo que hacerlo, supongo que sera una consulta, pero donde la pongo y que pongo.

Podrias por favor te pido, mirar los codigos que estan puesto atras y guiarme un poco.

Y si que te entiendo, pero no se ponerlo en practica, ese es mi problema.

Saludos
  #25 (permalink)  
Antiguo 20/04/2015, 10:55
Avatar de NueveReinas  
Fecha de Ingreso: septiembre-2013
Ubicación: No tan Buenos Aires
Mensajes: 1.101
Antigüedad: 10 años, 7 meses
Puntos: 145
Respuesta: Inicio de Sesión

Para empezar: ¿dónde guardas el usuario, la contraseña y el curso que ha comprado? ¿Está todo en la misma tabla?

Si fuese así, solo tendrías que hacer algo como esto (ejemplo en MySQLi):

Código PHP:
Ver original
  1. //Conecta a la BD y selecciona todos los campos de la tabla usuarios (por ejemplo)
  2. $consulta = "SELECT * FROM usuarios";
  3.  
  4. //Obtiene y muestra los resultados
  5. $resultado = mysqli_query($connection, $consulta) or die(mysql_error());
  6. $datos = mysqli_fetch_array($resultado);
  7.  
  8. $usuario = $datos['usuario'];
  9. $contra = $datos['password'];
  10. $curso = $datos['IdCurso'];

Después, según el curso que esté asociado al usuario en la base de datos, redireccionas a "cursoX.php" o a "cursoY.php" con una condicional (else/if).

//De todas formas aclaro que no soy ningún experto en estos temas.
__________________
¿Te sirvió la respuesta? Deja un +1
  #26 (permalink)  
Antiguo 20/04/2015, 11:03
 
Fecha de Ingreso: marzo-2015
Ubicación: Valencia
Mensajes: 132
Antigüedad: 9 años, 1 mes
Puntos: 0
Respuesta: Inicio de Sesión

Si la los usuarios y el curso que tiene esta en una misma tabla.

IdUsuario | IdCurso | usuario | password

Entonces la otra consulta la tendira que borrar? hace referencia a la misma tabla para que si coincide el usuario me de paso. Es esta:

Código PHP:
$result mysql_query("SELECT * FROM acceso_cursos WHERE usuario = '$usuario'"); 
Por lo que veo tienes muchos más conocimiento que yo, soy muy novato en todo esto, y como buen novato acabo extresado de no entender todo esto.

Muchas gracias Nueve Reinas
  #27 (permalink)  
Antiguo 20/04/2015, 11:09
Avatar de NueveReinas  
Fecha de Ingreso: septiembre-2013
Ubicación: No tan Buenos Aires
Mensajes: 1.101
Antigüedad: 10 años, 7 meses
Puntos: 145
Respuesta: Inicio de Sesión

La consulta que yo te he dado es un ejemplo, pero sí, debes comprobar que el usuario escrito en el formulario sea igual al usuario de la base de datos, al igual que con la contraseña.

Entonces obtienes qué curso ha comprado el usuario y lo redireccionas.
__________________
¿Te sirvió la respuesta? Deja un +1
  #28 (permalink)  
Antiguo 20/04/2015, 11:16
 
Fecha de Ingreso: marzo-2015
Ubicación: Valencia
Mensajes: 132
Antigüedad: 9 años, 1 mes
Puntos: 0
Respuesta: Inicio de Sesión

Cita:
Iniciado por NueveReinas Ver Mensaje
La consulta que yo te he dado es un ejemplo, pero sí, debes comprobar que el usuario escrito en el formulario sea igual al usuario de la base de datos, al igual que con la contraseña.

Entonces obtienes qué curso ha comprado el usuario y lo redireccionas.
Entonces la mitad de codigo que esta puesto en el validar_usuario sobraria no?

Código PHP:
Ver original
  1. <?php
  2. /****************************************
  3. **establecemos conexion con el servidor.
  4. **nombre del servidor: localhost.
  5. **Nombre de usuario: root.
  6. **Contraseña de usuario: root.
  7. **Si la conexion fallara mandamos un msj 'ha fallado la conexion'**/
  8. mysql_connect('db569861939.db.1and1.com','dbo569861939','p23HJd1As')or die ('Ha fallado la conexión: '.mysql_error());
  9.  
  10. /*Luego hacemos la conexión a la base de datos.
  11. **De igual manera mandamos un msj si hay algun error*/
  12. mysql_select_db('db569861939')or die ('Error al seleccionar la Base de Datos: '.mysql_error());
  13.  
  14. /*caturamos nuestros datos que fueron enviados desde el formulario mediante el metodo POST
  15. **y los almacenamos en variables.*/
  16. $usuario = $_POST["admin"];  
  17. $password = $_POST["password_usuario"];
  18.  
  19. /*Consulta de mysql con la que indicamos que necesitamos que seleccione
  20. **solo los campos que tenga como nombre_administrador el que el formulario
  21. **le ha enviado*/
  22.  
  23. $result = mysql_query("SELECT * FROM acceso_cursos WHERE usuario = '$usuario'");
  24.  
  25. //Validamos si el nombre del administrador existe en la base de datos o es correcto
  26. if($row = mysql_fetch_array($result))
  27. {    
  28. //Si el usuario es correcto ahora validamos su contraseña
  29.  if($row["password"] == $password)
  30.  {
  31.   //Creamos sesión
  32.   session_start();  
  33.   //Almacenamos el nombre de usuario en una variable de sesión usuario
  34.   $_SESSION['usuario'] = $usuario;  
  35.   //Redireccionamos a la pagina: index.php
  36.   header("Location: ./vercursos.php?IdCurso=  " );  
  37.  }
  38.  else
  39.  {
  40.   //En caso que la contraseña sea incorrecta enviamos un msj y redireccionamos a login.php
  41.   ?>
  42.    <script languaje="javascript">
  43.     alert("Contraseña Incorrecta");
  44.     location.href = "login.php";
  45.    </script>
  46.   <?php
  47.            
  48.  }
  49. }
  50. else
  51. {
  52.  //en caso que el nombre de administrador es incorrecto enviamos un msj y redireccionamos a login.php
  53. ?>
  54.  <script languaje="javascript">
  55.   alert("El nombre de usuario es incorrecto!");
  56.   location.href = "login.php";
  57.  </script>
  58. <?php  
  59.        
  60. }
  61.  
  62. //Mysql_free_result() se usa para liberar la memoria empleada al realizar una consulta
  63.  
  64. /*Mysql_close() se usa para cerrar la conexión a la Base de datos y es
  65. **necesario hacerlo para no sobrecargar al servidor, bueno en el caso de
  66. **programar una aplicación que tendrá muchas visitas ;) .*/
  67. ?>

Por que lo que tu me dices tendria que ir puesto aquí no? Ese es mi problema Nueve Reinas, que no se plasmarlo y es donde empieza mi locura.

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

Código PHP:
Ver original
  1. <?php
  2. /****************************************
  3. **establecemos conexion con el servidor.
  4. **nombre del servidor: localhost.
  5. **Nombre de usuario: root.
  6. **Contraseña de usuario: root.
  7. **Si la conexion fallara mandamos un msj 'ha fallado la conexion'**/
  8. mysql_connect('db569861939.db.1and1.com','dbo569861939','p23HJd1As')or die ('Ha fallado la conexión: '.mysql_error());
  9.  
  10. /*Luego hacemos la conexión a la base de datos.
  11. **De igual manera mandamos un msj si hay algun error*/
  12. mysql_select_db('db569861939')or die ('Error al seleccionar la Base de Datos: '.mysql_error());
  13.  
  14. //Creamos sesión
  15.  
  16. /*caturamos nuestros datos que fueron enviados desde el formulario mediante el metodo POST
  17. **y los almacenamos en variables.*/
  18. $usuario = $_POST["admin"];  
  19. $password = $_POST["password_usuario"];
  20.  
  21. /*Consulta de mysql con la que indicamos que necesitamos que seleccione
  22. **solo los campos que tenga como nombre_administrador el que el formulario
  23. **le ha enviado*/
  24.  
  25. $result = mysql_query("SELECT * FROM acceso_cursos WHERE usuario = '$usuario'");
  26.  
  27. //Validamos si el nombre del administrador existe en la base de datos o es correcto
  28. if($row = mysql_fetch_array($result))
  29. {    
  30. //Si el usuario es correcto ahora validamos su contraseña
  31.  if($password == $row["password"])
  32.  {
  33.   //Almacenamos el nombre de usuario en una variable de sesión usuario
  34.   $_SESSION['usuario'] = $row['IdUsuario'];  
  35.   //Redireccionamos a la pagina: index.php
  36.   header("Location: ./vercursos.php?IdCurso=".$row['IdCurso']);  
  37.  }
  38.  else
  39.  {
  40.   //En caso que la contraseña sea incorrecta enviamos un msj y redireccionamos a login.php
  41.   ?>
  42.    <script languaje="javascript">
  43.     alert("Contraseña Incorrecta");
  44.     location.href = "login.php";
  45.    </script>
  46.   <?php
  47.            
  48.  }
  49. }
  50. else
  51. {
  52.  //en caso que el nombre de administrador es incorrecto enviamos un msj y redireccionamos a login.php
  53. ?>
  54.  <script languaje="javascript">
  55.   alert("El nombre de usuario es incorrecto!");
  56.   location.href = "login.php";
  57.  </script>
  58. <?php  
  59.        
  60. }
  61.  
  62. //Mysql_free_result() se usa para liberar la memoria empleada al realizar una consulta
  63.  
  64. /*Mysql_close() se usa para cerrar la conexión a la Base de datos y es
  65. **necesario hacerlo para no sobrecargar al servidor, bueno en el caso de
  66. **programar una aplicación que tendrá muchas visitas ;) .*/
  67. ?>

Pruebalo de está manera y dime si te marca algun error.

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

Cita:
Iniciado por MaNuX0218 Ver Mensaje
Código PHP:
Ver original
  1. <?php
  2. /****************************************
  3. **establecemos conexion con el servidor.
  4. **nombre del servidor: localhost.
  5. **Nombre de usuario: root.
  6. **Contraseña de usuario: root.
  7. **Si la conexion fallara mandamos un msj 'ha fallado la conexion'**/
  8. mysql_connect('db569861939.db.1and1.com','dbo569861939','p23HJd1As')or die ('Ha fallado la conexión: '.mysql_error());
  9.  
  10. /*Luego hacemos la conexión a la base de datos.
  11. **De igual manera mandamos un msj si hay algun error*/
  12. mysql_select_db('db569861939')or die ('Error al seleccionar la Base de Datos: '.mysql_error());
  13.  
  14. //Creamos sesión
  15.  
  16. /*caturamos nuestros datos que fueron enviados desde el formulario mediante el metodo POST
  17. **y los almacenamos en variables.*/
  18. $usuario = $_POST["admin"];  
  19. $password = $_POST["password_usuario"];
  20.  
  21. /*Consulta de mysql con la que indicamos que necesitamos que seleccione
  22. **solo los campos que tenga como nombre_administrador el que el formulario
  23. **le ha enviado*/
  24.  
  25. $result = mysql_query("SELECT * FROM acceso_cursos WHERE usuario = '$usuario'");
  26.  
  27. //Validamos si el nombre del administrador existe en la base de datos o es correcto
  28. if($row = mysql_fetch_array($result))
  29. {    
  30. //Si el usuario es correcto ahora validamos su contraseña
  31.  if($password == $row["password"])
  32.  {
  33.   //Almacenamos el nombre de usuario en una variable de sesión usuario
  34.   $_SESSION['usuario'] = $row['IdUsuario'];  
  35.   //Redireccionamos a la pagina: index.php
  36.   header("Location: ./vercursos.php?IdCurso=".$row['IdCurso']);  
  37.  }
  38.  else
  39.  {
  40.   //En caso que la contraseña sea incorrecta enviamos un msj y redireccionamos a login.php
  41.   ?>
  42.    <script languaje="javascript">
  43.     alert("Contraseña Incorrecta");
  44.     location.href = "login.php";
  45.    </script>
  46.   <?php
  47.            
  48.  }
  49. }
  50. else
  51. {
  52.  //en caso que el nombre de administrador es incorrecto enviamos un msj y redireccionamos a login.php
  53. ?>
  54.  <script languaje="javascript">
  55.   alert("El nombre de usuario es incorrecto!");
  56.   location.href = "login.php";
  57.  </script>
  58. <?php  
  59.        
  60. }
  61.  
  62. //Mysql_free_result() se usa para liberar la memoria empleada al realizar una consulta
  63.  
  64. /*Mysql_close() se usa para cerrar la conexión a la Base de datos y es
  65. **necesario hacerlo para no sobrecargar al servidor, bueno en el caso de
  66. **programar una aplicación que tendrá muchas visitas ;) .*/
  67. ?>

Pruebalo de está manera y dime si te marca algun error.

Saludos.
Gracias Manux0218

Ahora si me reconoce el usuario y me lleva al curso. Pero, el problema es que puedo ver todos los cursos. Y se supone que este solo tiene el 4.

Saludos y gracias

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 18:57.