Foros del Web » Programando para Internet » PHP »

Problema en mensaje de suscripción

Estas en el tema de Problema en mensaje de suscripción en el foro de PHP en Foros del Web. Hola estoy instalando una placa de Sitio bajo construcción y en la parte de suscribirse tengo el siguiente codigo: Código PHP: <?php if(isset( $_POST [ ...
  #1 (permalink)  
Antiguo 08/06/2012, 17:06
Avatar de demoche  
Fecha de Ingreso: junio-2006
Mensajes: 124
Antigüedad: 17 años, 9 meses
Puntos: 0
Problema en mensaje de suscripción

Hola estoy instalando una placa de Sitio bajo construcción y en la parte de suscribirse tengo el siguiente codigo:

Código PHP:
<?php
if(isset($_POST['email'])) {
    
    
// EDIT THE 2 LINES BELOW AS REQUIRED
    
$email_to "[email protected]";
    
$email_subject "New e-mail subscriber";
    
    
    function 
died($error) {
        
// your error code can go here
        
echo "WRONG!, pero encontramos estos error(es) en tu suscripcion. ";
        echo 
"Estos errores que aparecen abajo.<br /><br />";
        echo 
$error."<br /><br />";
        echo 
"Por favor volve y corregilos.<br /><br />";
        die();
    }
    
    
// validation expected data exists
    
if
        (!isset(
$_POST['email'])) {
        
died('WRONG!, pero aparece un problema con el email que suministraste.');        
    }
    
    
    
$email_from $_POST['email']; // required
    
    
$error_message "";
    
$email_exp "^[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$";
  if(!
eregi($email_exp,$email_from)) {
      
$error_message .= 'WRONG! El correo que entraste es valido.<br />';
  }
    
  if(
strlen($error_message) > 0) {
      
died($error_message);
  }
    
$email_message "Detalles del formulario debajo.\n\n";
    
    function 
clean_string($string) {
      
$bad = array("content-type","bcc:","to:","cc:","href");
      return 
str_replace($bad,"",$string);
    }
    
    
    
$email_message .= "Email: ".clean_string($email_from)."\n";

    
// create email headers
$headers 'From: '.$email_from."\r\n".
'Reply-To: '.$email_from."\r\n" .
'X-Mailer: PHP/' phpversion();
@
mail($email_to$email_subject$email_message$headers);  
?>

<!-- include your own success html here -->
Gracias por contactarnos. Te mantendremos informado muy pronto.

<?
}
?>
Lo que quiero saber es como hacer para que los mensajes tanto de error como de susceso o correctos me los escriba en el campo de IMPUT donde uno escribe el mail y no en un html aparte.
Gracias
demoche
  #2 (permalink)  
Antiguo 08/06/2012, 19:45
 
Fecha de Ingreso: agosto-2011
Ubicación: Santo Domingo
Mensajes: 487
Antigüedad: 12 años, 7 meses
Puntos: 31
Respuesta: Problema en mensaje de suscripción

Puedes en tu formulario agregar un $error
y pues definirlo en tu php..
por ejemplo
if(strlen($error_message) > 0) {
died($error_message);
$error ="No ha digitado nada, favor de completar los datos";
}

y en tu form

<input type="text" name="email"/ > <span><?php echo $error; ?></span>

espero que comprendas
  #3 (permalink)  
Antiguo 09/06/2012, 16:23
 
Fecha de Ingreso: junio-2012
Ubicación: Argentina - Buenos Aires
Mensajes: 135
Antigüedad: 11 años, 9 meses
Puntos: 32
Respuesta: Problema en mensaje de suscripción

Tendrias que usar el mismo archivo no un archivo aparte, al menos se me ocurre eso.
Código PHP:
Ver original
  1. $err_nombre = "";
  2.     if($_POST)
  3.     {
  4.       /* Aca proceso los datos del post del formulario*/
  5.       /* y valido el nombre, mail, etc */
  6.         if($ok)
  7.         {
  8.             $error = false;
  9.             mail(..);    
  10.         }
  11.         else
  12.         {
  13.             $err_nombre = "Debes poner mas caracteres";
  14.             $error = true;
  15.         }
  16.     }
  17.     else{
  18.         $error = true;
  19.     }
  20.     if($error){
  21.    
  22.         echo"<html>
  23.             <head></head>
  24.             <body>
  25.             <form method='esta-pagina.php' method='post'>
  26.                 Nombre: <input type='text' value='".$err_nombre."' name='nombre'/>
  27.                 <input type='submit' value='enviar' />
  28.             </form>
  29.             </body>
  30.             </html>";
  31.     }


Espero sirva, saludos.
__________________
http://www.latinium.com.ar/
  #4 (permalink)  
Antiguo 09/06/2012, 16:54
Avatar de demoche  
Fecha de Ingreso: junio-2006
Mensajes: 124
Antigüedad: 17 años, 9 meses
Puntos: 0
Respuesta: Problema en mensaje de suscripción

Gracia Elgoncho99, lo probe pero me tira que hay error en esta linea:

Código PHP:
mail(..); 
Como lo resuelvo?

El codigo total me quedo asi, por las dudas lo publico:

Código PHP:
<?php
if(isset($_POST['email'])) {
    
    
// EDIT THE 2 LINES BELOW AS REQUIRED
    
$email_to "[email protected]";
    
$email_subject "New e-mail subscriber";
    
    
    function 
died($error) {
        
// your error code can go here
        
echo "We are very sorry, but there were error(s) found with the form your submitted. ";
        echo 
"These errors appear below.<br /><br />";
        echo 
$error."<br /><br />";
        echo 
"Please go back and fix these errors.<br /><br />";
        die();
    }
    
    
// validation expected data exists
    
if
        (!isset(
$_POST['email'])) {
        
died('We are sorry, but there appears to be a problem with the email your submitted.');        
    }
    
    
    
$err_nombre "";
    if(
$_POST)
    {
      
/* Aca proceso los datos del post del formulario*/
      /* y valido el nombre, mail, etc */
        
if($ok)
        {
            
$error false;
            
mail(..);    
        }
        else
        {
            
$err_nombre "Debes poner mas caracteres";
            
$error true;
        }
    }
    else{
        
$error true;
    }
    if(
$error){
    
        echo
"<html>
            <head></head>
            <body>
            <form method='esta-pagina.php' method='post'>
                Nombre: <input type='text' value='"
.$err_nombre."' name='nombre'/>
                <input type='submit' value='enviar' />
            </form>
            </body>
            </html>"
;
    }

?>
  #5 (permalink)  
Antiguo 09/06/2012, 17:15
 
Fecha de Ingreso: junio-2012
Ubicación: Argentina - Buenos Aires
Mensajes: 135
Antigüedad: 11 años, 9 meses
Puntos: 32
Respuesta: Problema en mensaje de suscripción

Lo que pasa no te pase la solucion te di una idea de como encararla.

No uses 2 archivos, 1 el formulario y otro el que maneja el post. Usa el mismo archivo y por media de condiciones de if, decidi si mostrarlo o no.

Aca te dejo otro esqueleto pero con un poco mas de tu codigo para ver si te das una idea.


Código PHP:
Ver original
  1. $error_message = "";
  2.  
  3. /* Esta pregunta de seria hay datos recibidos por post? */
  4. if($_POST)
  5. {  
  6.     $email_exp  = "^[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$";
  7.     /* Si los hay entrara por aca */
  8.     if( isset($_POST['email']) && eregi($email_exp,$_POST['email']))
  9.     {
  10.         /* Si entra aca es porque llego la variable email por post y cumple
  11.         la expresion regular*/
  12.         $email_to           = "[email protected]";
  13.         $email_subject      = "New e-mail subscriber";
  14.         $email_from         = $_POST['email']; // required  
  15.         $error_message      = "";    
  16.         $email_message = "Detalles del formulario debajo.\n\n";
  17.        
  18.         /* Aca clean_string, no hace falta sino no huviera pasado la expresion regular*/
  19.         //$email_message .= "Email: ".clean_string($email_from)."\n";
  20.         $email_message .= "Email: ".$email_from."\n";
  21.         // create email headers
  22.         $headers = 'From: '.$email_from."\r\n".
  23.         'Reply-To: '.$email_from."\r\n" .
  24.         'X-Mailer: PHP/' . phpversion();
  25.         @mail($email_to, $email_subject, $email_message, $headers);
  26.         echo "Gracias por contactarnos. Te mantendremos informado muy pronto.";    
  27.     }
  28.     else
  29.     {
  30.       $error_message = 'Mail invalido';
  31.     }      
  32. }
  33. if($error_message != "" )
  34. {
  35.     /* Aca pone tu formulario html y en el atributo action del formulario pone esta pagina*/
  36. }

Espero sirva, saludos.
__________________
http://www.latinium.com.ar/

Etiquetas: suscripcion
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 03:50.