Hola!

Registrándote como bakuno podrás publicar, compartir y comunicarte en privado con otros bakuos :D

Regístrame ya!

ayuda con PHP

kbruriel

Bovino adolescente
Desde
13 Dic 2008
Mensajes
74
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">PASSWD:</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:
 
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
}



 
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...
 
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.
 
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
 
Como dicen los compañeros, tu problema se resuelve utilizando sesiones
 
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
 
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
 
Volver
Arriba