Foros del Web » Programando para Internet » PHP »

Formulario en PHP

Estas en el tema de Formulario en PHP en el foro de PHP en Foros del Web. Hola a todos, como andan? Tengo un formulario de contacto en php con validación ajax y me gustaría agregar la opción "Cliquee aquí si desea ...
  #1 (permalink)  
Antiguo 09/04/2009, 11:21
 
Fecha de Ingreso: febrero-2009
Mensajes: 193
Antigüedad: 15 años, 2 meses
Puntos: 3
Formulario en PHP

Hola a todos, como andan?

Tengo un formulario de contacto en php con validación ajax y me gustaría agregar la opción "Cliquee aquí si desea recibir una copia de este email".

El archivo send.php que utilizo actualmente es el siguiente:

Código HTML:
<?php
	error_reporting(E_NOTICE);

	function valid_email($str)
	{
		return ( ! preg_match("/^([a-z0-9\+_\-]+)(\.[a-z0-9\+_\-]+)*@([a-z0-9\-]+\.)+[a-z]{2,6}$/ix", $str)) ? FALSE : TRUE;
	}

	if($_POST['nombres']!='' && $_POST['empresa']!=''  && $_POST['telefono']!=''    && $_POST['email']!='' && valid_email($_POST['email'])==TRUE && strlen($_POST['message'])>10)
	{
   		$to = '[email protected]';
		$headers = 	'From: '.$_POST['email'].''. "\r\n" .
				'Reply-To: '.$_POST['email'].'' . "\r\n" .
				'X-Mailer: PHP/' . phpversion();
		$subject = "Consulta";
		$message =
"Mensaje:" . " " . htmlspecialchars($_POST['message'])   
. "\r\n" . "Nombre y apellido:" . " " . htmlspecialchars($_POST['nombres'])
. "\r\n" . "Direccion:" . " " . htmlspecialchars($_POST['empresa'])
. "\r\n" . "Codigo postal:" . " " . htmlspecialchars($_POST['telefono'])
. "\r\n" . "E-mail:" . " " . htmlspecialchars($_POST['email'] );
		
		if(mail($to, $subject, $message, $headers))
		{//we show the good guy only in one case and the bad one for the rest.
			echo '<p style="color:green;">Gracias '.$_POST['nombres'].'. Su consulta fue enviada.</p>';
		}
		else {
     			echo "<p>Message not sent. Please make sure you're not
				running this on localhost and also that you 
				are allowed to run mail() function from your webserver</p>";
		}
	}
	else {
		echo '<p style="color:red;">Por favor, asegúrese de que completó todos los campos requeridos y que ingresó un email válido.</p>';
	}
?> 
Alguien me podría dar una mano?

Muchas gracias a todos!!
  #2 (permalink)  
Antiguo 09/04/2009, 14:10
Avatar de ACX_POISON  
Fecha de Ingreso: abril-2008
Ubicación: Talca-Chile
Mensajes: 750
Antigüedad: 16 años
Puntos: 7
Respuesta: Formulario en PHP

debes hacer una condicion segun el estado de un checkbox por ejemplo que le añada a la cabecera del mensaje:

mira cabeceras
__________________
Me junto con los que Saben, Queriendo Saber.
  #3 (permalink)  
Antiguo 09/04/2009, 16:54
 
Fecha de Ingreso: febrero-2009
Mensajes: 193
Antigüedad: 15 años, 2 meses
Puntos: 3
Respuesta: Formulario en PHP

Hola ACX_POISON!!

Buenísimo de cabeceras. Como hago el condicional? Intenté de muchas maneras pero no me sale

Muchas gracias!!
  #4 (permalink)  
Antiguo 12/04/2009, 16:08
 
Fecha de Ingreso: febrero-2009
Mensajes: 193
Antigüedad: 15 años, 2 meses
Puntos: 3
Respuesta: Formulario en PHP

Alguien que me pueda dar una mano? No tengo mucha idea de php

Gracias a todos!!!
  #5 (permalink)  
Antiguo 12/04/2009, 17:38
 
