Comunidad PHPeros
Lenguajes => PHP => Mensaje iniciado por: devesa en 03 de Junio de 2007, 23:01:22 pm
-
Buenas, he estado fusionando bastantes tutoriales que he encontrado por este Foro y me ha salido este Sistema de Usuarios con MySQL. Yo no me otorgo ningun credito ya que la mayoria del codigo ha sido creado por los usuarios de este Foro, yo solo lo he ordenado.
Aqui van los codigos, podeis postear modificaciones ;D
users.php (registro)
<html>
<head>
<link href="http://redsconexion.com/estiloz.css" rel="stylesheet" type="text/css" />
</head>
<body bgcolor="#FFFFFF">
<center>
<font color="#000000" size="1" face="Verdana"><b>
<?
include('conectar.php');
$cons = mysql_query("SELECT * FROM usuarios WHERE rol='0' ");
$numsss = mysql_num_rows($cons);
if($numsss >= "400") {
echo'
<font color="red" size="2">ERROR: Hay más de 400 Usuarios y este script está predefinido a unicamente 400 Usuarios.<br>
No se agregaran más a no ser que los administradores lo agreguen desde el panel.<br>
Perdone las molestias.</font>
';
} else {
if($_POST[enviar]) {
$nick = $_POST[n];
$email = $_POST[e];
$pass = md5($_POST[p]);
$fecha = date("d.m.Y , H:i:s");
$rol = "0";
if($email == "" or $nick == "" or $pass == "") {
echo"ERROR: Necesita Insetar todos los campos. <a href='users.php'>Volver atrás</a>";
exit;
}
$con = mysql_query("SELECT count(id) FROM usuarios WHERE nick='$nick' OR email='$email'") ;
if(mysql_result($con,0,0)) {
echo '<font face=tahoma size=2 color=#0000000>Tu nick/email ya ha sido registrado en nuestra base de datos. Haz click <a href="javascript:history.back()">aquí</a> para regresar.</font>' ;
exit;
}
else {
mysql_query("INSERT INTO usuarios (nick,rol,pass,email) VALUES ('$nick','$rol','$pass','$email')");
echo '<font face=tahoma size=2 color=#0000000>Se ha registrado perfectamente porfavor logueese en la Web con la password(contraseña) que ha puesto. <br> <a target="iframe" href="http://www.diabolic-jokers.com">Volver a la Web </a>
</font>' ;
}
} else {
?> </b> </font>
</center>
<form action='users.php' method='POST'>
<p align="left">
<font color="#000000" size="1" face="Verdana"><b> Nick:<br>
<input type="text" class="j" name="n">
<br>
Contraseña:<br>
<input type="password" class="j" name="p">
<br>
E-mail:<br>
<input type="text" class="j" name="e">
<br>
<br>
<br>
<input type="submit" name="enviar" class="j" value="Registrarme">
</b> </font>
<br>
</p>
</form>
<center>
<font color="#000000" size="1" face="Verdana"><b><?
}
}
?> </b></font>
</center>
</body>
</html>
login.php
<?php
include("conectar.php");
session_start();
// Conectar a la base de datos
mysql_connect ($host, $user, $pass);
mysql_select_db($dbname) or die('Cannot select database');
if ($_POST['username']) {
//Comprobacion del envio del nombre de usuario y password
$usuario= $_POST['username'];
$pass= md5("$_POST[password]");
if ($pass==NULL) {
echo "La password no fue enviada";
}else{
$query = mysql_query("SELECT nick,pass FROM usuarios WHERE nick = '$usuario'") or die(mysql_error());
$data = mysql_fetch_array($query);
if($data['pass'] != $pass) {
echo "Login incorrecto, vuelve a probarlo";
}else{
$query = mysql_query("SELECT nick,pass FROM usuarios WHERE nick = '$usuario'") or die(mysql_error());
$row = mysql_fetch_array($query);
$_SESSION["s_usuario"] = $row['usuario'];
echo "Has sido logueado correctamente. Bienvenido ".$usuario.".";
}
}
}
?>
<style type="text/css">
<!--
.style1 {color: #FFFFFF}
-->
</style>
<form action='login.php' method='POST'>
<table bordercolor="#FFFFFF" style='border:1px solid #FFFFFF;'>
<tr>
<td align='right'> <span class="style1">
<font color="#000000" face="Verdana" size="2">Nombre de usuario:</font></span> <font color="#FFFFFF">
<input type='text' size='15' maxlength='25' name='username'></font> </td>
</tr>
<tr>
<td align='right'> <span class="style1"><font face="Verdana" size="2">
<font color="#000000">Contraseña</font></font></span>:
<font color="#FFFFFF">
<input type='password' size='15' maxlength='25' name='password'></font> </td>
</tr>
<tr>
<td align='center'> <font color="#FFFFFF">
<input type="submit" value="Login"></font> </td>
</tr>
<tr>
<td align='center' height="22"> </td>
</tr>
</table>
<p></p>
</form>
Ahora faltaria el conectar.php, que lo teneis que crear vosotros. ;)
Solo esto...
Hasta pronto!!
-
Bueno el conectar ya esta en el login.php xD pero bueno...
No esta mal... pero bueno yo te animo a que con eso practiques y te crees uno como estoy haciendo yo, que tambien estoy asta creandome un foro propio... empezando desde 0 y ir avanzando...
¡¡Animos!!
Saludos
-
Comentando un poco tus palabras G2K me gustaría decirte unas cosillas :P
G2K, como idea, crear un foro esta muy bien pero no te recomiendo que uses uno creado por ti en una web con muchos usuarios porque no dará la talla. Creo que deberías utilizar uno mas trabajado, no digo que el tuyo no vaya a ser bueno o tenga fallos sino que no tendrá todas las caracteristicas que un foro como phpBB, SMF, vBulletin, etc... puede proporcionar.
Independientemente, me parece una idea estupenda crear un foro desde 0 porque trabajas un montón de aspectos del PHP.
-
Comentando un poco tus palabras G2K me gustaría decirte unas cosillas :P
G2K, como idea, crear un foro esta muy bien pero no te recomiendo que uses uno creado por ti en una web con muchos usuarios porque no dará la talla. Creo que deberías utilizar uno mas trabajado, no digo que el tuyo no vaya a ser bueno o tenga fallos sino que no tendrá todas las caracteristicas que un foro como phpBB, SMF, vBulletin, etc... puede proporcionar.
Independientemente, me parece una idea estupenda crear un foro desde 0 porque trabajas un montón de aspectos del PHP.
Si tienes razón... pero si en mi foro tampoco es que se utilice mucho... si la gente entra unicamente para preguntar o comentar un par de cosas... no me hace falta mucha cosa más... le metere 4 tonterias para que quede wapo... cosas que no tienen los que antes has mencionado y me gustaria que tubieran y se como hacerlo y bueno... pero muchas gracias por el consejo ;)
-
qué hace esto??
or die(mysql_error()
-
qué hace esto??
or die(mysql_error()
Pues no estoy muy seguro pero eso se emplea para cuando a habido un error en la conexión y la cosa deberia ser asi:
or die('No se a podido conectar');
-
aha... bueno ya lo probaré. Gracias!
-
aha... bueno ya lo probaré. Gracias!
No hay de que ;)
Te dejo aquí un ejemplo con la conexión a una base de datos:
mysql_connect (localhost, usuario, pass);
mysql_select_db(base_de_datos) or die('No se puede conectar');
Este codigo intenta conectar a la base de datos y si tiene algun error o no puede muestra el contenido de or die('AQUÍ EL MENSAJE A MOSTRAR');
-
qué hace esto??
or die(mysql_error()
Si hay un error por parte de mysql al ejecutar la sentencia sql, muestra el codigo y la descripcion del error:
or die(mysql_error());
Si quieres que te salga sólo un mensaje generico (en vez del msg procedente de mysql), puedes poner algo como:
or die('Error al ejecutar la sentencia');
-
ok ok, gracias, ya imaginaba que serviría para algo así. Yo hago servir algo parecido. Tengo un fichero PHP con las funciones para conectarse a la base de datos y para seleccionar la que quiero utilizar. Si se produce un error, ya sea en el conect (mysql_connect) o al seleccionarla (mysql_select_db), tengo puesto que me salga un echo con el mensaje de error correspondiente.
Y a este fichero lo llamo cuando hace falta con un "include" y de momento parece que funciona bien.
-
Hola:
gracias por este aporte de codigo fuente para el registro de usuarios.
es sencillo, facil de entender y muy practico para uso perosnal.
creo que debrias haber incluido tambien el codigo de creacion de la tabla, por ejmplo algo asi:
CREATE TABLE `usuario` (
`id` int(4) NOT NULL auto_increment,
`nick` varchar(40) NOT NULL default '',
`email` varchar(30) NOT NULL default '',
`pass` varchar(40) NOT NULL default '',
`fecha` varchar(20) NOT NULL default '',
`rol` int(4) NOT NULL default '',
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=0 ;
si alguien ve que esta correcto, por favor que lo comente o corrija en caso de que exista algun erros, ok?
saludos a todos los foreros y esperemos que todos resolvamos nuestras dudas.
-
if($email == "" or $nick == "" or $pass == "") {
=
if(empty($email) or empty($nick) or empty(pass)) {
Es bueno saber esa función...
Lo que no entiendo por nombras a $_POST[n] la variable $nick... cuando puedes y creo que es mejor poner directamente $_POST['n'], aunque sea largo...
Saludos
-
Lo mismo digo... siempre estais renombrando las variables, algo totalmente innecesario y que muestra la poca experiencia en la programación.
-
Esto casi es una copia del script.
pero esta bueno...
saludos!
-
qué hace esto??
or die(mysql_error()
Pues no estoy muy seguro pero eso se emplea para cuando a habido un error en la conexión y la cosa deberia ser asi:
or die('No se a podido conectar');
Esto muestra el error que ahi en la sql. por ejemplo si falta una tabla xD, esta bien el sistema de usuarios pero es muy sencillito
-
No entiendo mucho pero esta bien .. buen aporte :) ahora una pregunta.. qeu se ignifca la [n] alante de $_POST ??
-
Diras detrás de POST... eso es que te estas refiriendo al campo llamado n del form ;)
-
amm ok .. siempre me e preugntado :D
-
Si tienes razón... pero si en mi foro tampoco es que se utilice mucho... si la gente entra unicamente para preguntar o comentar un par de cosas... no me hace falta mucha cosa más... le metere 4 tonterias para que quede wapo... cosas que no tienen los que antes has mencionado y me gustaria que tubieran y se como hacerlo y bueno... pero muchas gracias por el consejo ;)
Podrias crear esos foros que tiene habbo.es esos foros de discucion que tienen en las homes, eso es facil..
-
Joel no se si te has dado cuenta pero el posta ya es viejo xD