[PHP]  Sitema de registro, y login de usauarios php+mysql
Demo: http://mybbdemos.tk/tutoHola que tal para inagurar este foro que me interesa bastante y como estoy desocupado les dejo este sensillo sistema d...

[Imagen: 65076281.jpg]
Demo:
Código:
http://mybbdemos.tk/tuto
Hola que tal para inagurar este foro que me interesa bastante y como estoy desocupado les dejo este sensillo sistema de registro y login de usuarios...
en este tuto la pagina no tendra estilo eso si, ustedes tienen que darle el estilo con css y html.
teniendo su servidor entran a sus paneles de control y crean una base de datos para guardar los registros de los usuarios + lo que quieran agreagarle a la pagina como sistemas de mensajeria o similares.
creada la base de datos recuerden guardar los datos para la conecxion... ... crean una tabla para que guarde el registro de los usuarios, la llamaremos users, creenla con 5 campos aunque solo 4 son inportanates el primero seria id, este campo deve ser creado como auto incrementable, luego el campo user, este es el que contiene los nombres de los usuarios, luego el campo pass, este es el campo que contiene las contraseñas, ahora el campo email, este claro esta no es para nada importante, pero siempre se pide email en los registros no?, finalmente el campo level, que este campo es para asignar acciones especiales a los usuarios como funciones administrativas o similares, si lo comparamos con mybb este capo representa los grupos de usarios, ok entonces tabla creada...

Ahora comensemos a escribir los archivos, en php para la pagina, primero creamos el archivo config.pho donde se configuraran los datos para el funcionamiento de la pagina como los datos de cookies y servidor mysql.

config.php
Código PHP:
<?php
// sistema de registro y login de usuarios by himura...
// configurado de las cookies para la autentificacion 
/* nombre de dominio pare las cookies ejemplo .google.com (dejar en blanco al trabajar en localhost) */
$dcok "";
//carpeta para las cookies es de donde se ejecutan los script (aca use una que se llama tuto 
$pcok "/tuto/";
/* configuracion de la conexxion a la base de datos mysql usaremos la extencion mysql improved.
Recuerde los datos de la creacion de la base de datos de su servidor mysql como el nombre del servidor
el usuario, el passwor y el nombre de su base de datos. */
// nombre del servidor mysql generalmente es localhost esepto que el servidor use uno externo
$dbserver="localhost";
// usuario para el servidor mysql se crea normalmente desde el panel del server o es el mismo del server
$dbuser="root";
// password para conectar al servidor mysql
$dbpasword="";
// nombre de la base de datos que estemos usando
$dbname="tuto";
// conectamos con el servidor mysql
$connect mysqli_connect($dbserver,$dbuser,$dbpasword);
// seleccionamos la base de datos
mysqli_select_db($connect,$dbname);
?>

listo ahora creamos el archivo registrar.php, en este archivo se hace el registro de usuarios.

registrar.php
Código PHP:
<?php
// incluimos el archivo de configuracion
include "config.php";
if(!
$_GET[action])
{
//creamos el formulario para registrar
$page="<form method=\"post\" action=\"registrar.php?action=do_reg\">
<b>Nombre de usuario:</b><br /> 
<input type=\"textbox\" name=\"user\"><br />
<b>Password:</b><br />
<input type=\"password\" name=\"pass\"><br />
<b>Email:</b><br />
<input type=\"textbox\" name=\"email\"><br />
<br />
<input type=\"submit\" value=\"registrar\">
</form>"
;
echo 
$page;
}
elseif(
$_GET[action]=="do_reg")
{
// consulta para guardar el usuario en la base de datos "INSERT INTO users" user corresponde al nombre de la tabla
mysqli_query($connect"INSERT INTO users (user,pass,email,level) VALUES ('$_POST[user]','$_POST[pass]','$_POST[email]','1')");
echo 
"usuario creado ir a <a href=\"index.php\">inicio</a>";
}
?>

Ahora escribimos el archivo index.php, que esta claro sera el indece de directorio por tanto la pagina que se mostrara al entrar a nuestra web, usando las cookies este archivo mostrara dos paginas una si esta logeado y otra si no lo esta.

Index.php
Código PHP:
<?php
// preguntamos usando las cookies si esta logeado o no
if((!$_COOKIE[id]) or ($_COOKIE[id]==""))
{
//si no esta logeado mostramos el formulario de login
$page="<b>Useted no esta registrado o no a inciado secion en este sitio.</b><br />
<a href=\"registrar.php\">Registrese</a> o Inicie secion abajo<br /><br />
<form method=\"post\" action=\"login.php\">
<b>Usuario:</b><br />
<input type=\"textbox\" name=\"user\"><br />
<b>Contraseña:</b><br />
<input type=\"password\" name=\"pass\"><br />
<br />
<input type=\"submit\" value=\"login\">
</form>"
;
echo 
$page;
}
else
{
//si esta logeado mostramos la pagina con los detalles para usario logeado aca mostre los datos del login
if($_COOKIE[level]>1)
{
$admin="Usted tiene privilegios administrativos en el sitio<br/ >";
}
$page="<b>Bienvenido, Usted esta registrado en este sitio.</b><br/>
Su id de usuario es 
{$_COOKIE[id]}.<br />
Su nombre de usuario es 
{$_COOKIE[user]}.<br />
{$admin}
<a href=\"login.php?action=logout\">Cerrar secion</a>"
;
echo 
$page;
}
?>

