Foros del Web » Programando para Internet » PHP »

Validar correo electronico. ¿Es asin?

Estas en el tema de Validar correo electronico. ¿Es asin? en el foro de PHP en Foros del Web. Este es mi codigo y quiero saber si este codigo funciona lo que tiene que hacer es inserta los datos del formulario que es el ...
  #1 (permalink)  
Antiguo 12/08/2012, 08:30
 
Fecha de Ingreso: julio-2012
Mensajes: 276
Antigüedad: 11 años, 8 meses
Puntos: 27
Pregunta Validar correo electronico. ¿Es asin?

Este es mi codigo y quiero saber si este codigo funciona lo que tiene que hacer es inserta los datos del formulario que es el nombre y el email y te envia un email a a tu correo y con un url que es http://midominio.com/validacion.php?validar=y a aqui un codigo aleatorio que esta guardado en la base de dato.

Esque creo que es asin pero tampoco estoy muy seguro y no lo puedo comprobar porque no tengo en el ordenador una base de datos.
Código PHP:
Ver original
  1. <?php
  2. if (isset($_POST['enviar'])){
  3.     if ($_POST['nombre'] == "" || $_POST['email'] == ""){
  4.     echo "No dejes ningun campo en blanco";
  5.     } else {
  6.     mysql_query("INSERT INTO web(nombre,email,estado,codigodevalidacion) VALUES ('$_POST[nombre]', '$_POST[email]', '0', 'RAND() * 1000'");
  7.     $registros = mysql_query("SELECT codigodevalidacion FROM web WHERE email = $_POST['email']");
  8.         while ($reg = mysql_fetch_array($registros)){
  9.             mail("[email protected]","Formulario enviado","Hola $_POST['nombre']; a continuacion te dejo la url para activar tu cuenta /n http://midominio.com/validacion.php?validar=$reg['codigodevalidacion']");
  10.         }
  11.     echo ("Todo enviado correctamente. Revisa tu correo electronico y activa tu cuenta.");
  12.     }
  13. }
  14. ?>
  #2 (permalink)  
Antiguo 12/08/2012, 09:37
 
Fecha de Ingreso: agosto-2012
Ubicación: Santiago
Mensajes: 124
Antigüedad: 11 años, 8 meses
Puntos: 60
Respuesta: Validar correo electronico. ¿Es asin?

Al parecer está bien, por qué no los pruebas y nos dices?.

Lo otro sería que guardes en una variable el código y así evitas hacer otra consulta ;)
__________________
~~Aprendiendo.
Become a Programmer, Moth*rf*cker
  #3 (permalink)  
Antiguo 12/08/2012, 09:41
 
Fecha de Ingreso: julio-2012
Mensajes: 276
Antigüedad: 11 años, 8 meses
Puntos: 27
Respuesta: Validar correo electronico. ¿Es asin?

claro pero en la pagina de validacion.php ago una consulta y busco el codigodeactivacion y si existe en estado cambio el 0 por el 1 y ya tiene la cuenta activada

si lo ago con una variable no puedo cambiar 0 por 1

mail("[email protected]","Formulario enviado","Hola $_POST['nombre']; a continuacion te dejo la url para activar tu cuenta /n http://midominio.com/validacion.php?validar=$reg['codigodevalidacion']");
Eso esta mal no? seria

mail("$_POST['email']","Formulario enviado","Hola $_POST['nombre']; a continuacion te dejo la url para activar tu cuenta /n http://midominio.com/validacion.php?validar=$reg['codigodevalidacion']");

Última edición por PepeF; 12/08/2012 a las 09:49
  #4 (permalink)  
Antiguo 12/08/2012, 13:54
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Validar correo electronico. ¿Es asin?

La expresion RAND()*1000 esta en comillas, por lo que sera interpretado como una cadena e insertado TAL CUAL en la base de datos.
Otra cosa es que cuando pides el registro, dices:
WHERE email = $_POST['email']
Debes poner comillas para que la base de datos no lo interprete mal.
WHERE email = '{$_POST['email']}'

Dos cosas mas,
1. Por que no utilizas un hash MD5 o SHA1 para el codigo de validacion? Es mejor que un numero del 0 al 1000.
2. Filtra lo que te pasan por POST o te pueden meter tremenda inyeccion SQL.
  #5 (permalink)  
Antiguo 13/08/2012, 02:08
 
Fecha de Ingreso: julio-2012
Mensajes: 276
Antigüedad: 11 años, 8 meses
Puntos: 27
Respuesta: Validar correo electronico. ¿Es asin?

Pero si lo hago con md5 como valido el codigo?
  #6 (permalink)  
Antiguo 13/08/2012, 11:32
 
Fecha de Ingreso: agosto-2012
Ubicación: Santiago
Mensajes: 124
Antigüedad: 11 años, 8 meses
Puntos: 60
Respuesta: Validar correo electronico. ¿Es asin?

www.blabla.com/[email protected]?code=4a5dafsd f4sd5fsdf5c2xc (Código md5 xD)

$_GET['code']

y haces un select en la DB que coincidan y haces la validación.
__________________
~~Aprendiendo.
Become a Programmer, Moth*rf*cker
  #7 (permalink)  
Antiguo 13/08/2012, 12:51
 
Fecha de Ingreso: julio-2012
Mensajes: 276
Antigüedad: 11 años, 8 meses
Puntos: 27
Respuesta: Validar correo electronico. ¿Es asin?

Y para que ponerlo con md5 si es un codigo del 0 al 1000 y sin md5 me pueden inyectar sql? Y con md5?
  #8 (permalink)  
Antiguo 13/08/2012, 14:11
 
Fecha de Ingreso: agosto-2012
Ubicación: Santiago
Mensajes: 124
Antigüedad: 11 años, 8 meses
Puntos: 60
Respuesta: Validar correo electronico. ¿Es asin?

No. Eso depende de cómo recibas los datos y cómo hagas la consultas.
__________________
~~Aprendiendo.
Become a Programmer, Moth*rf*cker

Etiquetas: html, mysql, mysql+php, validar
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 09:44.