Hola:
Durante meses he estado buscando información sobre el registro y autentificación de usuarios en bases de datos, pero cada vez que ingreso los códigos algún error me aparece.
1. Tengo mi Site alojada en miarroba, y he creado la tabla en la base de datos con el siguiente código:
create table usuarios (
id int(10) not null auto_increment ,
nick varchar(20) not null ,
contrasena varchar(20) not null ,
email varchar(40) not null ,
key id(id)
) ;
2. El Código que utilizo en el formulario de registro.php es el siguiente:
<?
if($registrar) {
$host = "localhost" ; // Localhost
$user = "usuario" ; // El nombre del sitio web
$pass = "contraseña" ; // Tu contraseña
$db = "usuario" ; // password
$conectar = mysql_connect($host,$user,$pass) ;
mysql_select_db($conectar,$db) ;
$resp = mysql_query("select * from usuario where nick='$nick'") ;
$existe = mysql_num_rows($resp) ;
if($existe == "0") {
mysql_query("insert into usuarios (nick,contrasena,email) values ('$nick','$contrasena','$email') ;
echo "Has sido registrado con éxito. Haz click <a href=index.php>aquí</a> para ir a la página principal." ;
}
else {
echo "Este usuario ya está registrado. Haz click <a href=javascript:history.back()>aquí</a> para regresar.
mysql_close($conectar) ; }
}
else {
?>
<form method="post" action="registrar.php">
Nick: <input type="text" name="nick"><br>
Contraseña: <input type="password" name="contrasena"><br>
Email: <input type="text" name="email"><br><br>
<input type="submit" name="registrar" value="Registrar">
</form>
<?
}
?>
3. Finalmente el archivo donde tengo el codigo para ingresar (login.php) es el que sigue:
<?
if($entrar) {
$host = "localhost" ; // localhost
$user = "usuario" ; // El nombre del sitio web
$pass = "contraseña" ; // Tu contraseña
$db = "usuario" ; // password
$conectar = mysql_connect($host,$user,$pass) ;
mysql_select_db($conectar,$db) ;
$resp = mysql_query("select * from usuarios where nick='$nick' and contrasena='$contrasena'") ;
$existe = mysql_num_rows($resp) ;
if($existe == "0") { echo "Este usuario no existe en la base de datos" ; }
else {
// Se crean las cookies
setcookie("NiCk",$nick,time()+7776000) ;
setcookie("PaSs",$contrasena,time()+7776000) ; }
}
else {
?>
<form method="post" action="entrar.php">
Nick: <input type="text" name="nick"><br>
Contraseña: <input type="text" name="contrasena"><br><br>
<input type="submit" name="entrar" value="Entrar">
</form>
<?
}
?>
Cabe señalar que en las páginas protegidas pongo el siguiente código:
<?
if($NiCk) {
$host = "localhost" ; // localhost
$user = "usuario" ; // El nombre del sitio web
$pass = "contraseña" ; // Tu contraseña
$db = "usuario" ; // password
$conectar = mysql_connect($host,$user,$pass) ;
mysql_select_db($conectar,$db) ;
$resp = mysql_query("select * from usuarios where nick='$NiCk' and contrasena='$PaSs'" ;
$existe = mysql_num_rows($resp) ;
if($existe == "0") {
// Se destruyen las cookies
setcookie("NiCk","") ;
setcookie("PaSs","") ;
}
else {
$permitido = "permitido" ;
}
mysql_close($conectar) ;
}
if($permitido) {
?>
Aquí el contenido sólo para usuarios registrados.
<?
}
else {
?>
Aquí el mensaje para usuarios no registrados.
<?
}
?>
Bueno, con todo, no me resulta.... además, quisiera saber si el lugar donde hay que poner el usuario se debe ingresar de esta forma (usuario@123.33.33) o si solo se debe ingresar lo que está antes del arroba.
Yo sé que ustedes pueden ayudarme, son secos para esto, así que esperaré sus ayudas, desde ya muchas gracias.
Atte.
Rodrigo.