y finalmente el archivo login.php, con el cual no inisiara secion.

login.php
Código PHP:
<?php
//incluir la configuracion
include "config.php";
if(!
$_GET[action])
{
// consulatamos que los campos esten correctos
if( (!$_POST[user]) or (!$_POST[pass]) )
{
// si no estan correctos y alguno fue dejado en blanco mostramos un mensaje
echo "usuario o contraseña en blanco";
}
else
{
// al estar correctos los campos consultamos que el usario este registrado en la base de datos
$consulta=mysqli_query($connect"SELECT * FROM users WHERE user='$_POST[user]' AND pass='$_POST[pass]' ");
if(
$user mysqli_fetch_array($consulta))
{
// si esta registrado creamos las cookies para logearlo y lo devolvemos a index.php
/* primero va el nombre de la cookie, luego su valor, en segida el tiempo de vida de la cookie
luego el patch y el dominio de la cookie que se establecio en el archivo de configuracion*/
setcookie("user"$user['user'], time() + 86400$pcok$dcok); 
setcookie("id"$user['id'], time() + 86400$pcok$dcok); 
setcookie("level"$user['level'], time() + 86400$pcok$dcok);
Header("Location: index.php"); 
}
else
{
// si los valores no corresponden a los de la base de datos mostramos un mensaje
echo "usuario no existe o contraseña invalida";
}
}
}
if(
$_GET[action]=="logout")
{
/* al cerrar secion establecemos las cookies con un valor vacio por si el navegador no las borra
para que el navegador las borre ponemos con un time negativo. y lo devolvemos a index.php */
setcookie("user"""time() - 86400$pcok$dcok); 
setcookie("id"""time() - 86400$pcok$dcok); 
setcookie("level"""time() - 86400$pcok$dcok);
Header("Location: index.php"); 
}
?>

Bueno eso es todo no detalle mucho el proceso ya que cada archivo tiene comentarios en las linas importantes acerca de su funcionamiento.
[Imagen: 93910621.jpg]
[Imagen: 20635803.jpg]
[Imagen: 65076281.jpg]
[Imagen: 60835201.jpg]
jojojo con esto que estoy aprendiendo ahora se me hace muy facil entender.


ecepto por los
$_GET[action
$_POST[user]) or (!$_POST[pass]
$_GET[xxx]
$_POST[xxx]
cuando envias informacion a un archivo php usando un formulario, recuperas la informacion asi dependiendo del metodo usado para envir la info...
enviar mediante post
<form action="xxx.php" method="post">
como decirlo?? jejejeje yo tambien aprendo leendo en internet... este metodo se caracterisa porque no ves la info que envias, la recive el archivo php y la procesa... ejemplo
<input type="textbox" name="campo" />
entonces para recuperar la info en php
$_POST[campo]
ves tiene el mismo nombre que el campo del formulario...
si era texto nadamas, lo podemos mostrar en pantalla
echo $_POST[campo]; bueno con esto tambien puedes subir archivos...

el otro metodo de envio es get
<form action="xxx.php" method="get">
en este metodo la info que envias se puede ver en la url, portanto es por esta via que se envia la info, ejemplo
<input type="textbox" name="campo" />
al enviar la info la url queda asi
xxx.php?campo=valor
en el php recuperas la informacion con $_GET[campo]...
como podras imaginar al get enviar la info en la url puedes enviar info si tener que usar un formulario, lo que nos lleva a $_GET[action] (puede ser cualquer nombre) uso eso para hacer digamos "programacion modular"...
para evitar tener que escribir muchos archivos establesco una condicion if($_GET[action]=="xxx")
{
//escribo aca la pagina para action=xxx
}
a puedo escribir varias paginas distintas en un solo archivo
espero averme esplicado... no soy muy bueno para poner en palabras las cosas
sencillo pero es bueno.:thumbsup:
session_start() array $_SESSION Ok(?


ta bueno el tuto (? :p
gracias me sirvio arto espero que alguien pueda aclarar mi duda soy nueva en esto de programacion y quisiera saber si existe alguna forma que el usuario pueda por ejemplo modificar el email que registro y si tambien existe alguna forma que no me aparezcan estos textos "Notice: Use of undefined constant..."
pues
Código PHP:
<?php
include "config.php";
if(
$_COOKIE['id'])
{
// mostrar esto porque esta logueado
}
else
{
// mostrar esto porque no esta logueado
}
?>
eso...
A mi no me gusta usar las cookies para comprobar si el usuario está conectado o no porque las cookies se pueden editar (aunque si compruebas el valor de las cookies no debería pasar nada)