Foros del Web » Programando para Internet » PHP »

PHP OO No se envia el mail

Estas en el tema de No se envia el mail en el foro de PHP en Foros del Web. Hola amigos, esto es un formulario de registro y lo malo es que no se envian los datos a "$mail". Se registra, todo correcto y ...
  #1 (permalink)  
Antiguo 30/04/2014, 15:53
 
Fecha de Ingreso: marzo-2014
Mensajes: 168
Antigüedad: 10 años, 1 mes
Puntos: 2
No se envia el mail

Hola amigos, esto es un formulario de registro y lo malo es que no se envian los datos a "$mail". Se registra, todo correcto y no se envia el mail XD. Al principio me funciono pero me dejó de funcionar, no se si toque algo o que. Lo tengo en el servidor de 000.webhost.com. Puede que sea un error simple o otro más complicado.
Los valores se añaden correctamente a la BD.

También, cuándo hago este echo:

Código PHP:
echo 'Usuario <strong>$user</strong> se ha creado con exito</br>'
, no me coje la variable $user y me sale simplemente $user en negrita.

register.php:

Código PHP:
<?php
require_once('./config/funciones.php');
conectar('mysql13.000webhost.com''a6612376_sergiof''Sergivilla1''a6612376_users');
 
//Recibir
$user     strip_tags($_POST['usernamesignup']);
$pass     strip_tags(sha1($_POST['passwordsignup']));
$mail     strip_tags($_POST['emailsignup']);
$repw     strip_tags($_POST['passwordsignup_confirm']);
$ip       $_SERVER['REMOTE_ADDR'];
$key      $aleatorio uniqid();
$activado "0";

$query = @mysql_query('SELECT * FROM users WHERE user="'.mysql_real_escape_string($user).'"');

if(
$existe = @mysql_fetch_object($query))
{
    echo 
'El usuario '.$user.' ya existe.';
    
header("refresh: 4; url=./register.html");
}else{
    
$meter = @mysql_query('INSERT INTO users (user, pass, mail, codigo, activado, ip) values ("'.mysql_real_escape_string($user).'","'.mysql_real_escape_string($pass).'","'.mysql_real_escape_string($mail).'","'.
mysql_real_escape_string($key).'","'.
mysql_real_escape_string($activado).'","'.
    
$ip.'")');
    
    if(
$meter)
    {
        echo 
'Usuario <strong>$user</strong> se ha creado con exito</br>'

$para       $mail//hace referencia a la variable email...
$titulo     "Activar cuenta";
$mensaje    'Para activar la cuenta, es necesario entrar en este enlace: http://ofserker.netai.net/verificar.php?codigo=$key' "\r\n";
$cabeceras  "MIME-Version: 1.0" "\r\n";
$cabeceras  'Content-type: text/plain; charset=iso-8859-1' "\r\n";
$cabeceras  "From: [email protected]"\r\n";
 
$email mail($para$titulo$mensaje$cabeceras);
    
if (
$email){
    
    echo 
"Enviando un mail a <strong>$mail</strong> que luego deber&aacutes aceptar";
        
header("refresh: 8; url=./index.php"); 
}else{
        echo 
'Hubo un error en el registro';
        
header("refresh: 4; url=./index.php");
        }
    }
}
?>
Atentamente, OfSerker
  #2 (permalink)  
Antiguo 30/04/2014, 17:30
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
Respuesta: No se envia el mail

prueba a hacer lo siguiente:

justo después de

Código PHP:
Ver original
  1. $para       = $mail; //hace referencia a la variable email...
  2. $titulo     = "Activar cuenta";
  3. $mensaje    = 'Para activar la cuenta, es necesario entrar en este enlace: http://ofserker.netai.net/verificar.php?codigo=$key' . "\r\n";
  4. $cabeceras  = "MIME-Version: 1.0" . "\r\n";
  5. $cabeceras  = 'Content-type: text/plain; charset=iso-8859-1' . "\r\n";
  6. $cabeceras  = "From: [email protected]" . "\r\n";

