Foros del Web » Programando para Internet » PHP »

[ayuda] necesito un codigo

Estas en el tema de [ayuda] necesito un codigo en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 14/06/2010, 12:00
 
Fecha de Ingreso: mayo-2010
Ubicación: Argentina
Mensajes: 11
Antigüedad: 13 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
  #2 (permalink)  
Antiguo 14/06/2010, 12:29
 
Fecha de Ingreso: febrero-2010
Mensajes: 818
Antigüedad: 14 años, 2 meses
Puntos: 55
Respuesta: [ayuda] necesito un codigo

lo que puedes hacer es crear al usuario en accoount2 con un campo hash en la cual puedes haschear el mail y enviarle un mail al usuario con el link de activacion donde el link seria algo como sitio.com/?hash=acaelcodigohash&user=nombre_usuario

entonces cuando abra ese link en la pagina sitio.com recibes por get el user y el hash haces la consulta a la bd si adonde el user y hash sean iguales y si lo son haces que los valores de account2 lo pasas a account y listo.
  #3 (permalink)  
Antiguo 14/06/2010, 12:43
 
Fecha de Ingreso: mayo-2010
Ubicación: Argentina
Mensajes: 11
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: [ayuda] necesito un codigo

Te digo la verdad no entendi porque nose lo que es hash,perdona por mi ignorancia esque nose mucho todavia no tenes algo que me facilite eso ? o una guia porfavor porque nose mucho

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:32.