Foros del Web » Programando para Internet » PHP »

Problema con formulario, no envia nada

Estas en el tema de Problema con formulario, no envia nada en el foro de PHP en Foros del Web. este es el archivo contact.php Cita: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Email Form </title> <style type="text/css"> <!-- body { background-image: url(backgr.jpg); } --> ...
  #1 (permalink)  
Antiguo 09/05/2006, 21:32
Avatar de causita  
Fecha de Ingreso: mayo-2002
Ubicación: Lima-Perú
Mensajes: 2.025
Antigüedad: 15 años, 6 meses
Puntos: 8
Problema con formulario, no envia nada

este es el archivo contact.php
Cita:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Email Form </title>
<style type="text/css">
<!--
body {
background-image: url(backgr.jpg);
}
-->
</style></head>
<body>

<form method="post" action="sendeail.php">

<!-- DO NOT change ANY of the php sections -->
<?php
$ipi = getenv("REMOTE_ADDR");
$httprefi = getenv ("HTTP_REFERER");
$httpagenti = getenv ("HTTP_USER_AGENT");
?>

<input type="hidden" name="ip" value="<?php echo $ipi ?>" />
<input type="hidden" name="httpref" value="<?php echo $httprefi ?>" />
<input type="hidden" name="httpagent" value="<?php echo $httpagenti ?>" />


Your Name: <br />
<input type="text" name="visitor" size="35" />
<br />
Your Email:<br />
<input type="text" name="visitormail" size="35" />
<br />
<br />
<br />
Attention:<br />
<select name="attn" size="1">
<option value=" Sales n Billing ">Sales n Billing </option>
<option value=" General Support ">General Support </option>
<option value=" Technical Support ">Technical Support </option>
<option value=" Webmaster ">Webmaster </option>
</select>
<br />
<br />
Mail Message:
<br />
<textarea name="notes" rows="4" cols="40"></textarea>
<br />
<input type="submit" value="Send Mail" />
<br />
</form>

</body>
</html>
y este el sendeail.php
Cita:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Sendemail Script</title>
</head>
<body>

<!-- Reminder: Add the link for the 'next page' (at the bottom) -->
<!-- Reminder: Change 'YourEmail' to Your real email -->

<?php
if(!$visitormail == "" && (!strstr($visitormail,"@") || !strstr($visitormail,".")))
{
echo "<h2>Use Back - Enter valid e-mail</h2>\n";
$badinput = "<h2>Feedback was NOT submitted</h2>\n";
}
if(empty($visitor) || empty($visitormail) || empty($notes )) {
echo "<h2>Use Back - fill in all fields</h2>\n";
}
echo $badinput;

$todayis = date("l, F j, Y, g:i a") ;

$attn = $attn ;
$subject = $attn;

$notes = stripcslashes($notes);

$message = " $todayis [EST] \n
Attention: $attn \n
Message: $notes \n
From: $visitor ($visitormail)\n
Additional Info : IP = $ip \n
Browser Info: $httpagent \n
Referral : $httpref \n
";

$from = "From: $visitormail\r\n";


mail("[email protected]", $subject, $message, $from);

?>

<p align="center">
Date: <?php echo $todayis ?>
<br />
Thank You : <?php echo $visitor ?> ( <?php echo $visitormail ?> )
<br />

Attention: <?php echo $attn ?>
<br />
Message:<br />
<?php $notesout = str_replace("\r", "<br/>", $notes);
echo $notesout; ?>
<br />
<?php echo $ip ?>

<br /><br />
<a href="../news/index.html"> Next Page </a>
</p>

</body>
</html>
alguien q me diga xq no llega nada? gracias

el fomulario esta en CONTACT d esta web
__________________
|| no hay pregunta tonta....lo q hay son tontos q no preguntan || d-.-b

El Causita
  #2 (permalink)  
Antiguo 09/05/2006, 21:50
Avatar de emiliodeg  
Fecha de Ingreso: septiembre-2005
Ubicación: Córdoba
Mensajes: 1.830
Antigüedad: 12 años, 3 meses
Puntos: 54
para recibir los datos cargados en el formulario debes utilizar $_POST[], por ejemplo el email llegaria a $_POST['visitormail']
saludos
  #3 (permalink)  
Antiguo 09/05/2006, 22:05
Avatar de causita  
Fecha de Ingreso: mayo-2002
Ubicación: Lima-Perú
Mensajes: 2.025
Antigüedad: 15 años, 6 meses
Puntos: 8
donde pongo eso? no se nada de PHP....

el codigo original está aca
gracias
__________________
|| no hay pregunta tonta....lo q hay son tontos q no preguntan || d-.-b

El Causita
  #4 (permalink)  