prueba a hacer un var_dump($cabeceras);

a ver si es verdad que todas las cabeceras se fueron guardando en $cabeceras, me parece que no se te guardó el Content-type y por eso no se envió el mail con HTML
__________________
Ayúdame a hacerlo por mi mismo.
  #3 (permalink)  
Antiguo 01/05/2014, 00:18
 
Fecha de Ingreso: marzo-2014
Mensajes: 168
Antigüedad: 10 años, 1 mes
Puntos: 2
Respuesta: No se envia el mail

Vale, puse la variable que me dijiste y me ha salido solo esto:

string(26) "From: [email protected] " Enviando un mail de confirmacion que luego deberás acceptar.

Creo que no se envian todos los formularios.
Atentamente, OfSerker

P.D: Perdon por el tiempo que te hecho esperar (estaba durmiendo).
  #4 (permalink)  
Antiguo 01/05/2014, 05:21
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
Respuesta: No se envia el mail

entonces prueba lo siguiente

Código PHP:
Ver original
  1. $cabeceras  = "MIME-Version: 1.0" . "\r\n";
  2. $cabeceras  .= 'Content-type: text/plain; charset=iso-8859-1' . "\r\n";
  3. $cabeceras  .= "From: [email protected]" . "\r\n";
__________________
Ayúdame a hacerlo por mi mismo.
  #5 (permalink)  
Antiguo 01/05/2014, 05:38
 
Fecha de Ingreso: marzo-2014
Mensajes: 168
Antigüedad: 10 años, 1 mes
Puntos: 2
Respuesta: No se envia el mail

Se me guarda correctamente en la bd. Pero no se que pasa... además no me coje la variable "$user" se queda igual.

Aquí una foto de lo que me ocurre:



Atentamente, OfSerker.
  #6 (permalink)  
Antiguo 01/05/2014, 06:10
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
Respuesta: No se envia el mail

en esta línea

Código PHP:
Ver original
  1. echo 'Usuario <strong>$user</strong> se ha creado con exito</br>';

lo que sucede es que quieres imprimir la variable $user dentro de un string.

para ello, prueba a concatenar de la siguiente manera
Código PHP:
Ver original
  1. echo 'Usuario <strong>'.$user.'</strong> se ha creado con exito</br>';

por cierto, el var_dump() lo puedes quitar, era para probar qué contenia $cabeceras.
__________________
Ayúdame a hacerlo por mi mismo.
  #7 (permalink)  
Antiguo 01/05/2014, 06:25
 
Fecha de Ingreso: marzo-2014
Mensajes: 168
Antigüedad: 10 años, 1 mes
Puntos: 2
Respuesta: No se envia el mail

Ya hice eso, añadí un else, aqui código actualizado:

Lo malo es que ahora la pantalla se queda en blanco cuándo se registra. Si lo quieres comprobar tú mismo: http://www.ofserker.netai.net

Código PHP:
<?php
require_once('./config/funciones.php');
conectar('mysql13.000webhost.com''a6612376_sergiof''Sergivilla1''a6612376_users');
 
//Recibir
$user     strip_tags($_POST['usernamesignup']);
$pass     strip_tags(sha1($_POST['passwordsignup']));
$mail     strip_tags($_POST['emailsignup']);
$repw     strip_tags($_POST['passwordsignup_confirm']);
$ip       $_SERVER['REMOTE_ADDR'];
$key      $aleatorio uniqid();
$activado "0";

$query = @mysql_query('SELECT * FROM users WHERE user="'.mysql_real_escape_string($user).'"');

