Foros del Web » Programando para Internet » PHP »

Formulario php

Estas en el tema de Formulario php en el foro de PHP en Foros del Web. Hise mi formulario php asi y no me funciona: Contacto.html Código PHP: < form id = "form1"  name = "form1"  method = "post"  action = "enviar.php" ...
  #1 (permalink)  
Antiguo 16/02/2010, 10:10
 
Fecha de Ingreso: enero-2010
Mensajes: 400
Antigüedad: 14 años, 3 meses
Puntos: 6
Formulario php

Hise mi formulario php asi y no me funciona:

Contacto.html

Código PHP:
<form id="form1" name="form1" method="post" action="enviar.php">
<
p>Nombre:<br />
<
label>
<
input name="nombre" type="text" id="nombre" />
</
label>
<
br />
Telefono:<br />
<
input name="telefono" type="text" id="telefono" />
<
br />
Email:<br />
<
input name="email" type="text" id="email" />
<
br />
Mensaje:<br />
<
textarea name="mensaje" id="mensaje"></textarea>
<
br />
<
label>
<
input type="submit" name="Submit" value="Enviar Formulario" />
</
label>
</
p>
</
form
enviar.php

Código PHP:
<?php

$mail
='[email protected]';


$nombre $_POST['nombre'];
$telefono $_POST['telefono'];
$email $_POST['email'];
$mensaje $_POST['mensaje'];

$thank="gracias.html";

$message "
nombre:"
.$nombre."
telefono:"
.$telefono."
email:"
.$email."
mensaje:"
.$mensaje."";

if (
mail($mail,"Formulario de Consulta",$message))
Header ("Location: $thank" );

?>
Y cuando lo pruebo me sale este error:

enviar.php
Warning: Cannot modify header information - headers already sent by (output started at /home/midominio/public_html/sistema/enviar.php:10) in /home/midominio/public_html/sistema/enviar.php on line 29


CUAL ES EL PROBLEMA ??
  #2 (permalink)  
Antiguo 16/02/2010, 10:15
 
Fecha de Ingreso: febrero-2010
Mensajes: 818
Antigüedad: 14 años, 2 meses
Puntos: 55
Respuesta: Formulario php

el problema es el header.

seguramente tienes codigo html antes.
  #3 (permalink)  
Antiguo 16/02/2010, 10:17
 
Fecha de Ingreso: enero-2010
Mensajes: 400
Antigüedad: 14 años, 3 meses
Puntos: 6
Respuesta: Formulario php

No entiendo como que el header ? Me podrias ayudar a solucionarlo ?
  #4 (permalink)  
Antiguo 16/02/2010, 10:23
 
Fecha de Ingreso: febrero-2010
Mensajes: 818
Antigüedad: 14 años, 2 meses
Puntos: 55
Respuesta: Formulario php

en el archivo enviar.php borra todo el codigo html que tengas.
  #5 (permalink)  
Antiguo 16/02/2010, 10:28
 
Fecha de Ingreso: enero-2010
Mensajes: 400
Antigüedad: 14 años, 3 meses
Puntos: 6
Respuesta: Formulario php

Listo el codigo lo deje asi al PHP:

<?php

$mail='[email protected]';


$nombre = $_POST['nombre'];
$telefono = $_POST['telefono'];
$email = $_POST['email'];
$mensaje = $_POST['mensaje'];

$thank="gracias.html";

$message = "
nombre:".$nombre."
telefono:".$telefono."
email:".$email."
mensaje:".$mensaje."";

if (mail($mail,"Formulario de Consulta",$message))
Header ("Location: $thank" );

?>

Sin nada mas

Directamente me lleva a gracias.html esta bien eso ?

y el mensaje no llega, o tengo que esperar un rato ??
  #6 (permalink)  
Antiguo 16/02/2010, 10:34
 
Fecha de Ingreso: febrero-2010
Mensajes: 818
Antigüedad: 14 años, 2 meses
Puntos: 55
Respuesta: Formulario php

desde donde estas ejecutando el codigo ?
si lo tienes local tienes que configurar el servidor de correo.
  #7 (permalink)  
Antiguo 16/02/2010, 10:37
 
Fecha de Ingreso: enero-2010
Mensajes: 400
Antigüedad: 14 años, 3 meses
Puntos: 6
Respuesta: Formulario php

Lo estoy ejecutando desde mi servidor ftp.
No se que hacer :/
  #8 (permalink)  
Antiguo 16/02/2010, 12:28
Avatar de Gulinaidas  
Fecha de Ingreso: febrero-2010
Ubicación: La Plata, ARG
Mensajes: 88
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: Formulario php

Como t dijieron anteriormente, si tnes HTML antes, el header no t va a funcionar....podrias redirigir al usuario con un JavaScript....asi:

Código PHP:
<?php

$mail
='[email protected]';


