Hola que tal programadores, tengo una duda de como hacer un script que genere un codigo aleatorio de 10 digitos y que este a su ves encripte el numero y genere un link de activacion al usuario que se registre en mi web.
A ver si me explico bien , he creado una pagina en flash la cual contiene un formulario de registro, enlazado a una base de datos mysql con php, todo el registro me funciona bien pero quisuera agregar un script que genere un link de activacion que el usuario tenga que activar para poder completar el registro. aqui le coloco el script que he hecho en flash, se llama registra.fla, tambien le coloco el registra.php, y el conexion.php.
diganme que codigo le tengo que agregar a los diferentes script?
registra.fla:
enviar = function ()
{
if (usu.text.length) //comprobamos que el nombre de usuario no este vacío
{
if (pass.text.length) //Comprobamos que la contraseña no este vacía
{
if (mail.text.length) //Comprobamos que la dirección de e-mail no este vacía
{
//Preparamos las variables que enviaremos al php
form_lv = new LoadVars();
form_lv.usuL = usu.text;
form_lv.passL = pass.text;
form_lv.mailL = mail.text;
form_lv.nombreL = nombre.text;
form_lv.ciudadL = ciudad.text;
form_lv.edadL = edad.text;
proces.text = "procesando datos...";
//Enviamos las variables a registrar.php
form_lv.sendAndLoad("http://localhost/prueba/registrar.php", form_lv, "POST");
//escribe URL real deregistrar.php
//Recibimos y manejamos las variables que vienen de registrar.php
form_lv.onLoad = function()
{
if (this.estatus == "ocupado")
{
proces.text = "";
usu.text = "";
gotoAndStop(20); //Alerta: Nick ocupado
}
if (this.estatus == "nomail") {
proces.text = "";
mail.text = "";
gotoAndStop(25); //Alerta: e-mail icorrecto
}
if (this.estatus == "ok") {
proces.text = "Registrado con exito!";
usuvar = usu.text;
mailvar = mail.text;
nombrevar = nombre.text;
ciudadvar = ciudad.text;
edadvar = edad.text;
usu.text = "";
mail.text = "";
nombre.text = "";
ciudad.text = "";
edad.text = "";
gotoAndPlay(35); //Ingreso exitoso
}
if (this.estatus != "ocupado" && this.estatus!= "nomail" && this.estatus!= "ok")
{
proces.text = "";
gotoAndStop(30); //Alerta: problemas con el servidor
}
};
}
else
//Alertas de campos vacíos
{
gotoAndStop(5); //campo mail vacío
}}
else
{
gotoAndStop(10); //campo contraseña vacío
}}
else
{
gotoAndStop(15); //campo nombre de usuario vacío
}
};
enviar_btn.onRelease = enviar;
stop();
::::::::::::::::::::::::::::
// este es el registrar.php..
<?php
include('conexion.php'); //conectamos con la base de datos
$link = Conectarse();
function quitar($mensaje) //elimina símbolos indeseados
{
$mensaje = str_replace("<","<",$mensaje);
$mensaje = str_replace(">",">",$mensaje);
$mensaje = str_replace("\'","'",$mensaje);
$mensaje = str_replace('\"',""",$mensaje);
$mensaje = str_replace("\\\\","\",$mensaje);
return $mensaje;
}
//comprobamos con esta función que la dirección de email escrita es correcta
function comprobar_email($email){
$mail_correcto = 0;
//Hacemos una primera comprobación
if ((strlen($email) >= 6) && (substr_count($email,"@") == 1) && (substr($email,0,1) != "@") &&
(substr($email,strlen($email)-1,1) != "@")){
if ((!strstr($email,"'")) && (!strstr($email,"\"")) && (!strstr($email,"\\")) && (!strstr($email,"\$")) &&
(!strstr($email," "))) {
//miro si tiene caracter .
if (substr_count($email,".")>= 1){
//obtengo la terminacion del dominio
$term_dom = substr(strrchr ($email, '.'),1);
//compruebo que la terminación del dominio sea correcta
if (strlen($term_dom)>1 && strlen($term_dom)<5 && (!strstr($term_dom,"@")) ){
//compruebo que lo de antes del dominio sea correcto
$antes_dom = substr($email,0,strlen($email) - strlen($term_dom) - 1);
$caracter_ult = substr($antes_dom,strlen($antes_dom)-1,1);
if ($caracter_ult != "@" && $caracter_ult != "."){
$mail_correcto = 1;
}}}}}
if ($mail_correcto)
return 1; //mail correcto
else
return 0; //mail incorrecto
}
$comp_email = quitar($HTTP_POST_VARS["mailL"]);
$i = comprobar_email($comp_email); //llamamos a la función
if ($i != 0) //si la dirección de email es correcta...
{
$sql = "SELECT id FROM usuarios WHERE nick='".quitar($HTTP_POST_VARS["usuL"])."'";
$result = mysql_query($sql);
if($row = mysql_fetch_array($result))
{
echo "&estatus=ocupado&"; //nick ocupado
}
else
{
//insertamos los datos en nuestra base de datos
$sql = "INSERT INTO usuarios (nick, password, email, nombre, ciudad, edad) VALUES (";
$sql .= "'".quitar($HTTP_POST_VARS["usuL"])."'";
$sql .= ",'".quitar($HTTP_POST_VARS["passL"])."'";
$sql .= ",'".quitar($HTTP_POST_VARS["mailL"])."'";
$sql .= ",'".quitar($HTTP_POST_VARS["nombreL"])."'";
$sql .= ",'".quitar($HTTP_POST_VARS["ciudadL"])."'";
$sql .= ",'".quitar($HTTP_POST_VARS["edadL"])."'";
$sql .= ")";
mysql_query($sql);
echo "&estatus=ok&"; //registro exitoso
}
mysql_free_result($result);
mysql_close();
}
else
{
echo "&estatus=nomail&"; //mail incorrecto
}
?>
::::::::::::::::::::::::::::
y este es el conexion.php
<? // Fichero con los datos de conexión a la BBDD
function Conectarse()
{
$db_host="localhost"; // Host al que conectar, habitualmente es el ‘localhost’
$db_nombre="usuarios"; // Nombre de la Base de Datos que se desea utilizar
$db_user="root"; // Nombre del usuario con permisos para acceder
$db_pass=""; // Contraseña de dicho usuario
// Ahora estamos realizando una conexión y la llamamos ‘$link’
$link=mysql_connect($db_host, $db_user, $db_pass) or die ("Error conectando a la base de datos.");
// Seleccionamos la base de datos que nos interesa
mysql_select_db($db_nombre ,$link) or die("Error seleccionando la base de datos.");
// Devolvemos $link porque nos hará falta más adelante, cuando queramos hacer consultas.
return $link;
}
?>
::::::::::::::::::::::::::::::::::
que me faltaria agregar?? porfavor ayudenme.. gracias de antemano..