Fecha de Ingreso: enero-2008
Ubicación: Estado de México, México
Mensajes: 476
Antigüedad: 16 años, 3 meses
Puntos: 11
Respuesta: Formulario en PHP

pues no screo que tengas que hacer una comparacion si no solo poner la funcion de la copia para que en cuanto te se envie el mensaje por igual se mande la copia. porque si hay errores pues no se mandara ni el mail ni la copia.
  #6 (permalink)  
Antiguo 12/04/2009, 17:43
Avatar de Kenichi  
Fecha de Ingreso: enero-2009
Ubicación: Rosario, Argentina
Mensajes: 160
Antigüedad: 15 años, 3 meses
Puntos: 6
Respuesta: Formulario en PHP

Hola, puedes intentar lo siguiente:

Primero añade a tu formulario un checkbox con el nombre de "remail" o con cualquier otro, de esta forma: <input type="checkbox" name="remail">

Segundo, edita tu codigo php para que quede asi:

Código PHP:
<?php
    error_reporting
(E_NOTICE);

    function 
valid_email($str)
    {
        return ( ! 
preg_match("/^([a-z0-9\+_\-]+)(\.[a-z0-9\+_\-]+)*@([a-z0-9\-]+\.)+[a-z]{2,6}$/ix"$str)) ? FALSE TRUE;
    }

    if (
$_POST['nombres']!='' && $_POST['empresa']!=''  && $_POST['telefono']!=''    && $_POST['email']!='' && valid_email($_POST['email']) && strlen($_POST['message'])>10)
    {
           
$to '[email protected]';
        
$headers =     'From: '.$_POST['email'].''"\r\n" .
                
'Reply-To: '.$_POST['email'].'' "\r\n" .
                
'X-Mailer: PHP/' phpversion();
        
$subject "Consulta";
        
$message =
"Mensaje:" " " htmlspecialchars($_POST['message'])   
"\r\n" "Nombre y apellido:" " " htmlspecialchars($_POST['nombres'])
"\r\n" "Direccion:" " " htmlspecialchars($_POST['empresa'])
"\r\n" "Codigo postal:" " " htmlspecialchars($_POST['telefono'])
"\r\n" "E-mail:" " " htmlspecialchars($_POST['email'] );
        
        if (
mail($to$subject$message$headers))
        {
                  if (isset(
$_POST['remail']))
                  {
                   if (
mail($_POST['email'],$subject,$message,$headers))
                    {
                     echo 
'<p style="color:green;">Gracias '.$_POST['nombres'].'. Su consulta fue enviada.</p>';
                    }
                    else {
                 echo 
"<p>Message not sent. Please make sure you're not
                running this on localhost and also that you 
                are allowed to run mail() function from your webserver</p>"
;
            }
                  }
                   else
                   {
            echo 
'<p style="color:green;">Gracias '.$_POST['nombres'].'. Su consulta fue enviada.</p>';
                    }
        }
        else {
                 echo 
"<p>Message not sent. Please make sure you're not
                running this on localhost and also that you 
                are allowed to run mail() function from your webserver</p>"
;
        }
    }
    else {
        echo 
'<p style="color:red;">Por favor, asegúrese de que completó todos los campos requeridos y que ingresó un email válido.</p>';
    }
?>
Recuerda, si cambias el nombre al checkbox de "remail" a otro, tambien hazlo en el codigo php donde dice $_POST['remail'].
Saludos, espero que te funcione ;)
  #7 (permalink)  
Antiguo 12/04/2009, 21:49
 
Fecha de Ingreso: febrero-2009
Mensajes: 193
Antigüedad: 15 años, 2 meses
Puntos: 3
Respuesta: Formulario en PHP

Funciona a la perfección KENICHI. Muchas gracias por tu tiempo.

Saludos,
Margancia!!
  #8 (permalink)  
Antiguo 19/04/2009, 13:23
Avatar de Kenichi  
Fecha de Ingreso: enero-2009
Ubicación: Rosario, Argentina
Mensajes: 160
Antigüedad: 15 años, 3 meses
Puntos: 6
Respuesta: Formulario en PHP

De nada margancia, saludos. ;)
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 05:37.