$nombre $_POST['nombre'];
$telefono $_POST['telefono'];
$email $_POST['email'];
$mensaje $_POST['mensaje'];

$thank="gracias.html";

$message "
nombre:"
.$nombre."
telefono:"
.$telefono."
email:"
.$email."
mensaje:"
.$mensaje."";

if (
mail($mail,"Formulario de Consulta",$message))
{
?>

<script type="text/javascript"> 
    window.location="../DirectorioX/<?php echo $thank?>"; 
</script>

<?php
}
?>
Saludos...
  #9 (permalink)  
Antiguo 16/02/2010, 17:58
 
Fecha de Ingreso: enero-2010
Mensajes: 400
Antigüedad: 14 años, 3 meses
Puntos: 6
Respuesta: Formulario php

Pongo el codigo php que me decis en enviar.php

Código PHP:
<?php

$mail
='[email protected]';


$nombre $_POST['nombre'];
$telefono $_POST['telefono'];
$email $_POST['email'];
$mensaje $_POST['mensaje'];

$thank="gracias.html";

$message "
nombre:"
.$nombre."
telefono:"
.$telefono."
email:"
.$email."
mensaje:"
.$mensaje."";

if (
mail($mail,"Formulario de Consulta",$message))
{
?>

<script type="text/javascript"> 
    window.location="../DirectorioX/<?php echo $thank?>"; 
</script>

<?php
}
?>
Me envia a la página de gracias todo...
Pero el mensaje nunca llega :S

NO SE CUAL ES MI FALLA ? :S
  #10 (permalink)  
Antiguo 16/02/2010, 19:28
 
Fecha de Ingreso: febrero-2010
Mensajes: 818
Antigüedad: 14 años, 2 meses
Puntos: 55
Respuesta: Formulario php

Cita:
Iniciado por bbrian Ver Mensaje
Necesito ayuda urgente !

Nota: Para el envío de correo mediante PHP es necesario que este disponga de una correcta configuración.

Si nuestro web está en un servidor de un proveedor de hosting seguramente ya hayan configurado PHP para el envío de mails. Si estamos trabajando en un servidor propio, sí tendremos que configurar PHP.

PHP se configura en el archivo php.ini, donde debemos especificar datos como el servidor de correo saliente que debe de utilizar PHP para transferir los mensajes.

Dentro del php.ini, debemos buscar el epígrafe [mail function]. Dependiendo de nuestro sistema deberemos configurar de una manera u otra.

En sistemas Windows encontraremos el php.ini en el directorio windows o dentro de este, en el subdirectorio system32 o similar. En este sistema deberemos indicar el dominio del servidor de smtp, algo como smtp.midominio.com. Si es el ordenador local el que hace de servidor, podremos poner "localhost" como máquina que enviará el correo. También podemos especificar la dirección desde donde queremos que parezca que se envía el mensaje en caso de que no se indique otra durante el envío.
  #11 (permalink)  
Antiguo 16/02/2010, 19:38
Avatar de Gulinaidas  
Fecha de Ingreso: febrero-2010
Ubicación: La Plata, ARG
Mensajes: 88
Antigüedad: 14 años, 2 meses
Puntos: 1
De acuerdo Respuesta: Formulario php

Fijate con PHPMailer, es otra forma de enviar mail...yo la uso y anda de 10....por ej:

Código PHP:

$nombre = $_POST['nombre'];
$telefono = $_POST['telefono'];
$email = $_POST['email'];
$mensaje = $_POST['mensaje'];

$thank="gracias.html"; 

require("../Recursos/PHPMailer_v2.0.4/class.phpmailer.php");
    
            $mail = new PHPMailer();
            
            $mail->IsSMTP();
            $mail->SMTPAuth = true;
            $mail->Host = "smtp.xxx.com"; // SMTP a utilizar. Por ej. smtp.elserver.com
            $mail->Username = "[email protected]"; // Correo completo a utilizar
            $mail->Password = "123123"; // Contraseña
            $mail->Port = 2525; // Puerto a utilizar
            
            $mail->From = "[email protected]";
            $mail->FromName = "ADMIN";
            
            $mail->AddAddress($mailDireccion); // Esta es la dirección a donde enviamos
            $mail->IsHTML(true); // El correo se envía como HTML
            $mail->Subject = "TITULO"; // Este es el titulo del email.
            $body = "<h2>WELCOME</h2><br /><br /> Nombre:" . $nombre . "<br>Telefono:" . $telefono . "<br>Mail:" . $mail;
            
            $mail->Body = $body; // Mensaje a enviar
            
            $exito = $mail->Send(); // Envía el correo  

if($exito == true)
{
     ?>

<script type="text/javascript"> 
    window.location="../DirectorioX/<?php echo $thank?>"; 
</script> 


     <?php
}
     
?>
Probalo y me decis....Saludos
  #12 (permalink)  