if(
$existe = @mysql_fetch_object($query))
{
    echo 
'El usuario '.$user.' ya existe.';
    
header("refresh: 4; url=./register.html");
}else{
    
$meter = @mysql_query('INSERT INTO users (user, pass, mail, codigo, activado, ip) values ("'.mysql_real_escape_string($user).'","'.mysql_real_escape_string($pass).'","'.mysql_real_escape_string($mail).'","'.
mysql_real_escape_string($key).'","'.
mysql_real_escape_string($activado).'","'.
    
$ip.'")');
    
    if(
$meter)
    {
        
'Usuario <strong>'.$user.'</strong> se ha creado con exito</br>';
        
    }else{ 
echo 
'Error al crear la cuenta de ".user."';

$para       ".$mail."//hace referencia a la variable email...
$titulo     "Activar cuenta";
$mensaje    'Para activar la cuenta, es necesario entrar en este enlace: http://ofserker.netai.net/verificar.php?codigo=$key' "\r\n";
$cabeceras  "MIME-Version: 1.0" "\r\n";
$cabeceras  .= 'Content-type: text/plain; charset=iso-8859-1' "\r\n";
$cabeceras  .= "From: [email protected]"\r\n";
 
$email mail($para$titulo$mensaje$cabeceras);
    
if (
$email){
    
    echo 
"Enviando un mail a <strong>".$mail."</strong> que luego deber&aacutes aceptar";
        
header("refresh: 8; url=./index.php"); 
}else{
        echo 
'Hubo un error en el registro';
        
header("refresh: 4; url=./index.php");
        }
    }
}
?>
Atentamente, OfSerker.

P.D: Es eso un bug?
  #8 (permalink)  
Antiguo 01/05/2014, 08:27
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
Respuesta: No se envia el mail

en este punto ¿qué es lo que quieres hacer? es decir ¿qué error te muestra y qué error percibes tú? ¿qué quieres lograr?

porque viendo tu código, lo que leo es que no manda el email cuando el usuario se ha creado, sino cuando falla en la creación del usuario, algo que me parece que no tiene mucho sentido.

así que tomate tu tiempo para explicar qué quieres lograr con este código.
__________________
Ayúdame a hacerlo por mi mismo.
  #9 (permalink)  
Antiguo 01/05/2014, 08:37
 
Fecha de Ingreso: marzo-2014
Mensajes: 168
Antigüedad: 10 años, 1 mes
Puntos: 2
Respuesta: No se envia el mail

Quiero que al registrarte, se guarden los datos en la bd. Después si no hay ningún error, que te envie un mail para la confirmación de la cuenta (esto no me lo hace).

He arreglado un poquito el código:

register.php

Código PHP:
<?php
require_once('./config/funciones.php');
conectar('mysql13.000webhost.com''a6612376_sergiof''Sergivilla1''a6612376_users');
 
//Recibir
$user     strip_tags($_POST['usernamesignup']);
$pass     strip_tags(sha1($_POST['passwordsignup']));
$mail     strip_tags($_POST['emailsignup']);
$repw     strip_tags($_POST['passwordsignup_confirm']);
$ip       $_SERVER['REMOTE_ADDR'];
$key      $aleatorio uniqid();
$activado "0";

$query = @mysql_query('SELECT * FROM users WHERE user="'.mysql_real_escape_string($user).'"');

if(
$existe = @mysql_fetch_object($query))
{
    echo 
'El usuario '.$user.' ya existe.';
    
header("refresh: 4; url=./register.html");
}else{
    
$meter mysql_query('INSERT INTO users (user, pass, mail, codigo, activado, ip) values ("'.mysql_real_escape_string($user).'","'.mysql_real_escape_string($pass).'","'.mysql_real_escape_string($mail).'","'.
mysql_real_escape_string($key).'","'.
mysql_real_escape_string($activado).'","'.
    
$ip.'")') or mysql_error();
    
    if(
$meter)
    {
$para       $mail//hace referencia a la variable email...
$titulo     "Activar cuenta";
$mensaje    'Para activar la cuenta, es necesario entrar en este enlace: http://ofserker.netai.net/verificar.php?codigo=$key' "\r\n";
$cabeceras  'MIME-Version: 1.0' "\r\n";
$cabeceras  .= 'Content-type: text/plain; charset=iso-8859-1' "\r\n";
$cabeceras  .= "From: [email protected]"\r\n";
 
$email mail('$para''$titulo''$mensaje''$cabeceras');
    
if (
$email){
    
    echo 
"Usuario ".$user." creado con &eacutexito. Enviando un mail a <strong>$mail</strong> que luego deber&aacutes aceptar";
        
header("refresh: 8; url=./index.php"); 
}else{
        echo 
'Hubo un error en el registro';
        
header("refresh: 4; url=./index.php");
        }
    }
}
?>
Atentamente, OfSerker.
P.D: ¿Porque tardas tanto en contestarme?
  #10 (permalink)  
