Foros del Web » Programando para Internet » PHP »

Login PHP - Restringir

Estas en el tema de Login PHP - Restringir en el foro de PHP en Foros del Web. Bien, tengo un problemita con respecto a mi pagina web Hace poco q estoy aprendiendo... va, mas que aprendiendo... seria descubriendo lo que es "PHP", ...
  #1 (permalink)  
Antiguo 03/05/2010, 13:29
Avatar de djwall  
Fecha de Ingreso: abril-2010
Ubicación: Argentina
Mensajes: 61
Antigüedad: 14 años
Puntos: 0
Busqueda Login PHP - Restringir

Bien, tengo un problemita con respecto a mi pagina web

Hace poco q estoy aprendiendo... va, mas que aprendiendo... seria descubriendo lo que es "PHP", "MYSQL".

Me costo mucho conseguir un .rar con los archivos de registro para mi web... ya que probe tablas tras tablas pero no pude hacerlas funcionar, un error mio... o tal vez de el que las posteo.
En fin... logre poner un sistema de registro y login en mi web, pero el problema es que quisiera saber como hacer para q cuando el usuario quiera ingresar a una seccion de mi web... tenga q hacer LOGIN.

Ya que tranquilamente se puede copiar la direccion de determinada seccion y entrar sin q haga falta registrarse o hacer login.

Aqui les dejo los archivos de sistema reg/log.

TABLA SQL____________________________________

CREATE TABLE usuarios(
`id` int( 4 ) NOT NULL AUTO_INCREMENT ,
`nombre` text,
`apaterno` text,
`amaterno` text,
`login` varchar( 40 ) NOT NULL ,
`password` varchar( 80 ) NOT NULL ,
`email` text,
UNIQUE KEY ( id )
);

FORMULARIO HTML______________________________________


<html><body>
<h1>SectorWeb.net</h1>
<form action="crea_usuarios.php" method="POST">
Login(nick): <input type="text" name="login"><br>
Password: <input type="password" name="pass1"><br>
Repite Password: <input type="password" name="pass2"><br>
Nombre: <input type="text" name="nombre"><br>
Apellido Paterno: <input type="text" name="apaterno"><br>
Apellido Materno: <input type="text" name="amaterno"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit" name="Crear">
</form>
</body></html>

Crea Usuarios.php______________________________________ ________


<?
// modificacion de codigo Xombra (www.xombra.com) 21/03/2009 para sectorweb.net
include("config.php"); /*Traemos el archivo config*/
/*Recibimos las variables por el metodo POST*/
$login = htmlspecialchars(trim($_POST['login']));
$pass1 = trim($_POST['pass1']);
$pass2 = trim($_POST['pass2']);
$nombre= htmlspecialchars(trim($_POST['nombre']));
$apaterno= htmlspecialchars(trim($_POST['apaterno']));
$amaterno= htmlspecialchars(trim($_POST['amaterno']));
$email = htmlspecialchars(trim($_POST['email']));
/*Hacemos la consulta */
// $query="SELECT * FROM usuarios WHERE login='$login'"; //ANTES

