Comunidad PHPeros

Lenguajes => PHP => Mensaje iniciado por: devesa en 03 de Junio de 2007, 23:01:22 pm

Título: Registro de Usuarios con MySQL
Publicado 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>
    &nbsp;</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">&nbsp; </td>
    </tr>
  </table>
  <p></p>
</form>

Ahora faltaria el conectar.php, que lo teneis que crear vosotros. ;)

Solo esto...

Hasta pronto!!
Título: Re: Registro de Usuarios con MySQL
Publicado por: G2K en 04 de Junio de 2007, 00:01:48 am
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
Título: Re: Registro de Usuarios con MySQL
Publicado por: naveda en 04 de Junio de 2007, 00:10:14 am
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.
Título: Re: Registro de Usuarios con MySQL
Publicado por: G2K en 04 de Junio de 2007, 00:21:32 am
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 ;)
Título: Re: Registro de Usuarios con MySQL
Publicado por: danielo en 04 de Junio de 2007, 00:31:19 am
qué hace esto??

Código: [Seleccionar]
or die(mysql_error()
Título: Re: Registro de Usuarios con MySQL
Publicado por: G2K en 04 de Junio de 2007, 00:37:43 am
qué hace esto??

Código: [Seleccionar]
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');
Título: Re: Registro de Usuarios con MySQL
Publicado por: danielo en 04 de Junio de 2007, 00:39:10 am
aha... bueno ya lo probaré. Gracias!
Título: Re: Registro de Usuarios con MySQL
Publicado por: G2K en 04 de Junio de 2007, 00:42:33 am
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');
Título: Re: Registro de Usuarios con MySQL
Publicado por: Txapu en 04 de Junio de 2007, 00:46:50 am
qué hace esto??

Código: [Seleccionar]
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');
Título: Re: Registro de Usuarios con MySQL
Publicado por: danielo en 04 de Junio de 2007, 00:59:48 am
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.
Título: Re: Registro de Usuarios con MySQL
Publicado por: pcmac en 05 de Julio de 2007, 11:58:21 am
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.
Título: Re: Registro de Usuarios con MySQL
Publicado por: mOrK en 05 de Julio de 2007, 12:35:22 pm
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
Título: Re: Registro de Usuarios con MySQL
Publicado por: naveda en 05 de Julio de 2007, 12:39:33 pm
Lo mismo digo... siempre estais renombrando las variables, algo totalmente innecesario y que muestra la poca experiencia en la programación.
Título: Re: Registro de Usuarios con MySQL
Publicado por: Dj-Jorge[in the mix]mixer en 19 de Julio de 2007, 06:08:02 am
Esto casi es una copia del script.
pero esta bueno...


saludos!
Título: Re: Registro de Usuarios con MySQL
Publicado por: Wold en 19 de Julio de 2007, 12:29:42 pm
qué hace esto??

Código: [Seleccionar]
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
Título: Re: Registro de Usuarios con MySQL
Publicado por: x.mara.x en 04 de Octubre de 2007, 02:47:30 am
No entiendo mucho pero esta bien .. buen aporte :) ahora una pregunta.. qeu se ignifca la [n] alante de $_POST ??
Título: Re: Registro de Usuarios con MySQL
Publicado por: G2K en 07 de Octubre de 2007, 23:38:44 pm
Diras detrás de POST... eso es que te estas refiriendo al campo llamado n del form ;)
Título: Re: Registro de Usuarios con MySQL
Publicado por: x.mara.x en 25 de Noviembre de 2007, 18:01:13 pm
amm ok .. siempre me e preugntado :D
Título: Re: Registro de Usuarios con MySQL
Publicado por: Joel en 17 de Febrero de 2008, 00:56:09 am
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..
Título: Re: Registro de Usuarios con MySQL
Publicado por: G2K en 17 de Febrero de 2008, 12:26:51 pm
Joel no se si te has dado cuenta pero el posta ya es viejo xD