Antiguo 01/05/2014, 08:57
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
Respuesta: No se envia el mail

si te fijas, guardas los datos en variables ($para, $titulo, $mensaje, $cabeceras), pero luego en mail haces esto

Código PHP:
Ver original
  1. $email = mail('$para', '$titulo', '$mensaje', '$cabeceras');

que es como mandarle texto (no variables).

quita las comillas simples que rodean a cada variable en los parámetros de mail y ya sí que tendría que funcionar.
__________________
Ayúdame a hacerlo por mi mismo.
  #11 (permalink)  
Antiguo 01/05/2014, 09:26
 
Fecha de Ingreso: marzo-2014
Mensajes: 168
Antigüedad: 10 años, 1 mes
Puntos: 2
Respuesta: No se envia el mail

No me funciona XD. No se que más hacer... ¿En un servidor necesitas algún archivo para que el mail sea enviado?

Atentamente, OfSerker

P.D: Dame ideas de que puedo cambiar para que se envie pls.

Atentamente, OfSerker.
  #12 (permalink)  
Antiguo 01/05/2014, 09:38
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
Respuesta: No se envia el mail

crea un archivo nuevo de PHP llamado mailtest en el mismo directorio que tu index.php o equivalente.

luego pon este código en él (en la variable $para pon tu email para que te llegue a ti el mail), lo subes a tu servidor remoto y accedes a él para ejecutarlo, dime si te funcionó.

Código PHP:
Ver original
  1. $para       = ''; //pon tu email
  2. $titulo     = "Activar cuenta";
  3. $mensaje    = 'Para activar la cuenta, es necesario entrar en este enlace:';
  4. $cabeceras  = 'MIME-Version: 1.0' . "\r\n";
  5. $cabeceras  .= 'Content-type: text/plain; charset=iso-8859-1' . "\r\n";
  6. $cabeceras  .= "From: [email protected]" . "\r\n";
  7.  
  8. mail($para, $titulo, $mensaje, $cabeceras);
__________________
Ayúdame a hacerlo por mi mismo.
  #13 (permalink)  
Antiguo 01/05/2014, 10:24
 
Fecha de Ingreso: marzo-2014
Mensajes: 168
Antigüedad: 10 años, 1 mes
Puntos: 2
Respuesta: No se envia el mail

¡Buenas noticias! Se ha enviado el mail mira:



No se que error puede haber en el código...

Atentamente, OfSerker
  #14 (permalink)  
Antiguo 01/05/2014, 10:29
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
Respuesta: No se envia el mail

si el mail se ha enviado, entonces el error lo tienes en tu código, repasalo, haz pruebas para ver el contenido de las variables en cada momento, revisa la lógica de tu programa, haz un seguimiento lógico de la trayectoria que hacen los datos en tu programa para ver qué quieres que haga en cada punto tu programa y ver qué sucede realmente y por qué está fallando.
__________________
Ayúdame a hacerlo por mi mismo.
  #15 (permalink)  
Antiguo 01/05/2014, 11:01
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: No se envia el mail