$link=mysql_connect($server,$dbuser,$dbpass);
$query = sprintf("SELECT login FROM usuarios WHERE usuarios.login='%s'", // Ahora
mysql_real_escape_string($login));
$result=mysql_db_query($database,$query,$link);
if(mysql_num_rows($result)){
echo "El usuario ya existe en la BD";
} else {
mysql_free_result($result);
/* Ahora comprovamos que los dos pass coinciden */
if($pass1!=$pass2) {

echo "Los passwords deben coincidir";

echo 'Click <a href="form.html">aquÃ*</a> para volver al formulario';

} else {

/* Encriptamos "Ciframos" el password

// $pass1=crypt($pass2, "semilla"); // ANTES */

$pass1=sha1(md5($pass1)); // Ahora

/* $query="INSERT INTO usuarios (login, nombre, apaterno, amaterno, password, email) VALUES ('$login','$nombre','$apaterno', '$amaterno','$pass1','$email')"; */ // Antes

$query = sprintf("INSERT INTO usuarios (login, nombre, apaterno, amaterno, password, email) VALUES ('%s','%s','%s', '%s','%s','%s')", // Ahora
mysql_real_escape_string($login), mysql_real_escape_string($nombre),
mysql_real_escape_string($apaterno),mysql_real_esc ape_string($amaterno),
mysql_real_escape_string($pass1), mysql_real_escape_string($email));


$result=mysql_db_query($database,$query,$link);

if(mysql_affected_rows()){

echo "Usuario introducido correctamente";

} else {

echo "Error introduciendo el usuario";

} /* Cierre del else */

} /* Cierre del else que corresponde a if(mysql_affected_rows.....) */
} /* Cierre del else que corresponde a if(mysql_num_rows...) */
?>


Config.php________________________________________ ___________


<?
$server=""; /* Nuestro server mysql */
$database=""; /* Nuestra base de datos */
$dbpass=""; /*Nuestro password mysql */
$dbuser=""; /* Nuestro user mysql */
?>

Comprueba.php_____________________________________ ____________


<?php
session_start();
// modificacion de codigo Xombra (www.xombra.com) 21/03/2009 para sectorweb.net
include("config.php");
$login = htmlspecialchars(trim($_POST['login']));
$pass = sha1(md5(trim($_POST['pass']))); // encriptamos en MD5 para despues comprar (Modificado)
// $query="SELECT * FROM usuarios WHERE login='$login'"; Antes
$link=mysql_connect($server,$dbuser,$dbpass);

$query = sprintf("SELECT usuarios.login,
usuarios.nombre,
usuarios.apaterno,
usuarios.amaterno,
usuarios.email
FROM usuarios WHERE usuarios.login='%s' && usuarios.password = '%s'", // Ahora
mysql_real_escape_string($login),mysql_real_escape _string($pass));
$result=mysql_db_query($database,$query,$link);
// if(mysql_num_rows($result)==0){ // antes
if(mysql_num_rows($result)){ // nos devuelve 1 si encontro el usuario y el password

$array=mysql_fetch_array($result);
// if($array["password"]==crypt($pass,"semilla") ){ // Antes
/* Comprobamos que el password encriptado en la BD coincide con el password que nos han dado al encriptarlo. Recuerda usar semilla para encriptar los dos passwords. */
$_SESSION["login"]=$array["login"];
$_SESSION["nombre"]=$array["nombre"];
$_SESSION["apaterno"]=$array["apaterno"];
$_SESSION["amaterno"]=$array["amaterno"];
$_SESSION["email"]=$array["email"]; // Agrgado Nuevo
header("Location:user.php");
} else {
echo "Login o Password Incorrectos"; // Ahora
}

?>


Login.php_________________________________________ ______________


<?
session_start();
if(isset($SESSION)){
header("location:user.php"); /* Si ha iniciado la sesion, vamos a user.php */
} else {
/* Cerramos la parte de codigo PHP porque vamos a escribir bastante HTML y nos será mas cómodo así que metiendo echo's */
?>
<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>Identificaci&oacute;n </title>
</head>
<body>
<h1>SectorWeb.net</h1>
<h2>Identificaci&oacute;n </h2>
<form action="comprueba.php" method="POST" class="miform">
Login: <input type="text" name="login"><br>
Password: <input type="password" name="pass"><br><br>
<input type="submit" value="Entrar" class="boton">
</form>
</body></html>
<?
} /* Y cerramos el else */
?>


logout.php________________________________________ ______________


<?
session_start();
if(!isset($_SESSION["login"])){
header("location:login.php");
} else {
session_unset();
session_destroy();
echo "<h1>SectorWeb.net</h1>";
echo "Las variables de sesión han sido eliminadas, y la sesión se ha dado por finalizada correctamente da click <a href=\"login.php\">aqui para loguearte</a>";
}
?>


