Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/06/2010, 12:00
Lecom
 
Fecha de Ingreso: mayo-2010
Ubicación: Argentina
Mensajes: 11
Antigüedad: 14 años
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