Primer consejo: quita todos los "@" mientras estés desarrollando el programa. Te está escondiendo cualquier error que MySQL peuda estar devolviendo y eso NO DEBE PASAR EN ESTA ETAPA del trabajo.
NUNCA.
Segundo: Ten cuidado con el uso de apóstrofos (') y comillas (") cuando las metas en una consulta. No se usan exactamente del mismo modo en PHP que en MySQL, y puedes obtener errores indetectables, si el servidor de MySQL no está configurado de una forma determinada.
Tercero: No confundas asignación en PHP ( = ) con comparación (==). No son la misma cosa.
Cuarta (sugerencia): no ejecutes las queries directamente en MySQL. Carga primero una variable con ella para poder luego verificar lo que contiene y comprobar si quedó bien escrita.

Limpiando un poco probemos esto:

Código PHP:
Ver original
  1. <?php
  2.  
  3. require_once('./config/funciones.php');
  4. conectar('mysql13.000webhost.com', 'a6612376_sergiof', 'Sergivilla1', 'a6612376_users');
  5.  
  6. //Recibir
  7. $user = strip_tags($_POST['usernamesignup']);
  8. $pass = strip_tags(sha1($_POST['passwordsignup']));
  9. $mail = strip_tags($_POST['emailsignup']);
  10. $repw = strip_tags($_POST['passwordsignup_confirm']);
  11. $ip = $_SERVER['REMOTE_ADDR'];
  12. $key = $aleatorio = uniqid();
  13. $activado = "0";
  14. $buscar_user = "SELECT * FROM users WHERE user='".mysql_real_escape_string($user)."'";
  15.  
  16. //verificando la variable.
  17. var_dump($buscar_user);
  18.  
  19. $query = mysql_query($buscar_user) or die(mysql_error());
  20. if ($existe == mysql_fetch_object($query)) {
  21.     echo 'El usuario ' . $user . ' ya existe.';
  22.     header("refresh: 4; url=./register.html");
  23. } else {
  24.     $sql = "INSERT INTO users (user, pass, mail, codigo, activado, ip)";
  25.     $sql .= "VALUES('".mysql_real_escape_string($user)."', ";
  26.     $sql .= "'".mysql_real_escape_string($pass)."', ";
  27.     $sql .= "'".mysql_real_escape_string($mail)."', ";
  28.     $sql .= "'".mysql_real_escape_string($key). "',";
  29.     $sql .= "'".mysql_real_escape_string($activado) . "',";
  30.     $sql .= "'".$ip ."')";
  31.    
  32.     // Verificando la variable.
  33.    
  34.     var_dump($sql);
  35.    
  36.     $meter = mysql_query($sql) or die(mysql_error());
  37.     if ($meter) {
  38.         $para = $mail; //hace referencia a la variable email...
  39.         $titulo = "Activar cuenta";
  40.         $mensaje = 'Para activar la cuenta, es necesario entrar en este enlace: http://ofserker.netai.net/verificar.php?codigo=$key' . "\r\n";
  41.         $cabeceras = 'MIME-Version: 1.0' . "\r\n";
  42.         $cabeceras .= 'Content-type: text/plain; charset=iso-8859-1' . "\r\n";
  43.         $cabeceras .= "From: [email protected]" . "\r\n";
  44.         $email = mail('$para', '$titulo', '$mensaje', '$cabeceras');
  45.  
  46.         if ($email) {
  47.             echo "Usuario " . $user . " creado con &eacutexito. Enviando un mail a <strong>$mail</strong> que luego deber&aacutes aceptar";
  48.             header("refresh: 8; url=./index.php");
  49.         } else {
  50.             echo 'Hubo un error en el registro';
  51.             header("refresh: 4; url=./index.php");
  52.         }
  53.     }
  54. }
  55. ?>
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #16 (permalink)  
Antiguo 01/05/2014, 12:24
 
Fecha de Ingreso: marzo-2014
Mensajes: 168
Antigüedad: 10 años, 1 mes
Puntos: 2
Respuesta: No se envia el mail

Me dice que ya existe y en verdad no.
  #17 (permalink)  
Antiguo 01/05/2014, 12:33
 
Fecha de Ingreso: marzo-2014
Mensajes: 168
Antigüedad: 10 años, 1 mes
Puntos: 2
Respuesta: No se envia el mail

He editado el código que tenía y he puesto lo que me has recomendado que pusiera (bien ordenado y no se envia al mail):

register.php:

Código PHP:
<?php
require_once('./config/funciones.php');
conectar('mysql13.000webhost.com''a6612376_sergiof''Sergivilla1''a6612376_users');
 
//Recibir
$user     strip_tags($_POST['usernamesignup']);
$pass     strip_tags(sha1($_POST['passwordsignup']));
$mail     strip_tags($_POST['emailsignup']);
$repw     strip_tags($_POST['passwordsignup_confirm']);
$ip       $_SERVER['REMOTE_ADDR'];
$key      $aleatorio uniqid();
$activado "0";
$query    mysql_query('SELECT * FROM users WHERE user="'.mysql_real_escape_string($user).'"');

if(
$existe mysql_fetch_object($query))
{
    echo 
'El usuario '.$user.' ya existe.';
    
header("refresh: 4; url=./register.html");
}else{
    
 
$sql "INSERT INTO users (user, pass, mail, codigo, activado, ip)";
    
$sql .= "VALUES('".mysql_real_escape_string($user)."', ";
    
$sql .= "'".mysql_real_escape_string($pass)."', ";
    
$sql .= "'".mysql_real_escape_string($mail)."', "
    
$sql .= "'".mysql_real_escape_string($key). "',";
    
$sql .= "'".mysql_real_escape_string($activado) . "',";
    
$sql .= "'".$ip ."')";
    
    
$meter mysql_query($sql) or die(mysql_error());
    if (
$meter) {
        
$para $mail//hace referencia a la variable email...
        
$titulo "Activar cuenta";
        
$mensaje 'Para activar la cuenta, es necesario entrar en este enlace: http://ofserker.netai.net/verificar.php?codigo=$key' "\r\n";
        
$cabeceras 'MIME-Version: 1.0' "\r\n";
        
$cabeceras .= 'Content-type: text/plain; charset=iso-8859-1' "\r\n";
        
$cabeceras .= "From: [email protected]"\r\n";
        
$email mail('$para''$titulo''$mensaje''$cabeceras');
 
        if (
$email) {
            echo 
"Usuario " $user " creado con &eacutexito. Enviando un mail a <strong>$mail</strong> que luego deber&aacutes aceptar";
            
header("refresh: 8; url=./index.php");
        } else {
            echo 
'Hubo un error en el registro';
            
header("refresh: 4; url=./index.php");
        }
    }
}
?>
Atentamente, OfSerker
  #18 (permalink)  
Antiguo 01/05/2014, 13:18
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: No se envia el mail

Cita:
Iniciado por OfSerker Ver Mensaje
Me dice que ya existe y en verdad no.
Te falta práctica...
Código PHP:
Ver original
  1. $meter = mysql_query($sql) or die(mysql_error());
  2.     if ($meter) {
  3.         ....
  4.     }
Esto no dice que ya existe. Dice que la query no falló, que no es lo mismo, mysql_query() devuelve true cuando no se producen errores, pero eso no significa que haya devuelto algo. Lo que corresponde es que, después de verificar que no falló, compruebes si además devolvió algún registro:
Código PHP:
Ver original
  1. $meter = mysql_query($sql) or die(mysql_error());
  2.     if ($meter) {
  3.       if(mysql_num_rows($meter) > 0)
  4.             {
  5.             ...
  6.             }
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #19 (permalink)  
Antiguo 01/05/2014, 13:32
 
Fecha de Ingreso: marzo-2014
Mensajes: 168
Antigüedad: 10 años, 1 mes
Puntos: 2
Respuesta: No se envia el mail

¿Tal que que asi el register.php?: (tiene un error)

Código PHP:
<?php
require_once('./config/funciones.php');
conectar('mysql13.000webhost.com''a6612376_sergiof''Sergivilla1''a6612376_users');
 
//Recibir
$user     strip_tags($_POST['usernamesignup']);
$pass     strip_tags(sha1($_POST['passwordsignup']));
$mail     strip_tags($_POST['emailsignup']);
$repw     strip_tags($_POST['passwordsignup_confirm']);
$ip       $_SERVER['REMOTE_ADDR'];
$key      $aleatorio uniqid();
$activado "0";
$query    mysql_query('SELECT * FROM users WHERE user="'.mysql_real_escape_string($user).'"');

if(
$existe mysql_fetch_object($query))
{
    echo 
'El usuario '.$user.' ya existe.';
    
header("refresh: 4; url=./register.html");
}else{
    
 
$sql "INSERT INTO users (user, pass, mail, codigo, activado, ip)";
    
$sql .= "VALUES('".mysql_real_escape_string($user)."', ";
    
$sql .= "'".mysql_real_escape_string($pass)."', ";
    
$sql .= "'".mysql_real_escape_string($mail)."', "
    
$sql .= "'".mysql_real_escape_string($key). "',";
    
$sql .= "'".mysql_real_escape_string($activado) . "',";
    
$sql .= "'".$ip ."')";
    
$meter mysql_query($sql) or die(mysql_error());
    if (
$meter) {
      if(
mysql_num_rows($meter) > 0)
            {
        
$para $mail//hace referencia a la variable email...
        
$titulo "Activar cuenta";
        
$mensaje 'Para activar la cuenta, es necesario entrar en este enlace: http://ofserker.netai.net/verificar.php?codigo=$key' "\r\n";
        
$cabeceras 'MIME-Version: 1.0' "\r\n";
        
$cabeceras .= 'Content-type: text/plain; charset=iso-8859-1' "\r\n";
        
$cabeceras .= "From: [email protected]"\r\n";
        
$email mail('$para''$titulo''$mensaje''$cabeceras');
 
        if (
$email) {
            echo 
"Usuario " $user " creado con &eacutexito. Enviando un mail a <strong>$mail</strong> que luego deber&aacutes aceptar";
            
header("refresh: 8; url=./index.php");
        } else {
            echo 
'Hubo un error en el registro';
            
header("refresh: 4; url=./index.php");
        }
    }

?>
Atentamemte, OfSerker
  #20 (permalink)  
Antiguo 05/05/2014, 14:52
 
Fecha de Ingreso: marzo-2014
Mensajes: 168
Antigüedad: 10 años, 1 mes
Puntos: 2
Respuesta: No se envia el mail

Hola a todos, ¡Al fin!. Ya encontré el error y es que cuándo pongo el enlace de:

Código PHP:
$mensaje'Para activar la cuenta, es necesario entrar en este enlace: http://ofserker.netai.net/verificar.php?codigo=".$key."' "\r\n"
El mail no se envia pero si le quito el link (http://ofserker.netai.net/verificar.php?codigo=".$key."), si que se envia. Lo tengo comprovado. Me gustaría que se pudiera enviar esa url.

mail.php (entero):

<?php
$para = $_POST['emailsignup']; //pon tu email
$titulo = "Activar cuenta";
$mensaje = 'Para activar la cuenta, es necesario entrar en este enlace:' . "\r\n";
$cabeceras = 'MIME-Version: 1.0' . "\r\n";
$cabeceras .= 'Content-type: text/plain; charset=iso-8859-1' . "\r\n";
$cabeceras .= "From: [email protected]" . "\r\n";

mail($para, $titulo, $mensaje, $cabeceras);
?>

<?php
//este enlace falla: http://ofserker.netai.net/verificar.php?codigo=".$key."
?>

Atentamente, OfSerker. Siento el retraso del hilo.

Etiquetas: envia, formulario, html, mail, mysql, registro, select, sql, variable
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 07:28.