user.php__________________________________________ ______________



<?
session_start();
if(!isset($_SESSION["login"])){
header("location:login.php");
} else {
echo "<html><body>";
echo "<h1>SectorWeb.net</h1>";
echo "Bienvenido al Area de usurios: <strong>";
echo $_SESSION["nombre"]." ".$_SESSION["apaterno"]." ".$_SESSION["amaterno"]." ";
echo "</strong><br>Has entrado con el nick: <strong> ";
echo $_SESSION["login"];
echo "</strong><br>Para cerrar la sesión, pulsa: <a href='logout.php'>Aqui</a>";
echo "</body></html>".isset($_SESSION);
}
?>

y eso es todo!_____________________________________________ _________


ASI LO BAJE... obviamente luego edite lols titulos y esos pekeños detalles. Pero en base asi tal cual la tengo.



[URL=http://dc201.4shared.com/download/275431559/c4037f81/Nueva_carpeta__4_.rar?tsid=20100503-151156-bae98b4d'"]'http://dc201.4shared.com/download/275431559/c4037f81/Nueva_carpeta__4_.rar?tsid=20100503-151156-bae98b4d[/URL]


Desde ya... el o la que pueda ayudarme... LE AGRADECERE ENORMEMENTE.
Si no puedo encontrar la solucion creo que.. ya no voy a insistir mas Sinceramente me canse de googlear, y nada.

Saludos para todos!

WALTER DANIEL C.
  #2 (permalink)  
Antiguo 03/05/2010, 13:37
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Login PHP - Restringir

Hola:

No sé como restringir páginas html, pero si es php, simplemente puedes crear una variable de sesión y si no existe esa variaable redireccionar a la página del logueo...

<?
session_start();
if (!empty($_SESSION["usuario"]))
header("location: loguin.php");

...

Supongo que hubiese sido mejor postear en php...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 03/05/2010, 13:43
Avatar de C2am  
Fecha de Ingreso: enero-2009
Ubicación: Rosario, Argentina
Mensajes: 2.005
Antigüedad: 15 años, 2 meses
Puntos: 306
Respuesta: Login PHP - Restringir

En esta pagina :http://www.4shared.com/file/i8Z6pg4F...?cau2=403tNull
que tienes? me refiero al php, donde controlas que se haya logueado
Tienes un include de user.php?
__________________
El mundo nada puede contra un hombre que canta en la miseria.
-- Ernesto Sábato--
  #4 (permalink)  
Antiguo 03/05/2010, 14:43
Avatar de mark_ant0n  
Fecha de Ingreso: enero-2009
Ubicación: Comitan, Chiapas mx
Mensajes: 388
Antigüedad: 15 años, 3 meses
Puntos: 6
Respuesta: Login PHP - Restringir

Cita:
Iniciado por caricatos Ver Mensaje
Hola:

No sé como restringir páginas html, pero si es php, simplemente puedes crear una variable de sesión y si no existe esa variaable redireccionar a la página del logueo...

<?
session_start();
if (!empty($_SESSION["usuario"]))
header("location: loguin.php");
Me quedo con esta, es la mas sencilla, saludos
__________________
"Diseño de software a la medida"

http://www.sadhoc.com
  #5 (permalink)  
Antiguo 05/05/2010, 10:39
Avatar de djwall  
Fecha de Ingreso: abril-2010
Ubicación: Argentina
Mensajes: 61
Antigüedad: 14 años
Puntos: 0
Respuesta: Login PHP - Restringir

muchas gracias che... pude solucionarlo con ese codigo! muchas gracias de verdad! saludos q tengas un exelente dia.
  #6 (permalink)  
Antiguo 26/06/2011, 09:54
 
Fecha de Ingreso: junio-2011
Mensajes: 2
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: Login PHP - Restringir

donde pongo esta setencia

Etiquetas: log, login, reg, registro, restringir, sitemap
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:30.