Negar acceso a una página usando php

Mi duda no se si sea algo facil o dificil de entender pero te explico, tengo una pagina llamada articulos.php y a esta se le envia de una pagina antes un usuario por el metodo get ejemplo: ?usuario=1002 pero lo que quiero es que si alguien intenta abrir la pagina de nuevo no se lo permita y para esto uso otra tabla llamada status donde 1=Libre y 2=Terminado, el status 1 se lo agrego a la tabla cuando se registran y el 2 cuando terminan de comprar lo que pasa es que si lo escribo directo en el explorer si entran y pues no quiero que esten modificando las compras ni que agreguen compras fantasmas, aca esta el codigo que uso ates de iniciar la pagina:
(Revísalo por favor pues no se en que estoy fallando.)
<?php
 if($_GET)
 {/*NO pasa nada si recibe datos*/}
 else
 {
  if($_POST)
  {/*NO pasa nada si recibe datos*/}
  else
  /*Si no recibe nada entonces Sale*/
  {exit;}
 }
  /*Ahora si escribo por ejemplo "http://localhost/Tienda/articulos.php?usuario=1001" directamente
  en el explorador lo "busca" en la BD*/
  $conexion = mysql_connect("localhost","root","");
  mysql_select_db("ventasml",$conexion);
  /*Aqui va a seleccionar todos los de la tabla seguimientos*/
  $valida_query = "SELECT * FROM seguimientos";
  if (mysql_query($valida_query))
  {
   $tabla = mysql_query($valida_query);
   while ($col = mysql_fetch_array($tabla))
   {
    /*Si lo encuentra, verifica que en la columna IdStatus sea igual a 1
      1 = Libre
      2 = Terminado
    */
    if ($col["Status_IdStatus"] = 1)
    {}
    else
    {
     echo "
<script>alert('NO es un folio Aceptable.');</script>
";
     /*Esto lo puse para que saliera y no cargue nada*/
     exit;
     break;
    }    
   }
  }
  else
  {
   /*Si no tiene el ?usuario=1001 o cualquier otro usuario manda este mensaje.*/
   echo "
<script>alert('Tu folio no existe.');</script>
";
   exit;
  }
?>
<html>
<head>
<title>Pagina Web</title>
</head>
<body>
 Mi codigo HTML..!!
</body>
Espero tu respuesta y por favor no quiero presionarte ni nada pues estas en todo tu derecho de descartarla pero es importante este trabajo para mi.
Respuesta
1
Ok
Para restringir el acceso necesitas usar un cando.
Como es esto, sencillo,
si trabajas con usuarios resgrados, entonces debes de crear sesiones, si tienes las sesiones, valida esta y lito
if(!unset($_SESSION['el nombre de tu sesion']))
<span style="white-space: pre;"> </span>header('Location: index.php');
Hola oye entonces si yo no uso sesiones y solo uso el envío de variables para accesar a la página, ¿Cómo podre hacerle para que al momento de que el usuario pase a otra página con diferente formulario o que termine de meter sus datos no tenga oportunidad de meterse de nuevo? Pues he visto que con darle en la flecha "atras" del explorador se regresa al formulario y no le niega el acceso, como podfria usar en ese caso *unset* pues estoy por subir esta aplicación.
Saludos..!
Lic. Inf. Juan Carmona
Pensemos.
Le invias una variables a una página.
Para que esta página pueda restringir el acceso sin sesiones, entonces necesita tener una lista de variables para poder compararla con la que tu estas enviando.
De donde podría la página agarrar esta lista de variables,
Base de datos: Haciendo un campo permitir restringir según usuario.
Cookies: creara cookies, introducirles informacion del usuario, y en cada sitio que habaras tendrias que subirle informacion a la cookie, para restringir.
Sesiones.- Con un solo php que valide las secciones y luego solo hacer un include ha esta php, en la páginas que se deseen restringir.
"Mi duda no se si sea algo facil o dificil de entender pero te explico, tengo una pagina llamada articulos.php y a esta se le envia de una pagina antes un usuario por el metodo get ejemplo: ?usuario=1002"
Estos se evita usando POST.
O tal vez el problema no sea que se envíen por get, sino que se muestren las variables en la url, entonces hay que sobre escribir la url con la función $_URL_BASE()
Pero esto no es sencillo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas