Si si, je je, pero ahí queda la consulta. No digo que no sea raro, digo qué tal resultaría.
No sé, sería un poco recordar dos contraseñas no?
No sería más fácil sólo permitir loguearse X veces durante X tiempo?
lantiga escribió:No sabia que estuvieras haciéndote un CMS ; pero supongo que lo harás en XML por su facilidad en el traspaso de datos;Hey no tengo ni idea de la relación del XML con el CMS. De XML solo se hacer los sitemaps, disculpa mi palurdísmo! Me iluminas un poco? O bueno, mejor me veo tus videotutos! je je je.
lantiga escribió:En cuanto al login usuarios por que no haces una doble petición en un archivo html? por un lado una petición ajax para que al pulsar un botón te enseñe el formulario y por otro lado la peticion al servidor para que los datos se almacenen en la base de datos creo que es lo más logico. Haber si lego tengo tiempo y te pongo un ejemplo sencillo de como hacerloSería de agradecer ese ejemplo simple. Tengo decidido aplicarle AJAX, o cualquier otra cosa que le de un poco de dinamismo y evite la recarga de la página al formulario de registro y logeo.
lantiga escribió:solo una pregunta tonta has trasteado algo con Json? He visto que es más recomendable cuando hay que pasarle muchos datos a una solicitud ajax, te ahorras mucho peso en los archivos y sobrecargas menos el navegador .En principio no son muchos los datos a pasar, creo. Pero no, no he trasteado mucho con el Json. Al menos, no he sido consciente (aunque sin saberlo, fijo que lo he trasteado). Me lo anoto para leer sobre su uso.
<?php
// incluida en registro.php
function verificar_email($email)
{
// Verificamos que no hay más de una arroba y que las longitudes son normales
if (!ereg("^[^@]{1,64}@[^@]{1,255}$", $email))
{
return false;
}
$email_array = explode("@", $email);
$local_array = explode(".", $email_array[0]);
for ($i = 0; $i < sizeof($local_array); $i++)
{
if (!ereg("^(([A-Za-z0-9!#$%&'*+/=?^_`{|}~-][A-Za-z0-9!#$%&'*+/=?^_`{|}~\.-]{0,63})|(\"[^(\\|\")]{0,62}\"))$", $local_array[$i]))
{
return false;
}
}
// se revisa si el dominio es una IP. Si no, debe ser un nombre de dominio válido
if (!ereg("^\[?[0-9\.]+\]?$", $email_array[1]))
{
$domain_array = explode(".", $email_array[1]);
if (sizeof($domain_array) < 2)
{
return false; // No son suficientes partes para ser un dominio
}
for ($i = 0; $i < sizeof($domain_array); $i++)
{
if (!ereg("^(([A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])|([A-Za-z0-9]+))$", $domain_array[$i]))
{
return false;
}
}
}
return true;
}
;?>..................
.....................
if ( !empty($error) )
{
header("Refresh: 2; URL=formulario.php");
echo "<p>ERROR. Los datos introducidos no tienen un formato correcto.</p>";
die;
}
include_once('verificar_email.php');
if ( verificar_email($email)==false )
{
header("Refresh: 5; URL=formulario.php");
echo "<br /><p>ERROR. El Email $email no parece ser real.</p>";
die;
}
//Comprobamos que la password y password2 son iguales, sino, volvemos a registro.php
..........................
.........................[COLOR=#0000BB][FONT=monospace]
<?php
$usuario [/FONT][/COLOR][COLOR=#007700][FONT=monospace]= [/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]$_POST[/FONT][/COLOR][COLOR=#007700][FONT=monospace][[/FONT][/COLOR][COLOR=#DD0000][FONT=monospace]'usuario'[/FONT][/COLOR][COLOR=#007700][FONT=monospace]];
[/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]$correo [/FONT][/COLOR][COLOR=#007700][FONT=monospace]= [/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]$_POST[/FONT][/COLOR][COLOR=#007700][FONT=monospace][[/FONT][/COLOR][COLOR=#DD0000][FONT=monospace]'correo'[/FONT][/COLOR][COLOR=#007700][FONT=monospace]];
[/FONT][/COLOR][COLOR=#FF8000][FONT=monospace]//...
//<-- Tus rutinas para validar los datos, si están completos etc...
[/FONT][/COLOR][COLOR=#007700][FONT=monospace]if(empty([/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]$usuario[/FONT][/COLOR][COLOR=#007700][FONT=monospace])){
echo [/FONT][/COLOR][COLOR=#DD0000][FONT=monospace]"Debes poner algo como usuario"[/FONT][/COLOR][COLOR=#007700][FONT=monospace];
exit;
}
[/FONT][/COLOR][COLOR=#FF8000][FONT=monospace]//-->
[/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]$aleatorio [/FONT][/COLOR][COLOR=#007700][FONT=monospace]= [/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]uniqid[/FONT][/COLOR][COLOR=#007700][FONT=monospace](); [/FONT][/COLOR][COLOR=#FF8000][FONT=monospace]//Genera un id único para identificar la cuenta a traves del correo.
[/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]$contrasena [/FONT][/COLOR][COLOR=#007700][FONT=monospace]= [/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]rand[/FONT][/COLOR][COLOR=#007700][FONT=monospace]([/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]1999[/FONT][/COLOR][COLOR=#007700][FONT=monospace], [/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]9999[/FONT][/COLOR][COLOR=#007700][FONT=monospace]); [/FONT][/COLOR][COLOR=#FF8000][FONT=monospace]//Devuelve un número aleatorio entre los dos rangos. Lo usuaremos como
//Contraseña temporal.
[/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]$sql [/FONT][/COLOR][COLOR=#007700][FONT=monospace]= [/FONT][/COLOR][COLOR=#DD0000][FONT=monospace]"Insert Into tabla (usuario, contrasena, correo, codigo, activo) Values ('$usuario', '$contrasena', '$correo', '$aleatorio', 0)"[/FONT][/COLOR][COLOR=#007700][FONT=monospace];
[/FONT][/COLOR][COLOR=#FF8000][FONT=monospace]//Tus rutinas para insertar en la base de datos.
[/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]$mensaje [/FONT][/COLOR][COLOR=#007700][FONT=monospace]= [/FONT][/COLOR][COLOR=#DD0000][FONT=monospace]"Registro en tuweb.com\n\n"[/FONT][/COLOR][COLOR=#007700][FONT=monospace];
[/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]$mensaje [/FONT][/COLOR][COLOR=#007700][FONT=monospace].= [/FONT][/COLOR][COLOR=#DD0000][FONT=monospace]"Estos son tus datos de registro:\n"[/FONT][/COLOR][COLOR=#007700][FONT=monospace];
[/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]$mensaje [/FONT][/COLOR][COLOR=#007700][FONT=monospace].= [/FONT][/COLOR][COLOR=#DD0000][FONT=monospace]"Usuario: $usuario.\n"[/FONT][/COLOR][COLOR=#007700][FONT=monospace];
[/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]$mensaje [/FONT][/COLOR][COLOR=#007700][FONT=monospace].= [/FONT][/COLOR][COLOR=#DD0000][FONT=monospace]"Contraseña: $contrasena.\n\n"[/FONT][/COLOR][COLOR=#007700][FONT=monospace];
[/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]$mensaje [/FONT][/COLOR][COLOR=#007700][FONT=monospace].= [/FONT][/COLOR][COLOR=#DD0000][FONT=monospace]"Debes activar tu cuenta pulsando este enlace: http://www.tuweb.com/activacion.php?id=$aleatorio"[/FONT][/COLOR][COLOR=#007700][FONT=monospace];
[/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]$asunto [/FONT][/COLOR][COLOR=#007700][FONT=monospace]= [/FONT][/COLOR][COLOR=#DD0000][FONT=monospace]"Activación de tu cuenta en tuweb.com"[/FONT][/COLOR][COLOR=#007700][FONT=monospace];
if([/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]mail[/FONT][/COLOR][COLOR=#007700][FONT=monospace]([/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]$correo[/FONT][/COLOR][COLOR=#007700][FONT=monospace],[/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]$asunto[/FONT][/COLOR][COLOR=#007700][FONT=monospace],[/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]$mensaje[/FONT][/COLOR][COLOR=#007700][FONT=monospace])){
echo [/FONT][/COLOR][COLOR=#DD0000][FONT=monospace]"Se ha enviado un mensaje a tu correo electronico con el código de activación"[/FONT][/COLOR][COLOR=#007700][FONT=monospace];
}else{
echo [/FONT][/COLOR][COLOR=#DD0000][FONT=monospace]"Ha ocurrido un error y no se puede enviar el correo"[/FONT][/COLOR][COLOR=#007700][FONT=monospace];
}
[/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]?>
[/FONT][/COLOR]ALTER TABLE`usuarios` ADD `estado` ENUM( 'activo', 'inactivo' ) NOT NULL AFTER `salteada`