Antiguo 09/05/2006, 22:15
Avatar de causita  
Fecha de Ingreso: mayo-2002
Ubicación: Lima-Perú
Mensajes: 2.025
Antigüedad: 15 años, 6 meses
Puntos: 8
ya vi xq creo q no envia, es x el "safe_mode", está en ON, y db estar en OFF.

Sgun lo q entiendo es q me piden q agregue esto
Cita:
Add this code at the top of sendeail.php:

<?php
$ip = $_POST['ip'];
$httpref = $_POST['httpref'];
$httpagent = $_POST['httpagent'];
$visitor = $_POST['visitor'];
$visitormail = $_POST['visitormail'];
$notes = $_POST['notes'];
$attn = $_POST['attn'];
?>
al codigo de sendeail.php pero no se dnd ponerlo o alguna manera de poder hacerlo?
__________________
|| no hay pregunta tonta....lo q hay son tontos q no preguntan || d-.-b

El Causita
  #5 (permalink)  
Antiguo 09/05/2006, 23:09
Avatar de emiliodeg  
Fecha de Ingreso: septiembre-2005
Ubicación: Córdoba
Mensajes: 1.830
Antigüedad: 12 años, 3 meses
Puntos: 54
claro!!! es facil tu formulario lo vas a enviar por method="post" y viajaran los datos hasta action="sendeail.php"
entonces en sendeail.php
tenes q trabajar con las variables $_POST porque usaste method post, cuando usas method="get" (osea q las variables se pasan por la barra de direccion) las recibirias con $_GET[] de ls misma forma q con el post

te corrigo una parte del sendeail.php para q te des cuenta
Código PHP:
<?php
//cambiar esta linea
if(!$visitormail == "" && (!strstr($visitormail,"@") || !strstr($visitormail,"."))) 
//por esta otra
if($_POST['visitormail']!="" && (!strstr($_POST['visitormail'],"@") || !strstr($_POST['visitormail'],"."))) 

