ayuda con PHP

kbruriel

Bovino adolescente
#1
Hola estoy experimentando con php y lo que quiero hacer es lo siguiente:

Quiero que los usuarios se registren, para poder ver el contenido de las demas paginas,
si no estan registrados no les permita ver el contenido. El codigo que estoy usando es el siguiente.
///////////////formulario///////////////////////////
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<meta name="author" content="kbruriel" />

<title>E-mailMarketing</title>
</head>

<body>

<h1>Autentificación PHP</h1>
<form action="wall.php" method="POST">
<table align="center" width="225" cellspacing="2" cellpadding="2" border="0">

<tr>
<td align="right">USER:</td>
<td><input type="Text" name="usuario" size="8" maxlength="50"></td>
</tr>
<tr>
<td align="right">PASSW:eek:</td>
<td><input type="password" name="contrasena" size="8" maxlength="50"></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="Submit" value="ENTRAR"></td>
</tr>
</table>
</form>

</body>
</html>
////////////////////////////////
<?php


include("sql_usuario.php");
//Ejecuto la sentencia
$usuario=$_POST['usuario'];
$clave=$_POST['contrasena'];
$rsx=sql_usuario($usuario,$clave);


?>
////////////////////////////////
<?php

function sql_usuario($usuario,$clave)
{
include("conex.php");
$conn=Conectarse();
$rs = mysql_query("SELECT * FROM editor WHERE nombre='$usuario' and clave='$clave'",$conn);
if (mysql_num_rows($rs)!=0){
//usuario y contraseña válidos
//defino una sesion y guardo datos
$row = mysql_fetch_array($rs);
session_start();
session_register("autentificado");
$_SESSION["usario"] =$row["usuario"] ;
header ("Location: menu.htm");
}else {
//si no existe le mando otra vez a la portada
header("Location: e-mailmarketing.htm?errorusuario=si");
}
mysql_close($conn);
mysql_free_result($rs);

}
return $rsx;
?>
//////////////////////////////////
bueno una vez que tengo los datos del usuario como puedo hacer para que en una pagina utilizar y permiti o no el acceso?:eolo:
 

indiiztar

Bovino maduro
#2
solo debes de comprobar mediante if que vengan logueado y dentro del if poner el contenido.

$variable= tu variable de sesion
if ($variable)
{
aqui pones lo que los usuarios que entren al sistema quieres que vean
}
else
{
lo que quieres que ven tus usuarios no registrados
}



 

860803

Bovino adolescente
#4
el uso de sesiones es lo mas adecuado para tu problema y no es muy complicado de hacer, simplemente declaras la session y las variables las puedes invocar cuando las necesites, como dice 9d2 googlear no nos quita mucho tiempo...
 

kbruriel

Bovino adolescente
#5
Bueno si utilizo la sesiones y ademas comparo nuevamente con la BD no hace lenta la carga de las paginas. Si busque un pero no me reconocia el codigo y me deja entrar libremente.
 

kirax

Bovino adicto
#6
debeis hacer uso de sesiones y aparte especificar los tipos de usuarios los cuales al ser diferentes tendran acceso a cierta parte de la navegacion
 

Duckds

Bovino maduro
#8
Bueno para hacer lo que quieres necesitas sesiones una vez que se ha logueado guardas los datos del usuario en las sesiones, asi evitas estar haciendo consultas de los datos del usuario y como dicen solo tienes que hacer un if en el que comparas si ya se logueo, yo lo haria de la siguiente forma:
Una vez que haces la consulta del usuario y la contraseña sean iguales
Código:
$NFilas = mysql_num_rows($resultado);
//OBTIENE LOS VALORES DE LA CONSULTA EN UN ARREGLO.
$linea = mysql_fetch_array($resultado);
 
if($NFilas==1){
session_start(); //INICIA SESION
session_cache_limiter('private'); //COLOCA EL CACHE DEL EXPLORADOR EN PRIVADO.
$_SESSION["id_usuario"]= $linea["id_usuario"]; //GUARDA VARIABLE DE SESION.
$_SESSION["tipo"]=$linea["tipo"]; //GUARDA VARIABLES DE SESION.
$_SESSION["nombre"]=$linea["nombre"]; //GUARDA VARIABLE DE SESION.
$_SESSION["id_sesion"]= session_id();//Guardo el ID de sesion.
header ("Location: admin/index.php"); //DIRECCIONA EL ENCABEZADO A LA PAGINA DE ERROR PRINCIPAL.
} else {
header("Location:badpass.php"); //DIRECCIONA EL ENCABEZADO A LA PAGINA DE ERROR DE LOGGEO.
}
una vez que guardas los datos del usuario antes de cada pagina que quieres restringir haces una consulta que si la sesion esta iniciada si es asi le muestras el contenido, si no esta iniciada lo mandas a otra indicandole que es una pagina restringida o algo asi

quedando de la siguiente manera:

Código:
<?php
          session_start();
      //Verifico que el ID de sesion generado sea el mismo que se almaceno en el log.php
      if($_SESSION["id_sesion"] !=session_id()) {
            header("Location: ../badaccess.php");
            exit();
      }
?>
Espero te ayude y a ver si puedes contestar mi duda
 

omega96

Bovino Milenario
#11
solo almacenas un valor en una variable de sesion con esto en todas las paginas simplemente pides este valor y si coincide con algo quiere decir que esta logeado de lo contrario lo regresar a la pagina de inicio de sesion
 
Arriba