com/programacion/php/hacer-login-de-usuarios-con-php-y-mysql/
Debemos de crear una tabla que vamos a utilizar en la base de datos MySQL.
MySQL:
1.
2.
3.
4.
5.
6.
7.
8.
9.
)
Ya tenemos la estructura de nuestra tabla de usuarios.
PHP:
1.
<?php session_start();
2.
3.
4.
5.
if (isset($_SESSION['k_username'])) {
6.
echo '<b>'.$_SESSION['k_username'].'</b>.';
7.
8.
}else{
9.
10.
<p><a href="registrar.php">Registrar</a></p>';
11.
}
12.
?>
HTML:
1.
2.
3.
<br />
4.
5.
<br />
6.
7.
</form>
Seguimos con el archivo validar_usuario.php el cual verificará los datos del archivo login.php
PHP:
1.
<?php session_start();
2.
3.
4.
5.
6.
7.
function quitar($mensaje)
8.
9.
$nopermitidos = array("'",'\\','<','>',"\"");
10.
11.
return $mensaje;
12.
}
13.
14.
15.
16.
17.
//$usuario = strtolower(quitar($HTTP_POST_VARS["usuario"]));
18.
//$password = $HTTP_POST_VARS["password"];
19.
20.
21.
22.
$password = $HTTP_POST_VARS["password"];
23.
24.
25.
if($row = mysql_fetch_array($result)){
27.
if($row["password"] == $password){
28.
29.
$_SESSION["k_username"] = $row['usuario'];
30.
31.
32.
33.
34.
35.
36.
37.
<SCRIPT LANGUAGE="javascript">
38.
location.href = "index.php";
39.
</SCRIPT>*/
40.
41.
}else{
42.
43.
44.
}else{
45.
46.
47.
mysql_free_result($result);
48.
}else{
49.
50.
51.
mysql_close();
52.
?>
El archivo registrar.php, ahí crearemos un usuario nuevo.
PHP:
1.
<?php session_start();
2.
3.
4.
5.
6.
7.
function formRegistro(){
8.
?>
9.
10.
11.
12.
14.
15.
16.
17.
18.
</form>
19.
<?php
20.
21.
22.
23.
if (isset($_POST["username"])) {
24.
$username = $_POST["username"];
25.
$password = $_POST["password"];
26.
$password2 = $_POST["password2"];
27.
$email = $_POST["email"];
28.
29.
if($username==NULL|$password==NULL|$password2==NULL|$email==NULL) {
30.
31.
formRegistro();
32.
}else{
33.
34.
if($password!=$password2) {
35.
36.
formRegistro();
37.
}else{
38.
39.
$username_exist = mysql_num_rows($checkuser);
41.
42.
43.
$email_exist = mysql_num_rows($checkemail);
44.
45.
if ($email_exist>0|$username_exist>0) {
46.
47.
formRegistro();
48.
}else{
49.
50.
VALUES (\''.$username.'\',\''.$password.'\',\''.$email.'\',\''.date("Y-m-d").'\')';
51.
52.
mysql_query($query) or die(mysql_error());
53.
echo 'El usuario '.$username.' ha sido registrado de manera satisfactoria.<br />';
54.
55.
?>
56.
57.
58.
59.
60.
</FORM>
61.
<?php
62.
63.
64.
65.
66.
}else{
67.
formRegistro();
68.
69.
?>
El sistema creado es sencillo para que sea fácil de entender, Y no olvides dejar tus
comentarios.
floppy.jpg
Actualización: debido a los problemas que hay al momento de hacer copy/paste se anexan los
archivos del ejemplo. Recuerda que es solo el principio, falta:
Encriptar las claves antes de enviarlas, hacer la conexión como función y todo lo que se te
ocurra o puedas aportar.
Actualización.
A los amigos que me han sobre las medidas de seguridad que debemos de procurar, algunas
son:
Y para los amigos que me han preguntado como podemos bloquear las paginas si no hace
login, les comento que yo tengo un sistema basado en niveles y que más adelante la publicaré,
mientras tanto podemos hacer una interpretación más ligera y sería algo más o menos asi:
id - autonumérico
pagina - varchar (en este campo vamos a ingresar las secciones o página donde necesitan hace
login para poder verlas)
usuario - texto largo (los nombres de los usuarios con autorización para ver esta pagina
separados por comas)
Vamos a crear una pagina con el nombre de funciones.php con el siguiente código:
PHP:
1.
<?php session_start();
2.
function conectar(){
3.
4.
5.
6.
7.
8.
function puede_ver($pagina=''){
9.
$usuario = strtoupper($_SESSION['k_username']);
10.
11.
if($row = mysql_fetch_array($result)){
12.
13.
14.
$array_usuarios=explode(',',$usuarios); // y los metemos pos la separación de la coma
15.
16.
17.
return true;
18.
19.
return false;
20.
21.
22.
23.
?>
Olvidandonos un poco de la página index.php vamos a crear nuestra primer página restringida
con el nombre visita_fotopex.php, con este método no solo puedes restringir el acceso a una
pagina, lo puedes hacer por secciones, por ejemplo para restringir a una página completa el
código de visita_fotopex.php seria así:
PHP:
1.
<?php session_start();
2.
// no olvidemos incluir nuestras funciones
3.
include("funciones.php");
4.
conectar();
5.
if (puede_ver('pagina')==false){
6.
die('<br /><br />No tiene permiso para esta área, consulte a <a
href="http://ayuda.fotopex.com">www.ayuda.fotopex.com</a><br /><br /><br />');
7.
8.
?>
PHP:
1.
<?php session_start();
2.
3.
include("funciones.php");
4.
conectar();
5.
if (puede_ver('seccion_a')){
6.
echo '<br /><br />Ahora puedes ver esta sección y sigue visitando <a
href="http://ayuda.fotopex.com">www.ayuda.fotopex.com</a><br /><br /><br />';
7.
8.
?>