Domingo 22 de Diciembre de 2024, 13:32
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
Programación Web y Scripting
»
PHP
(Moderador:
F_Tanori
) »
hacer login para entrar a una pagina
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: hacer login para entrar a una pagina (Leído 8005 veces)
andres69
Miembro MUY activo
Mensajes: 117
Nacionalidad:
hacer login para entrar a una pagina
«
en:
Lunes 29 de Junio de 2009, 20:25 »
0
tengo dos archivos php, el primero es para que los usurios se registren y el segundo para que hagan login. Tengo otros dos archivos php,quiero que esos dos archivos en php sean visibles solamente para los usuarios hagan login. Adjunto el codigo de registro y de login. ¿solo tengo que poner session_start() en los otros archivos para que funcione como quiero?
registros.php
Código: PHP
<?
// Configura los datos de tu cuenta
$dbhost
=
'namelocalhost'
;
$dbusername
=
'usuario'
;
$dbuserpass
=
'password'
;
$dbname
=
'base'
;
// Conexión a la base de datos
mysql_connect
(
$dbhost
,
$dbusername
,
$dbuserpass
)
;
mysql_select_db
(
$dbname
)
or
die
(
"Cannot select database"
)
;
// Preguntaremos si se han enviado ya las variables necesarias
if
(
isset
(
$_POST
[
"username"
]
)
)
{
$username
=
$_POST
[
"username"
]
;
$password
=
$_POST
[
"password"
]
;
$cpassword
=
$_POST
[
"cpassword"
]
;
$email
=
$_POST
[
"email"
]
;
// Hay campos en blanco
if
(
$username
==
NULL
|
$password
==
NULL
|
$cpassword
==
NULL
|
$email
==
NULL
)
{
echo
"<center>un campo está vacio.</center>"
;
}
else
{
// ¿Coinciden las contraseñas?
if
(
$password
!=
$cpassword
)
{
echo
"<center>Las contraseñas no coinciden</center>"
;
}
else
{
// Comprobamos si el nombre de usuario o la cuenta de correo ya existían
$checkuser
=
mysql_query
(
"SELECT username FROM users WHERE username='
$username
'"
)
;
$username_exist
=
mysql_num_rows
(
$checkuser
)
;
$checkemail
=
mysql_query
(
"SELECT email FROM users WHERE email='
$email
'"
)
;
$email_exist
=
mysql_num_rows
(
$checkemail
)
;
if
(
$email_exist
>
0
|
$username_exist
>
0
)
{
echo
"<center>EL nombre de usuario o la cuenta de correo estan ya en uso<center>"
;
}
else
{
//Todo parece correcto procedemos con la inserccion
$query
=
"INSERT INTO users (username, password, email) VALUES('
$username
','
$password
','
$email
')"
;
mysql_query
(
$query
)
or
die
(
mysql_error
(
)
)
;
echo
"<center>El usuario
$username
ha sido registrado de manera satisfactoria.</center>"
;
echo
"<center>Pulsa en login para loguearte.</center>"
;
}
}
}
}
?>
<head>
<!-- <link href="images/estilo.css" rel="stylesheet" type="text/css">-->
<body background="images/Fondo.png">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Registro</title>
</head>
<body>
<center>
<h1>Registro panel</h1>
<form action="registro.php" method="POST">
<table style="border:1px solid #000000;">
<tr>
<td align="right">
Nombre de usuario: <input type="text" size="15" maxlength="25" name="username">
</td>
</tr>
<tr>
<td align="right">
Password: <input type="password" size="15" maxlength="25" name="password">
</td>
</tr>
<tr>
<td align="right">
Repite Password: <input type="password" size="15" maxlength="25" name="cpassword">
</td>
</tr>
<tr>
<td align="right">
Email: <input type="text" size="15" maxlength="40" name="email">
</td>
</tr>
<tr>
<td align="center">
<input type="submit" value="Registrar">
</td>
</tr>
<tr>
<td align="center">
<center><font class="content">[ <a href="login.php">"Login"</a> ]</font></center>
</td>
</tr>
</table>
</form>
</center>
login.php
Código: PHP
<?php
// Configura los datos de tu cuenta
$dbhost
=
'mysql'
;
$dbusername
=
'andres'
;
$dbuserpass
=
'andres'
;
$dbname
=
'base;
session_start();
// Conectar a la base de datos
mysql_connect ($dbhost, $dbusername, $dbuserpass);
mysql_select_db($dbname) or die('
Cannot select database
');
if ($_POST['
username
']) {
//Comprobacion del envio del nombre de usuario y password
$username=$_POST['
username
'];
$password=$_POST['
password
'];
if ($password==NULL) {
echo "<center>La password no fue enviada<center>";
}else{
$query = mysql_query("SELECT username,password FROM users WHERE username = '
$username
'") or die(mysql_error());
$data = mysql_fetch_array($query);
if($data['
password
'] != $password) {
echo "<center>Login incorrecto<center>";
}else{
$query = mysql_query("SELECT username,password FROM users WHERE username = '
$username
'") or die(mysql_error());
$row = mysql_fetch_array($query);
$_SESSION["s_username"] = $row['
username
'];
header("Location: index.html");
}
}
}
?>
<html>
<link href="images/estilo.css" rel="stylesheet" type="text/css">
<body background="images/Fondo.png">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Login</title>
</head>
<body>
<center>
<h1>Login Usuario</h1>
<center>
<form action='login.php' method='POST'>
<table style='border:1px solid #000000;'>
<tr>
<td align='right'>
Nombre de usuario: <input type='text' size='15' maxlength='25' name='username'>
</td>
</tr>
<tr>
<td align='right'>
Password: <input type='password' size='15' maxlength='25' name='password'>
</td>
</tr>
<tr>
<td align='center'>
<input type="submit" value="Login">
<input type="reset" value="Borrar">
</td>
</tr>
<tr>
<td align='center'>
<center><font class="content">[ <a href="registro.php">"Regístrate"</a> ]</font></center>
</td>
</tr>
</table>
</form>
</html>
Tweet
chesbor
Miembro activo
Mensajes: 47
Re: hacer login para entrar a una pagina
«
Respuesta #1 en:
Martes 30 de Junio de 2009, 00:30 »
0
Lo que deberías poner al principio de los archivos que sólo querés que vean los usuarios logueados sería un
session_start();
if(isset($_SESSION["s_username"])) {
código de la web
} else {
echo "debe loguearse";
}
Tratá de entender todo el proceso de los códigos que descargás porque sino a la más mínima modificación te vas a complicar.
andres69
Miembro MUY activo
Mensajes: 117
Nacionalidad:
Re: hacer login para entrar a una pagina
«
Respuesta #2 en:
Martes 30 de Junio de 2009, 03:55 »
0
gracias chesbor lo hare y te comentare como me fue grcaissss!!!
andres69
Miembro MUY activo
Mensajes: 117
Nacionalidad:
Re: hacer login para entrar a una pagina
«
Respuesta #3 en:
Miércoles 1 de Julio de 2009, 01:25 »
0
ya tengo la solucion ha este problema, probe el que me dio chesbor, me funciono, pero tambien encpntre este otro:
login.php
Código: PHP
<?php
session_start
(
)
;
session_register
(
"Cuenta Abierta"
)
;
$cuenta
=
array
(
)
;
?>
archivo protegido1:
Código: PHP
<?php
session_start
(
)
;
if
(
!
session_is_registered
(
"Cuenta Abierta"
)
)
die
(
"<br>n<br>n<br>n<br>n<br>n<br>n<center>n"
.
"<h1>Para entrar correctamente, debes de hacerlo por <font color='red'>"
.
"LOGIN</font></h1>n</center>"
)
;
?>
archivo protegido2:
Código: PHP
<?php
session_start
(
)
;
if
(
!
session_is_registered
(
"Cuenta Abierta"
)
)
die
(
"<br>n<br>n<br>n<br>n<br>n<br>n<center>n"
.
"<h1>Para entrar correctamente, debes de hacerlo por <font color='red'>"
.
"LOGIN</font></h1>n</center>"
)
;
?>
salir.php:
Código: PHP
<?php
session_start
(
)
;
session_destroy
(
)
;
$parametros_cookies
=
session_get_cookie_params
(
)
;
setcookie
(
session_name
(
)
,
0
,
1
,
$parametros_cookies
[
"path"
]
)
;
?>
los dos ejemplos sirver, el que puse aqui y el que me ayudo chesbor.
Gracias chesbor!!!!! por tu ayuda.
gpchip
Nuevo Miembro
Mensajes: 5
Re: hacer login para entrar a una pagina
«
Respuesta #4 en:
Miércoles 29 de Julio de 2009, 20:08 »
0
Hola que tal, soy nuevo en la comunidad y en esto de la programación y tengo una duda.
Quiero probar el sistema de registro, tal y como lo has dejado expuesto, pero me gustaría saber, si serias tan amable de poner la estructura de la Base de datos. Mis conocimientos de Mysql, no son muy altos y no me aclaro a la hora de crearla. Si me dejaras el archivo sql para importarla a mi BD te lo agradecería.
Muchas gracias
andres69
Miembro MUY activo
Mensajes: 117
Nacionalidad:
Re: hacer login para entrar a una pagina
«
Respuesta #5 en:
Jueves 30 de Julio de 2009, 01:25 »
0
lo siento amigos este post lo midifique
«
última modificación: Domingo 2 de Agosto de 2009, 00:34 por andres69
»
gpchip
Nuevo Miembro
Mensajes: 5
Re: hacer login para entrar a una pagina
«
Respuesta #6 en:
Jueves 30 de Julio de 2009, 09:52 »
0
Muchas Gracias andres69, mas tarde volveré a probar, porque ahora no rula el link
gpchip
Nuevo Miembro
Mensajes: 5
Re: hacer login para entrar a una pagina
«
Respuesta #7 en:
Viernes 31 de Julio de 2009, 10:17 »
0
Sigue sin funcionar el enlace, haber si lo puedes arreglar. Gracias
andres69
Miembro MUY activo
Mensajes: 117
Nacionalidad:
Re: hacer login para entrar a una pagina
«
Respuesta #8 en:
Viernes 31 de Julio de 2009, 19:25 »
0
mmmmmmm
mejar dame un par de dias y lo subo los archivos, lo que pasa es que ahora ando un poco ocupado, pero te repito dame un par de dias y lo subo
gpchip
Nuevo Miembro
Mensajes: 5
Re: hacer login para entrar a una pagina
«
Respuesta #9 en:
Sábado 1 de Agosto de 2009, 12:08 »
0
Ok tranquilo, lo primero son tus obligaciones. Un saludo
andres69
Miembro MUY activo
Mensajes: 117
Nacionalidad:
Re: hacer login para entrar a una pagina
«
Respuesta #10 en:
Domingo 2 de Agosto de 2009, 00:30 »
0
vamos a necesitar dos archivos php los ciales son: registro.php y login.php ademas de una tabla.
registro.php
Código: PHP
<?
// Configura los datos de tu cuenta
$dbhost
=
'mysql5.;
$dbusername='
a853
;
$dbuserpass
=
'and'
;
$dbname
=
'a85'
;
// Conexión a la base de datos
mysql_connect
(
$dbhost
,
$dbusername
,
$dbuserpass
)
;
mysql_select_db
(
$dbname
)
or
die
(
"Cannot select database"
)
;
// Preguntaremos si se han enviado ya las variables necesarias
if
(
isset
(
$_POST
[
"username"
]
)
)
{
$username
=
$_POST
[
"username"
]
;
$password
=
$_POST
[
"password"
]
;
$cpassword
=
$_POST
[
"cpassword"
]
;
$email
=
$_POST
[
"email"
]
;
// Hay campos en blanco
if
(
$username
==
NULL
|
$password
==
NULL
|
$cpassword
==
NULL
|
$email
==
NULL
)
{
echo
"<center>un campo está vacio.</center>"
;
}
else
{
// ¿Coinciden las contraseñas?
if
(
$password
!=
$cpassword
)
{
echo
"<center>Las contraseñas no coinciden</center>"
;
}
else
{
// Comprobamos si el nombre de usuario o la cuenta de correo ya existían
$checkuser
=
mysql_query
(
"SELECT username FROM users WHERE username='
$username
'"
)
;
$username_exist
=
mysql_num_rows
(
$checkuser
)
;
$checkemail
=
mysql_query
(
"SELECT email FROM users WHERE email='
$email
'"
)
;
$email_exist
=
mysql_num_rows
(
$checkemail
)
;
if
(
$email_exist
>
0
|
$username_exist
>
0
)
{
echo
"<center>EL nombre de usuario o la cuenta de correo estan ya en uso<center>"
;
}
else
{
//Todo parece correcto procedemos con la inserccion
$query
=
"INSERT INTO users (username, password, email) VALUES('
$username
','
$password
','
$email
')"
;
mysql_query
(
$query
)
or
die
(
mysql_error
(
)
)
;
echo
"<center>El usuario
$username
ha sido registrado de manera satisfactoria.</center>"
;
echo
"<center>Pulsa en login para loguearte.</center>"
;
}
}
}
}
?>
<head>
<!-- <link href="images/estilo.css" rel="stylesheet" type="text/css">-->
<body background="images/Fondo.png">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Registro</title>
</head>
<body>
<center>
<h1>Registro panel</h1>
<form action="registro.php" method="POST">
<table style="border:1px solid #000000;">
<tr>
<td align="right">
Nombre de usuario: <input type="text" size="15" maxlength="25" name="username">
</td>
</tr>
<tr>
<td align="right">
Password: <input type="password" size="15" maxlength="25" name="password">
</td>
</tr>
<tr>
<td align="right">
Repite Password: <input type="password" size="15" maxlength="25" name="cpassword">
</td>
</tr>
<tr>
<td align="right">
Email: <input type="text" size="15" maxlength="40" name="email">
</td>
</tr>
<tr>
<td align="center">
<input type="submit" value="Registrar">
</td>
</tr>
<tr>
<td align="center">
<center><font class="content">[ <a href="login.php">"Login"</a> ]</font></center>
</td>
</tr>
</table>
</form>
</center>
login.php
Código: PHP
<?php
// Configura los datos de tu cuenta
$dbhost
=
'mysql5.;
$dbusername='
a853s
';
$dbuserpass='
584
';
$dbname='
a8
';
session_start();
// Conectar a la base de datos
mysql_connect ($dbhost, $dbusername, $dbuserpass);
mysql_select_db($dbname) or die('
Error al intentar conectarse con la BD
');
if ($_POST['
username
']) {
//Comprobacion del envio del nombre de usuario y password
$username=$_POST['
username
'];
$password=$_POST['
password
'];
if ($password==NULL) {
echo "<center>La password no fue enviada<center>";
}else{
$query = mysql_query("SELECT username,password FROM users WHERE username = '
$username
'") or die(mysql_error());
$data = mysql_fetch_array($query);
if($data['
password
'] != $password) {
echo "<center>Login incorrecto<center>";
}else{
$query = mysql_query("SELECT username,password FROM users WHERE username = '
$username
'") or die(mysql_error());
$row = mysql_fetch_array($query);
$_SESSION["s_username"] = $row['
username
'];
header("Location: descargar.html");
}
}
}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Login</title>
<link href="styles.css" rel="stylesheet" type="text/css" />
</head>
<body>
<center>
<h1>Login Usuario</h1>
<center>
<form action='login.php' method='POST'>
<table style='border:1px solid #000000;'>
<tr>
<td align='right'>
Nombre de usuario: <input type='text' size='15' maxlength='25' name='username'>
</td>
</tr>
<tr>
<td align='right'>
Password: <input type='password' size='15' maxlength='25' name='password'>
</td>
</tr>
<tr>
<td align='center'>
<input type="submit" value="Login">
<input type="reset" value="Borrar">
</td>
</tr>
<tr>
<td align='center'>
<center><font class="content">[ <a href="registro.php">"Regístrate"</a> ]</font></center>
</td>
</tr>
</table>
</form>
</body>
</html>
tabla
Código: SQL
CREATE
TABLE
`users`
(
`id`
INT
(
11
)
NOT
NULL
AUTO_INCREMENT
,
`username`
VARCHAR
(
30
)
NOT
NULL
,
`password`
VARCHAR
(
20
)
NOT
NULL
,
`email`
VARCHAR
(
40
)
NOT
NULL
,
PRIMARY
KEY
(
`id`
)
)
ENGINE
=
MyISAM
DEFAULT
CHARSET
=
latin1
AUTO_INCREMENT
=
2
;
Espero que este ejempo te quede claro y si no pues dime y te ayudo.
Suerte!!!
gpchip
Nuevo Miembro
Mensajes: 5
Re: hacer login para entrar a una pagina
«
Respuesta #11 en:
Lunes 3 de Agosto de 2009, 16:12 »
0
Ok, muchas gracias, me ha servido, solo me faltaba la estructura de la tabla, pero gracias por dejarlo todo bien claro, seguro que ha alguien mas le vendrá de maravilla. Lo dicho Gracias
andres69
Miembro MUY activo
Mensajes: 117
Nacionalidad:
Re: hacer login para entrar a una pagina
«
Respuesta #12 en:
Martes 4 de Agosto de 2009, 20:55 »
0
de nada gpchip
carloslon19
Nuevo Miembro
Mensajes: 5
funciona muy bien
«
Respuesta #13 en:
Jueves 10 de Septiembre de 2009, 07:18 »
0
muchas gracias por estos aportes, pero que tal si lo mejoramos adicionandole niveles de acceso
yo estoy iniciando en esto del php pero quisiera proponer el desarrollo de toda una aplicacion para poder aprender bien a realizar todo y que ojala se presentenuevos casos
andres69
Miembro MUY activo
Mensajes: 117
Nacionalidad:
Re: hacer login para entrar a una pagina
«
Respuesta #14 en:
Jueves 10 de Septiembre de 2009, 07:43 »
0
carloslon yo tengo algo similar a lo que pides pero es en Visual BAsic y pues aviame si puedes cuando termines tu trabajo con php para checarlo
Saludos!
carloslon19
Nuevo Miembro
Mensajes: 5
Re: hacer login para entrar a una pagina
«
Respuesta #15 en:
Jueves 10 de Septiembre de 2009, 18:04 »
0
muchas gracias, pero quiero aprender php, y no mezclarlo con otros
como hago para mandarte un enlace a un programa que tiene niveles y administrador de usuarios, por que he respondido a este y me rechaza los enlaces a otra pagina
gracias y hasta pronto
andres69
Miembro MUY activo
Mensajes: 117
Nacionalidad:
Re: hacer login para entrar a una pagina
«
Respuesta #16 en:
Viernes 11 de Septiembre de 2009, 21:14 »
0
OK, entiendo.
Pues no puedes por que no tienes los permisos para hacer eso.
Me lo puedes enviar por MP o a mi correo, O puedes ver en mis datos aun lado de post para que me lo envies por correo
OK
CUidese!
carloslon19
Nuevo Miembro
Mensajes: 5
Re: hacer login para entrar a una pagina
«
Respuesta #17 en:
Jueves 17 de Septiembre de 2009, 00:12 »
0
Hola compañero,
te llego el link a el sistema de seguridad que hablamos.
se podria publicar aqui?
andres69
Miembro MUY activo
Mensajes: 117
Nacionalidad:
Re: hacer login para entrar a una pagina
«
Respuesta #18 en:
Jueves 17 de Septiembre de 2009, 02:55 »
0
si me lego , gracias
y claro que se puede, pero necesitas permisos, necesitas mas post que agregar para tener permisos
me parece que puedes sububir archivos y tambien links
dejame checar el ejemplo que me pasaste y te cometo que tal
Saludos y que estes bien!
zeuslife
Nuevo Miembro
Mensajes: 21
Nacionalidad:
Re: hacer login para entrar a una pagina
«
Respuesta #19 en:
Martes 29 de Septiembre de 2009, 16:30 »
0
Mmmm.... yo solo digo, que ahora mismo ese código es muy vulnerable, tanto a ataques SSX como a ataques SQL... andres69, revisalos porque son fallos de seguridad graves. Un Saludo!
carloslon19
Nuevo Miembro
Mensajes: 5
Re: hacer login para entrar a una pagina
«
Respuesta #20 en:
Martes 29 de Septiembre de 2009, 16:56 »
0
donde encontrar un sistema que nos de seguridad asi toque pagar algo,
este tipo de foros deben ser aprovechados para generar soluciones completas y seguras para que realmente los sistemas avancen, si siempre se dan cosas medias vamos a encontrar problemas por todos lodos, en esta epoca deberian haber soluciones a muchisimos problemas si todos dieramos todo por poco o nada
«
última modificación: Martes 29 de Septiembre de 2009, 17:10 por carloslon19
»
zeuslife
Nuevo Miembro
Mensajes: 21
Nacionalidad:
Re: hacer login para entrar a una pagina
«
Respuesta #21 en:
Martes 29 de Septiembre de 2009, 17:05 »
0
No hace falta pagar nada, en principio, a no ser que tu web sea odiada por medio mundo, y muchos hackers se pongan a hackearla, con unos simples filtros, y a lo mejor algun que otro captcha, bastaría. Yo uso una función parecida a esta (con la que limpio todas las variables:
[php:1e22mx1z]
function
clear
(
$var
)
{
$var
=
trim
(
$var
)
;
// Eliminamos Espacion en Blanco
$var
=
htmlspecialchars
(
$var
)
;
// Evitamos Tags Html
$var
=
stripslashes
(
$var
)
;
// Eliminanos los slashes (/)
$var
=
mysql_escape_string
(
$var
)
;
//Eliminamos códigos sql
return
$var
;
}
[/php:1e22mx1z]
Y luego, un sistema para tener un máximo de logins incorrectos (para evitar fuerza bruta) etc, etc.
Un Saludo!
andres69
Miembro MUY activo
Mensajes: 117
Nacionalidad:
Re: hacer login para entrar a una pagina
«
Respuesta #22 en:
Martes 29 de Septiembre de 2009, 21:05 »
0
Aqui les dejo otro ejemplo de login, gracias a caloslon19 el fue el que me dio el codigo
El mensaje contiene
1 archivo adjunto
. Debes
ingresar
o
registrarte
para poder verlo y descargarlo.
andres69
Miembro MUY activo
Mensajes: 117
Nacionalidad:
Re: hacer login para entrar a una pagina
«
Respuesta #23 en:
Martes 29 de Septiembre de 2009, 22:25 »
0
SI LO PEROBE LO PUEDES VER CORRER AQUI:
http://cedillo.net16.net/Login%20System ... 0/main.php
carloslon19
Nuevo Miembro
Mensajes: 5
Re: hacer login para entrar a una pagina
«
Respuesta #24 en:
Miércoles 30 de Septiembre de 2009, 00:05 »
0
yo llegue a lo mismo pero no pude ver como restringe el acceso a ciertas paginas
y lo que quisiera es poder modificarlo para que pueda restringir a los usuarios a ciertas paginas dentro del sitio, alli se puede dar acceso por niveles, entonces crear en los datos del usuario un campo de paginas a las cuales tedria acceso y al resto del sitio no, pero realmente me queda muy grande aun
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Programación Web y Scripting
»
PHP
(Moderador:
F_Tanori
) »
hacer login para entrar a una pagina