Antiguo 16/02/2010, 19:39
Avatar de Gulinaidas  
Fecha de Ingreso: febrero-2010
Ubicación: La Plata, ARG
Mensajes: 88
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: Formulario php

Tenes q descargar la clase PHPMailer.....googlealo q esta.... suerte
  #13 (permalink)  
Antiguo 16/02/2010, 20:51
 
Fecha de Ingreso: mayo-2006
Mensajes: 15
Antigüedad: 18 años
Puntos: 0
Respuesta: Formulario php

el error Warning: Cannot modify header information - headers already send ..... por lo general da cuando se ha escrito algo en la pagina antes de usar la funcion header() de php
Trata de revisar esto con salidas echo o html que puedan mostrarse antes de la funcion header().
  #14 (permalink)  
Antiguo 16/02/2010, 22:01
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 652
Antigüedad: 19 años, 5 meses
Puntos: 6
Respuesta: Formulario php

Prueba con esto, en solo formulario

Código PHP:

<?php
if ($_POST["email"]<>'') { 
    
$TuEmail '[email protected]'// Correo del dueño de la pagina
    
$Asunto 'Formulario de contacto de la web'
    
$headers "From: ".$_POST["email"]."\n\n"
    
$headers .= "Responder a: ".$_POST["email"]."\n\n"// Una copia al cliente
    
$headers .= "Content-type: text/html; charset=iso-8859-1\n"
    
$message "Nombre: ".$_POST["nombre"]." \n"
    
$message .= "Email: ".$_POST["email"]." \n"
    
$message .= "mensaje: ".$_POST["mensaje"]." \n\n";
    
$message .= "telefono: ".$_POST["telefono"]." \n\n";
    
mail($TuEmail$Asunto$message$headers) or die ("Error al enviar"); 
   
?>     <center>Gracias bla bla...</center>    
    <?  } else {   ?> 

<form id="form1" name="form1" method="post" action="enviar.php">
<p>Nombre:<br />
<label>
<input name="nombre" type="text" id="nombre" />
</label>
<br />
Telefono:<br />
<input name="telefono" type="text" id="telefono" />
<br />
Email:<br />
<input name="email" type="text" id="email" />
<br />
Mensaje:<br />
<textarea name="mensaje" id="mensaje"></textarea>
<br />
<label>
<input type="submit" name="Submit" value="Enviar Formulario" />
</label>
</p>
</form>
  #15 (permalink)  
Antiguo 17/02/2010, 11:20
 
Fecha de Ingreso: enero-2010
Mensajes: 400
Antigüedad: 14 años, 3 meses
Puntos: 6
Respuesta: Formulario php

Ahi baje el phpmailer-gmail.

Tengo los archivos:

class.phpmailer.php
class.pop3.php
class.smtp.php
index.php

Pero no tengo idea como usarlo, alguno me podria explicar ????
  #16 (permalink)  
Antiguo 17/02/2010, 11:40
 
Fecha de Ingreso: enero-2010
Mensajes: 400
Antigüedad: 14 años, 3 meses
Puntos: 6
Respuesta: Formulario php

Listo !

Lo pude hacer andar :D

Con este codigo:

<?php
include("class.phpmailer.php");
include("class.smtp.php");

$mail = new PHPMailer();
$mail->IsSMTP();
$mail->SMTPAuth = true;
$mail->SMTPSecure = "ssl";
$mail->Host = "smtp.gmail.com";
$mail->Port = 465;
$mail->Username = "[email protected]";
$mail->Password = "365298";

$mail->From = "[email protected]";
$mail->FromName = "User Name";
$mail->Subject = "Subject del Email";
$mail->AltBody = "Hola, te doy mi nuevo numero\nxxxx.";
$mail->MsgHTML("Hola, te doy mi nuevo numero<br><b>xxxx</b>.");
$mail->AddAttachment("files/files.zip");
$mail->AddAttachment("files/img03.jpg");
$mail->AddAddress("[email protected]", "Destinatario");
$mail->IsHTML(true);

if(!$mail->Send()) {
echo "Error: " . $mail->ErrorInfo;
} else {
echo "Mensaje enviado correctamente";
}
?>

El problema es que no llega lo que escribo llega esto.

$mail->FromName = "User Name";
$mail->Subject = "Subject del Email";
$mail->AltBody = "Hola, te doy mi nuevo numero\nxxxx.";
$mail->MsgHTML("Hola, te doy mi nuevo numero<br><b>xxxx</b>.");
$mail->AddAttachment("files/files.zip");
$mail->AddAttachment("files/img03.jpg");

Digamos llega lo que dice:

Hola, te doy mi nuevo numero
xxxx.

Esos datos :S

Como lo comunico con el html asi llega lo que escriben ??

Última edición por bbrian; 17/02/2010 a las 11:52

Etiquetas: formulario
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 16:29.