No has iniciado sesión
Conectar al sistema | Registrar usuario
ProgramacionWeb - Ayuda al webmaster Pepe 

validar usuario por email php  

 

 
0 votos
WebLog validar usuario por email php
Quito
 
Saludos a todos

Ante todo llevo varios días intentando validar un email y no me sale.

Entonces

Necesito validar un usuario mediante un email que se envia al momento de registrarse , el email contiene un link con un código de verificación concretamente un valor "date" codificado en md5 para que el código sea único el cual es este: http://www.paginaweb.com/registro_confirmacion.php?confirmacion=d8603945cac971eccb8ad62c13704db9

pero al momento de acceder al link no me hace un update a la tabla usuario donde deveria cambiar un valor 0 por un 1 quedando el usuario validado.

el revisado si las variables llegan corectamente y segun yo todo esta bien porque si se hace consultas y todo eso, he intentado con funciones y me sale un error donde dice: Unknown column 'd8603945cac971eccb8ad62c13704db9' in 'where clause'.

Si alquilen sabe como solucionar esto le estaría muy agradecido


 
Comentarios
Solucionado
Bueno creo que nadie a podido solucionar el problema o es muy lógico la respuesta

de todos modos ya logre sacarlo y realmente luego de varios días de intentos resulto ser ensillo.
Aquí les dejo el código si alguien lo necesita

archivo 1

validacion.php

Esta pagina recibirá el link de validación


 
000 
001 
002 
003 
004 
005 
006 
007 
008 
009 
010 
011 
012 
013 
014 
015 
016 
017 
018 
019 
020 
021 
022 
023 
024 
025 
026 
027 
028 
029 
030 
031 
032 
033 
034 
035 
036 
037 
038 
039 
040 
041 
042 
043 
044 

 
<?php
 
$editFormAction 
$_SERVER['PHP_SELF'];
if (isset(
$_SERVER['QUERY_STRING'])) {
  
$editFormAction .= "?" htmlentities($_SERVER['QUERY_STRING']);
}
 
//compruebo la existencia del email con esta función, enviando como paramento $_GET['confirmacion'] el cual es un código que me llega desde el amail.
$resultado=comprobarlink($_GET['confirmacion']);
 
if (
$resultado!=0)
{
        
//UPDATE
  
$insertSQL sprintf("UPDATE tablausuario SET intActivo=1 WHERE idUsuario = %s",  $resultado);
    
$insertGoTo='registro_correcto.php'// este es el código normal de dreamweaver
 /* $insertGoTo ='registro_correcto.php?strEmail='.EmailAcceso($resultado).'&&strPass='.ClaveAcceso($resultado).'';
 este es el codigo para iniciar una session de usuario immediatamente
 luego de validar el usuario pero no funcionara si no hay una variable de
 session en las primeras lineas de codigo tambien hay que mencionar que
 los datos estan sacados con funciones direcionadas al mismo archivo 2.*/
 
  
if (isset($_SERVER['QUERY_STRING'])) {
    
$insertGoTo .= (strpos($insertGoTo'?')) ? "&" "?";
    
$insertGoTo .= $_SERVER['QUERY_STRING'];
  }
  
header(sprintf("Location: %s"$insertGoTo));
 
}
else
{
  
$insertGoTo "registro_error.php";
  if (isset(
$_SERVER['QUERY_STRING'])) {
    
$insertGoTo .= (strpos($insertGoTo'?')) ? "&" "?";
    
$insertGoTo .= $_SERVER['QUERY_STRING'];
  }
  
header(sprintf("Location: %s"$insertGoTo));
}
 
mysql_select_db($basededatos$cadenadeconexion);
  
$Result1 mysql_query($insertSQL$cadenadeconexion) or die(mysql_error());
 
?>
 
para que funcione este código deberás realizar una consulta en la base de datos con dreamweaver y luego de haberse generado las variables de conexión cambias la consulta por este código

archivo 2
el archivo dos contiene la función
funcion.php
 
000 
001 
002 
003 
004 
005 
006 
007 
008 
009 
010 
011 
012 
013 
014 
015 
016 
017 
018 
019 

<?php
function comprobarlink($varconfirmacion)
{
 
    global 
$basededatos$cadenadeconexion;//estos son datos de la carpeta Conections en Dreamweaver
    
mysql_select_db($basededatos$cadenadeconexion);
    
$query_Datos sprintf("SELECT * FROM tablausuario WHERE intActivo=0 AND strConfirmar=%s",GetSQLValueString($varconfirmacion"text"));
    
$Datosmysql_query($query_Datos$conexion) or die(mysql_error());
    
$row_Datos mysql_fetch_assoc($Datos);
    
$totalRows_Datos mysql_num_rows($Datos);
    
    if (
$query_Datos ==true)// este if me devuelve datos si la consulta es correcta el cual es utilizado en el archivo 1
        
return $row_Datos['idUsuario'];
        else
        return 
0;
    
mysql_free_result($Datos);
}
?>
 
Lomiso que el archivo anterior hacemos una consulata a la base de datos para generar la conexion y luego desechamos la consulta y pegamos el codigo
como verán es el mismo código generado de Dreamweaver solo que con algunos extras.

Para que funcione el archivo funcion.php
nada mas haces un include en el archivo validacion.php en la segunda linea del codigo asi:
 
000 
<?php include('funcion.php');?>
 
NOTA para los principiantes
En el archivo funciones no se necesita la primera linea de conexión a la base de datos y tampoco debe existir lenguaje html ya que este sera un archivo incluido lo cual hace que forme parte del archivo 1 como si fuese un solo documento.

Saludos

espero poder ayudado en algo
Pregunta
Hola buenos día, soy nueva en todo esto y necesito hacer exactamente lo que publicaste, pero creo que faltan archivos cierto? me preguntaba si puedes compartir el ejercicio completo.
Gracias saludos