
14/06/2010, 12:00
|
| | Fecha de Ingreso: mayo-2010 Ubicación: Argentina
Mensajes: 11
Antigüedad: 14 años, 10 meses Puntos: 0 | |
[ayuda] necesito un codigo Bueno como dise el titulo necesito un codigo,yo como nose mucho de php todavia quisiera saver si existe una forma en que
un usuario se registra y los valores se guardan en la db en "account2" y que luego despues de que le envie el email de activacion y entren a ese link los valores que estan en "account2" del mismo usuario que se registro se eliminen y pasen a "account"
Porfavor lo necesito yo tengo todo el mecanismo de activacion de email andando de "joranu" solo necesito eso
codigo reg.php Código PHP: <?php
session_start();
//datos para establecer la conexion con la base de mysql.
$conexion=mysql_connect('','','')or die ('Ha fallado la conexión: '.mysql_error());
mysql_select_db('')or die ('Error al seleccionar la Base de Datos: '.mysql_error());
//añadimos la funcion que se encargara de generar un numero aleatorio
function genera_random($longitud){
$exp_reg="[^A-Z0-9]";
return substr(eregi_replace($exp_reg, "", md5(rand())) .
eregi_replace($exp_reg, "", md5(rand())) .
eregi_replace($exp_reg, "", md5(rand())),
0, $longitud);
}
// verificamos si se han enviado ya las variables necesarias, las que tenemos en nuestro form cambialo, como sea el tuyo.
if(ereg("^([a-zA-Z0-9_-])*$", $_POST['account']) && ereg("^([a-zA-Z0-9_-])*$", $_POST['password']) && ereg("^([a-zA-Z0-9_-])*$", $_POST['password2']) && ereg ("^([a-zA-Z0-9_-])*$", $_POST['question']) && ereg ("^([a-zA-Z0-9_-])*$", $_POST['answer']))
//termina aca empieza otro
if (isset($_POST["account"])) {
$account = $_POST["account"];
$password = $_POST["password"];
$password2 = $_POST["password2"];
$email = $_POST["email"];
$question = $_POST["question"];
$answer = $_POST["answer"];
// Hay campos en blanco
if($account==NULL|$password==NULL|$password2==NULL|$email==NULL|$question==NULL|$answer==NULL) {
echo "un campo está vacio.";
formRegistro();
}else{
// ¿Coinciden las contraseñas?
if($password!=$password2) {
echo "Las contraseñas no coinciden";
}else{
// Comprobamos si el nombre de usuario o la cuenta de correo ya existían
$checkuser = mysql_query("SELECT login FROM accounts WHERE login='$account'");
$username_exist = mysql_num_rows($checkuser);
$checkemail = mysql_query("SELECT email FROM accounts WHERE email='$email'");
$email_exist = mysql_num_rows($checkemail);
if ($email_exist>0) {
echo "La cuenta de correo estan ya en uso";
}else{
if ($username_exist>0) {
echo "El nombre de usuario esta ya en uso";
}else{
//agregamos la variable $activate que es un numero aleatorio de
//20 digitos crado con la funcion genera_random de mas arriba
$activate = genera_random(20);
//aqui es donde insertamos los nuevos valosres en la BD activate y el valor 1 que es desactivado
$query = 'INSERT INTO accounts (login, password, email, question, answer, fecha, activate, estado)
VALUES (\''.$_POST['account'].'\',\''.base64_encode(pack('H*', sha1($_POST['password']))).'\',\''.$_POST['email'].'\',\''.$_POST['question'].'\',\''.$_POST['answer'].'\',\''.date("Y-m-d").'\',\''.$activate.'\', 1)';
mysql_query($query) or die(mysql_error());
echo "<table width=70%><tr bgcolor= #61e877 class= estilo30><div align=center>";
echo 'Ha sido registrado en Cevit como: <b>'.$_POST['account'].' </b>de manera satisfactoria.<br />';
echo ' Gracias. Le enviaremos ahora un email<br />';
echo 'para activar su cuenta, al correo que nos facilito.<br />';
echo "</div></tr>";
echo "</table>";
$query = "SELECT * FROM accounts WHERE login='$account'";
$result = mysql_query($query , $conexion) or die ( mysql_error() );
$row = mysql_fetch_array($result);
$path="http://www.l2playmate.com.ar/interlude/"; //creamos nuestra direccion, con las carpetas que sean si hay
//armamos nuestro link para enviar por mail en la variable $activateLink
$activateLink=$path."confirmar.php?=".$row['id']."&activateKey=".$activate."";
// Datos del email
$nombre_origen = "Soporte L2Playmate";
$email_origen = "[email protected]";
$email_copia = "[email protected]";
$email_ocultos = "[email protected]";
$email_destino = "".$row['email']."";
$asunto = "Activacion de la cuenta:".$row['login']."";
$mensaje = '<table width="629" border="0" cellspacing="1" cellpadding="2">
<tr>
<td width="623" align="left"></td>
</tr>
<tr>
<td bgcolor="#2EA354"><div style="color:#FFFFFF; font-size:14; font-family: Arial, Helvetica, sans-serif; text-transform: capitalize; font-weight: bold;"><strong> Datos de la cuenta:, '.$row['login'].'</strong></div></td>
</tr>
<tr>
<td height="95" align="left" valign="top"><div style=" color:#000000; font-family:Arial, Helvetica, sans-serif; font-size:12px; margin-bottom:3px;">
<strong>Login: </strong>'.$row['login'].'</strong><br><br><br>
<strong>Email: </strong>'.$row['email'].'</strong><br><br><br>
<strong>Link de Activacion:<br><a href="'.$activateLink.'">'.$activateLink.' </strong></a><br><br><br>
<strong>Para completar el registro tienes que activar tu cuenta con el Link de Activacion que esta por encima</strong><br><br><br>
<strong>Este link es propio y solo es valido para la cuenta:'.$row['login'].'</strong><br><br><br>
<strong>Guarde este e-mail por cualquier problema.</strong><br><br><br>
<strong>Saludos,Atte L2Playmate.</strong><br><br><br>
</div>
</td>
</tr>
</table>';
$formato = "html";
//*****************************************************************//
$headers = "From: $nombre_origen <$email_origen> \r\n";
$headers .= "Return-Path: <$email_origen> \r\n";
$headers .= "Reply-To: $email_origen \r\n";
$headers .= "X-Sender: $email_origen \r\n";
$headers .= "X-Priority: 3 \r\n";
$headers .= "MIME-Version: 1.0 \r\n";
$headers .= "Content-Transfer-Encoding: 7bit \r\n";
//*****************************************************************//
if($formato == "html")
{ $headers .= "Content-Type: text/html; charset=iso-8859-1 \r\n"; }
else
{ $headers .= "Content-Type: text/plain; charset=iso-8859-1 \r\n"; }
if (mail($email_destino,$asunto,$mensaje,$headers)){
echo "registro incompleto";
}
}
}
}
}
}else{
}
?> codigo confirmar.php Código PHP:
<?php
mysql_connect('','','')or die ('Ha fallado la conexión: '.mysql_error());
mysql_select_db('')or die ('Error al seleccionar la Base de Datos: '.mysql_error());
//recogemos los valores enviados por el link de activacion que mandamos por mail
if (isset($_GET['id'])) {
$idval=$_GET['id'];
$activate2=$_GET['activateKey'];
//y aqui es donde cambiamos el valor 1=desactivado por valor 0=activado
$query = "UPDATE accounts
SET estado = '0' WHERE id = '$idval' AND activate ='$activate2' " ;
mysql_query($query) or die(mysql_error());
?>
<SCRIPT LANGUAGE="javascript">
location.href = "index.php?index=home.php";
</SCRIPT>
<?php
}else{
echo "activacion incompleta.";
}
?>
PD:Yo ya se como crear la tabla "accounts2" con las mismas columnas lo que no se es que cuando entren a el link de activacion esos valores se eliminen de "accounts2" y se vallan a "account"
Última edición por Lecom; 14/06/2010 a las 12:06 |