Re: Crear registro de usuarios hola buenas despues de buscar mucho he encontrado un tutorial en esta misma web peor me da algunos probelmas que no se como solucionarlos:
Se compone de 3 archivos: REGISTRAR.php:
<?php
session_start(); // Inicio de sessión
include("conect-bdd.php"); // conexion a la base de datos
function quitar($mensaje) {
$mensaje = str_replace("<","<",$mensaje);
$mensaje = str_replace(">",">",$mensaje);
$mensaje = str_replace("\'","'",$mensaje);
$mensaje = str_replace("\'",""",$mensaje);
$mensaje = str_replace("\\\\'","\;",$mensaje);
return $mensaje;
}
if(trim($_POST["nick"]) != "" && trim($_POST["email"]) != "") {
$sql = "SELECT id FROM usuarios WHERE nick='".quitar($_POST["nick"])."'";
$result = mysql_query($sql);
if($row = mysql_fetch_array($result)) {
echo 'Error, nick escogido por otro usuario <br> <a href="registrar.html?'. SID .'">Registro</a>';
} else {
$sql = "INSERT INTO usuarios (nick,password,nombre,email) VALUES (";
$sql .= "'".quitar($_POST["nick"])."'";
$sql .= ",md5('".quitar($_POST["password"])."')";
$sql .= ",'".quitar($_POST["nombre"])."'";
$sql .= ",'".quitar($_POST["email"])."'";
$sql .= ")";
mysql_query($sql);
echo 'Registro exitoso! <br> <a href="inicio.html?'. SID .'">Index</a>';
}
mysql_free_result($result);
} else {
echo 'Debe llenar como minimo los campos de email y password <br> <a href="registrar.html?'. SID .'">Registro</a>';
}
mysql_close();
?> INGRESAR.php
<?php
session_start(); // Inicio de sessión
include("conect-bdd.php"); // conexion a la base de datos
$sid = md5(SID);
$loginCorrecto = false;
$i = 1;
function quitar($mensaje) {
$mensaje = str_replace("<","<",$mensaje);
$mensaje = str_replace(">",">",$mensaje);
$mensaje = str_replace("\'","'",$mensaje);
$mensaje = str_replace('\"',""",$mensaje);
$mensaje = str_replace("\\\\","\",$mensaje);
return $mensaje;
}
if(trim($_POST["nick"]) != "" && trim($_POST["password"]) != "") {
$nickN = quitar($_POST["nick"]);
$passN = quitar($_POST["password"]);
$result = mysql_query("SELECT nick, identificador, password FROM usuarios WHERE nick='$nickN'");
$row = mysql_fetch_array($result);
if($row["nick"] == $nickN) {
if($row["password"] == md5($passN)) {
$nickN = quitar($_POST["nick"]);
$passN = quitar($_POST["password"]);
$result = mysql_query("SELECT nick, password FROM usuarios WHERE nick='$nickN'");
$row = mysql_fetch_array($result);
$I = settype($row["identificador"], "double");
if ($I == $i) {
$loginCorrecto = true;
mysql_free_result($result);
}
else {
$loginCorrecto = false;
mysql_free_result($result);
}
if($loginCorrecto) {
echo gettype($loginCorrecto);
?> <SCRIPT LANGUAGE="javascript">location.href ="inicio2.html?<? echo SID ?>";</SCRIPT> <?
}
else {
echo 'El sistema no lo ha identificado, solo los usuarios registrados tienen acceso a este area <br>
<a href="registrar.html?'. SID .'">registrate</a> <br>
<a href="inicio.html?'. SID .'">login</a>';
}
}
else {
echo 'Password incorrecto <br> <a href="inicio.html?">Login</a>';
}
}
else {
echo 'Usuario no existente en la base de datos <br> <a href="inicio.html'. SID .'">Login</a>';
}
}
else {
echo 'Debe especificar un nick y password <br> <a href="inicio.html?">Login</a>';
}
mysql_close();
?> LOG-OUT.php
//AQUI ESTA logout.php
<?php // Inicio de sessión
session_start();
include("conect-bdd.php")
// Cambiamos de la base de datos el valor aleatorio de la cookie por si acaso fue robada
$sql = "UPDATE usuarios SET
sid = '".md5(rand(0,time()))."',
identificador = '".md5(rand(0,time()))."',
ultima_visita = NOW()
Where
id = "'".$_SESSION['id']."'";
mysql_query($sql) or die (mysql_error());
//Destruimos las cookies.
setcookie("usNick","x",time()-3600);
setcookie("usPass","x",time()-3600);
setcookie("Acepta","x",time()-3600);
// Destruimos la sesión
session_destroy();
Los errores que me dan son los siguientes: Al ejecutar registrar.php me aparece esto:
Conexión con la base de datos conseguida.
Debe llenar como minimo los campos de email y password
Registro
--> le doy a registro y no me encuentra la url... Al ejecutar ingresar.php me aparece esto:
Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /home/www/termop.awardspace.com/ingresar.php:2) in /home/www/termop.awardspace.com/ingresar.php on line 3
Conexión con la base de datos conseguida.
Debe especificar un nick y password
Login
--> le doy a login y no me redirecciona a ningun sitio.... y por ultimo el log-out.php en el que me aparece esto:
Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING in /home/www/termop.awardspace.com/logout.php on line 13
Y tampoco se como solucionarlo :(
Si alguien me pudiera ayudar le estaria eternamente agradecido!
Última edición por B4l4; 21/10/2007 a las 20:02 |