{
echo 
"<h2>Use Back - Enter valid e-mail</h2>\n"
$badinput "<h2>Feedback was NOT submitted</h2>\n";
}
//cambiar esta linea
if(empty($visitor) || empty($visitormail) || empty($notes )) {
//por esta otra
if(empty($_POST['visitor']) || empty($_POST['visitormail']) || empty($_POST['notes'] )) {
echo 
"<h2>Use Back - fill in all fields</h2>\n";
}
echo 
$badinput;

$todayis date("l, F j, Y, g:i a") ;

?>
ves como voy cambiando las variables $visitor por $_POST['visitor'] y asi sucecivamente las vas cambiando
espero se entienda saludos
  #6 (permalink)  
Antiguo 10/05/2006, 10:32
Avatar de causita  
Fecha de Ingreso: mayo-2002
Ubicación: Lima-Perú
Mensajes: 2.025
Antigüedad: 15 años, 6 meses
Puntos: 8
a ver si t comprendí bien, cdo me dices $visitor tambien comprende los $visitormail, verdad? osea ambos los cambio por $_POST['visitor'], es asi? Hago ese cambio en todo el archivo sendeail.php?

Ahora con respecto al "safe_mode", con los cambios q me has dicho podrán llegar los mensajes?

Otra cosita
Cita:
<?php
//cambiar esta linea
if(!$visitormail == "" && (!strstr($visitormail,"@") || !strstr($visitormail,".")))
//por esta otra
if($_POST['visitormail']!="" && (!strstr($_POST['visitormail'],"@") || !strstr($_POST['visitormail'],".")))
el ! en el original está delante del $visitormail, pero en el tu me dices q coloque está al finalizar $_POST['visitormail'], no deberia ser asi -> !$_POST['visitormail']= ??
__________________
|| no hay pregunta tonta....lo q hay son tontos q no preguntan || d-.-b

El Causita

Última edición por causita; 10/05/2006 a las 10:38
  #7 (permalink)  
Antiguo 10/05/2006, 10:51
Avatar de Mirovita  
Fecha de Ingreso: febrero-2005
Ubicación: Caracas-Venezuela
Mensajes: 840
Antigüedad: 12 años, 9 meses
Puntos: 10
la funcion sendial deberia quedar algo asi:

Código PHP:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Sendemail Script</title>
</head>
<body>

<!-- Reminder: Add the link for the 'next page' (at the bottom) --> 
<!-- Reminder: Change 'YourEmail' to Your real email --> 

<?php

$ip 
$_POST['ip']; 
$httpref $_POST['httpref']; 
$httpagent $_POST['httpagent']; 
$visitor $_POST['visitor']; 
$visitormail $_POST['visitormail']; 
$notes $_POST['notes'];
$attn $_POST['attn'];



if(!
$visitormail == "" && (!strstr($visitormail,"@") || !strstr($visitormail,"."))) 
{
echo 
"<h2>Use Back - Enter valid e-mail</h2>\n"
$badinput "<h2>Feedback was NOT submitted</h2>\n";
}
if(empty(
$visitor) || empty($visitormail) || empty($notes )) {
echo 
"<h2>Use Back - fill in all fields</h2>\n";
}


$todayis date("l, F j, Y, g:i a") ;

$attn $attn 
$subject $attn

$notes stripcslashes($notes); 

$message " $todayis [EST] \n
Attention: $attn \n
Message: $notes \n 
From: $visitor ($visitormail)\n
Additional Info : IP = $ip \n
Browser Info: $httpagent \n
Referral : $httpref \n
"
;

$from "From: $visitormail\r\n";


mail("[email protected]"$subject$message$from);

?>

<p align="center">
Date: <?php echo $todayis ?> 
<br />
Thank You : <?php echo $visitor ?> ( <?php echo $visitormail ?> ) 
<br />

Attention: <?php echo $attn ?>
<br /> 
Message:<br /> 
<?php $notesout str_replace("\r""<br/>"$notes); 
echo 
$notesout?> 
<br />
<?php echo $ip ?> 

<br /><br />
<a href="../news/index.html"> Next Page </a> 
</p> 

</body>
</html>
__________________
.-._.-. [email protected]_.-.

Última edición por Mirovita; 10/05/2006 a las 11:01
  #8 (permalink)  
Antiguo 10/05/2006, 11:27
Avatar de causita  
Fecha de Ingreso: mayo-2002
Ubicación: Lima-Perú
Mensajes: 2.025
Antigüedad: 15 años, 6 meses
Puntos: 8
ya lo vi..., lo probé con Mirovita y resulta q el tema va x el host. El host dnd tengo la web tiene el SAFE MODE ON, lo cual no deja enviar el mail. Los datos si se imprimen.

alguna sugerencia para poder enviar el mail??
__________________
|| no hay pregunta tonta....lo q hay son tontos q no preguntan || d-.-b

El Causita

Última edición por causita; 10/05/2006 a las 11:38
  #9 (permalink)  
Antiguo 11/05/2006, 07:37
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
Iniciado por causita
ya lo vi..., lo probé con Mirovita y resulta q el tema va x el host. El host dnd tengo la web tiene el SAFE MODE ON, lo cual no deja enviar el mail. Los datos si se imprimen.

alguna sugerencia para poder enviar el mail??
Que un servidor en concreto use "safe mode" (modo seguro) no implica que no pueda usar mail() .. Eso sería otro tipo de restricción de tu proveedor, ya sea que NO permitan usar sus própios MTA's (configurando su php.ini para que lo pueda usar mail()) o por qué lo bloqueen a nivel del MTA en si el envio de un e-mail.

Pordrías consultar con tu proveedor esta situación (o usas un servicio de hosting gratuito?).

Podrías también probar a usar tus própios servidores SMTP (el de alguna cuenta SMTP/POP que puedas usar) con la classe:

PHPMailer
http://phpmailer.sourceforge.net

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #10 (permalink)  
Antiguo 12/05/2006, 12:55
Avatar de causita  
Fecha de Ingreso: mayo-2002
Ubicación: Lima-Perú
Mensajes: 2.025
Antigüedad: 15 años, 6 meses
Puntos: 8
si, uso un servicio gratuito (Pandela.com). en caso esté "bloqueada" de alguna manera la opción de enviar mails...q otra opción podría usar?

1- hablar con Pandela para ver si me lo pdn activar?
2- usar otro código? cual?

gracias
__________________
|| no hay pregunta tonta....lo q hay son tontos q no preguntan || d-.-b

El Causita
  #11 (permalink)  
Antiguo 12/05/2006, 13:05
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
Iniciado por causita
si, uso un servicio gratuito (Pandela.com). en caso esté "bloqueada" de alguna manera la opción de enviar mails...q otra opción podría usar?

1- hablar con Pandela para ver si me lo pdn activar?
2- usar otro código? cual?

gracias
Puedes probar PHP Mailer (el link que dejé). Para usar "PHP Mailer" necesitas tener una cuenta de correo tipo SMTP/POP (no sirven "hotmail" ni webmails en general ... o por lo menos aunque tengas y uses preferentemten un acceso por webmail .. la cuenta de e-mail debe tener permiso para acceso por SMTP (para enviar) al menos).

Si dices usar un servicio de hosting gratuito es muy probable también que no te funcione "PHP Mailer" .. entre otras cosas por qué PHP Mailer usa "sockets" y eso mismo también suelen bloquear estos proveedores de hosting gratuito.

Sobre la propuesta que haces del punto 1 .. podrías consultarlo .. pero si dicha función la tienen desactivada es por algo (el uso del e-mail se presta para mucho y consume bastantes recursos del servidor).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 15:28.