Foros del Web » Programando para Internet » PHP »

formulario php para web no funciona

Estas en el tema de formulario php para web no funciona en el foro de PHP en Foros del Web. Hola! tengo en mi sitio un formulario q usa un script php (envia.php) para enviarme a mi correo los datos de dicho formulario. PROBLEMA: al ...
  #1 (permalink)  
Antiguo 24/11/2009, 08:23
 
Fecha de Ingreso: noviembre-2009
Mensajes: 7
Antigüedad: 14 años, 5 meses
Puntos: 0
formulario php para web no funciona

Hola!

tengo en mi sitio un formulario q usa un script php (envia.php) para enviarme a mi correo los datos de dicho formulario.

PROBLEMA:
al presionar el boton énviar del formulario, me aparece midominio/envia.php en el navegador y la pagina en blanco. ni envia los datos a mi correo ni aparece la pagina de confirmacion.

q puede estar pasando?

YA VERIFIQUE:
EN mi pagina de contacto: <form action="envia.php" method='post'....

Y el código de envia.php es el siguente:

(lo estoy usando en la misma pagina para suscribirse a un boletin y funciona ahi perfecto!!)

<?php
$usersmtp ="mail"; // Entre las comillas va una cuenta de correo de su panel de control
$pass="pass"; // Entre las comillas va el password de la cuenta de correo
$destino="mail2"; // Entre las comillas la direccion de correo donde va a recibir los mails

// Se verifica que los datos han sido enviados desde el formulario, para la validaci�n con el SMTP
if ( $_POST['enviar'] == "1")
{
if ( $_POST['nombre'] != "" && $_POST['apellido'] != "" && $_POST['email'] != "" )

{
// Se incluye la librer�a necesaria para el envio
require_once("fzo.mail.php");

$mail = new SMTP("localhost",$usersmtp,$pass);

// Se configuran los parametros necesarios para el env�o
$de = $usersmtp ;
$a = $destino;
$asunto = "E-mail Contacto";
$cc = $_POST['cc'];
$bcc = $_POST['bcc'];


$cuerpo = "Este es un e-mail enviado desde el formulario de contacto web\n\n";
$cuerpo .= "Nombre: " .$_POST['nombre'] . "\n";
$cuerpo .= "Apellido: " .$_POST['apellido'] . "\n";
$cuerpo .= "Direccion: " .$_POST['direccion'] . "\n";
$cuerpo .= "Telefono: " .$_POST['telefono'] . "\n";
$cuerpo .= "Email: " .$_POST['email'] . "\n";
$cuerpo .= "Consulta: " .$_POST['consulta'] . "\n";



$header = $mail->make_header(
$de,
$a,
$asunto,
$_POST['prioridad'],
$cc,
$bcc
);

/*
Pueden definirse m�s encabezados. Tener en cuenta la terminaci�n de la
linea con (\r\n)

$header .= "Reply-To: ".$_POST['from']." \r\n";
$header .= "Content-Type: text/plain; charset=\"iso-8859-1\" \r\n";
$header .= "Content-Transfer-Encoding: 8bit \r\n";
$header .= "MIME-Version: 1.0 \r\n";
*/

// Se envia el correo y se verifica el error
$error = $mail->smtp_send($de, $a, $header, $cuerpo, $cc, $bcc);
if ($error == "0")

header("Location: confirm.html");


else
echo $error;
}
else
{

echo("Complete los campos Requeridos ");
}
}
?>

INFO ADICIONAL: uso el expression web II

desde ya mil gracias si alguien puede ayudarme!!!
  #2 (permalink)  
Antiguo 24/11/2009, 08:47
Avatar de dggluz  
Fecha de Ingreso: abril-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 525
Antigüedad: 15 años
Puntos: 50
Respuesta: formulario php para web no funciona

En el script estás usando una clase llamada "SMTP"... pero, ¿dónde estás incluyéndola?: debe estar faltándote un include o un require. Todo parece indicar que ese es el error. ¡Suerte!
  #3 (permalink)  
Antiguo 24/11/2009, 08:48
Avatar de Fairy_Boy  
Fecha de Ingreso: octubre-2009
Ubicación: Kokiri Forest
Mensajes: 235
Antigüedad: 14 años, 6 meses
Puntos: 5
Respuesta: formulario php para web no funciona

Lo mas provable es, que no este entrando en los if's para ejecutar el envio.
seria bueno que imprimieras las variables que te llegan antes de entrar al primer if
y luego ir depurando tu codigo con unos echos para ver en donde entra y en donde no.
ya que hasta el momento no tienes un mensaje de error o algo parecido.
Saludos!
  #4 (permalink)  
Antiguo 24/11/2009, 08:50
Avatar de jamesjara  
Fecha de Ingreso: mayo-2008
Ubicación: san jose
Mensajes: 449
Antigüedad: 16 años
Puntos: 7
Respuesta: formulario php para web no funciona

ya comprobaste que las variables que pides esten llegando?

modifica tu codigo para encontrar donde es el posible problema

Cita:
echo "web";
// Se verifica que los datos han sido enviados desde el formulario, para la validaci�n con el SMTP
if ( $_POST['enviar'] == "1")
{
echo " variable post enviar resivida ";
if ( $_POST['nombre'] != "" && $_POST['apellido'] != "" && $_POST['email'] != "" )
{
echo " variable post nombre,apellido,email resivida ";
En caso de que no muestre los echo que te puse significa que debe VERIFICAR los nombres de esos campos -> ( enviar=1, nombre, apellido, email ).. seguramente es que tiene algun problema de nombre de la var
__________________
X7CLOUD El webservice latino!
Compatible
con mysql,sql,sqlitte.
Compatible con extjs , sencha , smargwt, Gwt , Jquery , Charts, Streaming.
  #5 (permalink)  
Antiguo 24/11/2009, 08:51
 
Fecha de Ingreso: septiembre-2009
Mensajes: 81
Antigüedad: 14 años, 7 meses
Puntos: 1
Respuesta: formulario php para web no funciona

Creo k es la tercera o cuarta vez k digo esto en los ultimos dos dias... xDD

Para enviar emails desd php lo mejor es usas la clase PHPMailer.

Y te aconsejo k uses siempre brackets {} aunk sea por claridad pk ahora mismo te puedes marear para saber donde empieza un if y donde acaba....

Haz k en envia.php se muestren todas las variables con un echo al principio del codigo y otra ves al final, asi podremos ir descartando si es un problema de envio de variables o esk no realiza bien el envio del mail o k...
tmb puedes kitar el header y poner un echo en su lugar para ver si el codigo llega hasta ahi o k...
  #6 (permalink)  
Antiguo 24/11/2009, 08:55
 
Fecha de Ingreso: junio-2009
Mensajes: 128
Antigüedad: 14 años, 10 meses
Puntos: 5
Respuesta: formulario php para web no funciona

Hola amigo

no te estará faltando definir:

$usersmtp ="mail"; // Entre las comillas va una cuenta de correo de su panel de control
$pass="pass"; // Entre las comillas va el password de la cuenta de correo
$destino="mail2"; // Entre las comillas la direccion de correo donde va a recibir los mails

Estas escribiendo una cuenta de correo valida?

Saludos
__________________
krowmx
Hostings y Dominios
Tú defines la idea, nosotros la desarrollamos
  #7 (permalink)  
Antiguo 24/11/2009, 09:22
 
Fecha de Ingreso: noviembre-2009
Mensajes: 7
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: formulario php para web no funciona

Gente.. son todos tan amables!

se me paso decirles que el script me lo dio ya hecho mi empresa de hosting, no lo hice yo xq no se programar en php. no me odien, por esto :)

dado q lo probe en la suscripcion para mi boletin, y funciona perfecto
entiendo q no tendra que ver con el código del mismo o los ifs...

por supuesto q lo uso con mi mail y mis pass.

pero nada.. alguna otra idea q se les ocurra q pueda estar provocando el error?


mil gracias!!
  #8 (permalink)  
Antiguo 24/11/2009, 09:32
Avatar de Fairy_Boy  
Fecha de Ingreso: octubre-2009
Ubicación: Kokiri Forest
Mensajes: 235
Antigüedad: 14 años, 6 meses
Puntos: 5
Respuesta: formulario php para web no funciona

es qe si lo ves de esta forma, no es un error, es que no hace nada
y al no hacer nada, es que no esta ingresando por alguna razon a las condiciones
para ejecutar el envio.
mi opinion es que debes verificar que tienen las variables antes de utilizarlas.
Saludos!
  #9 (permalink)  
Antiguo 24/11/2009, 09:44
Avatar de dggluz  
Fecha de Ingreso: abril-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 525
Antigüedad: 15 años
Puntos: 50
Respuesta: formulario php para web no funciona

Amigos: se me ocurre que si le sale la página COMPLETAMENTE en blanco, es que hay un error que PHP no puede resolver e interrumpe la ejecución del código... dudo que entonces pueda hacer algún echo... insisto en que para mí es está intentando instanciar un objeto de la clase SMTP sin tener incluido el código de ésta. Para saber eso, simplemente haz un echo "hola"; al comienzo de tu script, si la página sigue COMPLETAMENTE en blanco, el error debe ser un "error fatal" o como se llame. Quizás me equivoque. ¡Suerte!
  #10 (permalink)  
Antiguo 24/11/2009, 10:05
Avatar de Fairy_Boy  
Fecha de Ingreso: octubre-2009
Ubicación: Kokiri Forest
Mensajes: 235
Antigüedad: 14 años, 6 meses
Puntos: 5
Respuesta: formulario php para web no funciona

es exactamente lo que he dicho en todo momento,
hacer unos echos para ver hasta donde llega.
antes de
Cita:
// Se verifica que los datos han sido enviados desde el formulario, para la validaci�n con el SMTP
=(
  #11 (permalink)  
Antiguo 24/11/2009, 10:28
Avatar de dggluz  
Fecha de Ingreso: abril-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 525
Antigüedad: 15 años
Puntos: 50
Respuesta: formulario php para web no funciona

Fairy_Boy: no te estaba descalificando, (ni a ningún otro usuario). Todas las opiniones son igual de válidas y no era mi intención desvalorar las vuestras. Sólo comentaba que en caso de que el error de PHP sea error fatal, no podrá depurarse "paso a paso". El echo sería simplemente para saber qué tipo de error es: si es error fatal, habrá que buscar detalladamente en el código y el único método de depuración es comentar código para ver cuál es la parte conflictiva... pero si el error no es fatal, el método que proponen ustedes de imprimir variables me parece el más adecuado. Pido sinceras disculpas por haber hecho parecer que sus opiniones están erradas, sólo quise expresar la mía.
  #12 (permalink)  
Antiguo 24/11/2009, 11:24
Avatar de Fairy_Boy  
Fecha de Ingreso: octubre-2009
Ubicación: Kokiri Forest
Mensajes: 235
Antigüedad: 14 años, 6 meses
Puntos: 5
Respuesta: formulario php para web no funciona

Hhahahah
no hay problema dggluz
no le queria dar ese sentido y si te sentiste mal, sorry
no hay que pedir disculpas porque concordemos en ciertas ideas jejejej
Saludos!
=)
  #13 (permalink)  
Antiguo 24/11/2009, 12:40
 
Fecha de Ingreso: noviembre-2009
Mensajes: 7
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: formulario php para web no funciona

Chicos, no se peleen por favor...!
sus aportes son todos valiosos para mi, por eso elegí este lugar para pedir ayuda!

ademas el problema mayor es que me cuesta interpretarlos xq como les dije no se php. lo siento mucho!

bueno, hice lo que me pidieron jamesjara, Fairy_Boy y dggluz con los echos... y entonces me aparece (sin ningun echo):

Parse error: parse error, unexpected T_ELSE in I:\FerozoWebHosting\dominiomio.com\public_html\ENV IA2.php on line 71

en la linea 71 me encuentro con este else:

else
{

echo("Complete los campos Requeridos ");
}
}
?>

que les parece??
  #14 (permalink)  
Antiguo 24/11/2009, 13:08
Avatar de dggluz  
Fecha de Ingreso: abril-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 525
Antigüedad: 15 años
Puntos: 50
Respuesta: formulario php para web no funciona

¿Haz cambiado el código?, ¿cómo queda ahora? (postealo así podremos ayudarte). El error que te marca es de sintaxis, probablemente haya un if sin cerrar. Veo que en realidad sí estás incluyendo la clase, sin embargo... ¿existe ese archivo(fzo.mail.php)?, ¿está en la misma carpeta? ¡Suerte!
  #15 (permalink)  
Antiguo 24/11/2009, 13:32
 
Fecha de Ingreso: noviembre-2009
Mensajes: 7
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: formulario php para web no funciona

ayyy! por favor!! q ansiedad... estoy tan feliz con mi sitio, ayer lo subi por primera vez -lo hice yo solita- y si no me anda este form, me quiero matar!!! lo mas importante!!!

gracias dggluz!!! ahi va el codigo cambiado. el archivo ferozo.mail.php no veo q este en ningun lado y en la carpeta con mis archivos mneos q menos. me extraña xq q sea eso xq ya te digo que tengo el mismo envia.php usado para una suscripcion y funciona perfecto sin ese archivo. de ultima s elo pido a los del hosting xq ellos me pasaron este script, q te parece?

gracias!!!!

<?php
echo "hola";
$usersmtp ="mimail"; // Entre las comillas va una cuenta de correo de su panel de control
$pass="mipass"; // Entre las comillas va el password de la cuenta de correo
$destino="mimail2"; // Entre las comillas la direccion de correo donde va a recibir los mails
echo "web";
// Se verifica que los datos han sido enviados desde el formulario, para la validaci�n con el SMTP
if ( $_POST['enviar'] == "1")
{
echo " variable post enviar resivida ";
if ( $_POST['nombre'] != "" && $_POST['apellido'] != "" && $_POST['email'] != "" )

{
echo " variable post nombre,apellido,email resivida ";

// Se incluye la librer�a necesaria para el envio
require_once("fzo.mail.php");

$mail = new SMTP("localhost",$usersmtp,$pass);
{



// Se configuran los parametros necesarios para el env�o
$de = $usersmtp ;
$a = $destino;
$asunto = "E-mail Contacto";
$cc = $_POST['cc'];
$bcc = $_POST['bcc'];


$cuerpo = "Este es un e-mail enviado desde el formulario de contacto de la pagina\n\n";
$cuerpo .= "Nombre: " .$_POST['nombre'] . "\n";
$cuerpo .= "Apellido: " .$_POST['apellido'] . "\n";
$cuerpo .= "Direccion: " .$_POST['direccion'] . "\n";
$cuerpo .= "Telefono: " .$_POST['telefono'] . "\n";
$cuerpo .= "Email: " .$_POST['email'] . "\n";
$cuerpo .= "Consulta: " .$_POST['consulta'] . "\n";



$header = $mail->make_header(
$de,
$a,
$asunto,
$_POST['prioridad'],
$cc,
$bcc
);

/*
Pueden definirse m�s encabezados. Tener en cuenta la terminaci�n de la
linea con (\r\n)

$header .= "Reply-To: ".$_POST['from']." \r\n";
$header .= "Content-Type: text/plain; charset=\"iso-8859-1\" \r\n";
$header .= "Content-Transfer-Encoding: 8bit \r\n";
$header .= "MIME-Version: 1.0 \r\n";
*/

// Se envia el correo y se verifica el error
$error = $mail->smtp_send($de, $a, $header, $cuerpo, $cc, $bcc);
if ($error == "0")

header("Location: confirm.html");


else
echo $error;
}
else
{

echo("Complete los campos Requeridos ");
}
}
?>
  #16 (permalink)  
Antiguo 24/11/2009, 13:50
Avatar de dggluz  
Fecha de Ingreso: abril-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 525
Antigüedad: 15 años
Puntos: 50
Respuesta: formulario php para web no funciona

Borra la llave de la línea 20 (después de "$mail = new SMTP("localhost",$usersmtp,$pass);"), esa llave está de más. Por cierto, en el proyecto de la suscripción del que sacaste el envia.php... ¿no tienes el archivo "fzo.mail.php"? Fíjate que lo necesitas (línea 17: "require_once("fzo.mail.php");"); seguramente en ese archivo está la declaración de la clase SMTP que luego instancias en la variable $mail (línea 19). ¡Suerte!
  #17 (permalink)  
Antiguo 24/11/2009, 20:22
 
Fecha de Ingreso: noviembre-2009
Mensajes: 7
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: formulario php para web no funciona

Gracias dggluz por tu ayuda!

borrando la llave me aparece
la hoja en blanco, pero con el

holaweb q puse con los echo. los otros dos echo siguients no aparecen.

ya me comunique y espero respuestas de mi servicio tecnico de hosting para q me den el fzo.mail.php ya que no lo veo x ningun lado!!! y te cuento...

mil gracias de nuevo
  #18 (permalink)  
Antiguo 25/11/2009, 06:57
Avatar de dggluz  
Fecha de Ingreso: abril-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 525
Antigüedad: 15 años
Puntos: 50
Respuesta: formulario php para web no funciona

Si no te aparecen los otros echo (pero sí aparece algo de texto) es muy probable que no estés entrando a los ifes. Prueba la página desde el formulario que la llama (con el método POST), o cambiando las variables POST por literales de cadena. ¡Suerte!
  #19 (permalink)  
Antiguo 25/11/2009, 07:47
 
Fecha de Ingreso: noviembre-2009
Mensajes: 7
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: formulario php para web no funciona

perdon por mi ignorancia...que son literales de cadena?
intente poniendo method="get" y nada.

gracias de nuevo....
  #20 (permalink)  
Antiguo 25/11/2009, 08:22
Avatar de dggluz  
Fecha de Ingreso: abril-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 525
Antigüedad: 15 años
Puntos: 50
Respuesta: formulario php para web no funciona

Un literal es un valor constante, es decir un valor que no se modifica (al contrario que las variables). Al decir "de cadena" me refiero simplemente a que el tipo de dato es una cadena (o string). Por ejemplo:
Código PHP:
"esto es un literal de cadena"
Lo otro que puedes hacer es un formulario (el que los visitantes de tu sitio completan para enviar el mail) que debe apuntar a "envia.php" con el método POST. Por ejemplo:
formulario.html:
Código HTML:
<html>
    <head>
    </head>
    <body>
        <form action="envia.php" method="post">
        	<input type="hidden" name="enviar" value="1" />
            <input type="text" name="nombre" />
            <input type="text" name="apellido" />
            <input type="text" name="email" />
            <input type="text" name="cc" />
            .
            .
            .
            (aquí pones todos los campos que necesites)
        </form>
    </body>
</html> 
Nota que el name de los campos del formulario determina la clave con la que recuperarás el dato en tu página envia.php. El código puede variar, pero puse lo esencial del formulario. ¡Suerte!
  #21 (permalink)  
Antiguo 25/11/2009, 11:38
 
Fecha de Ingreso: noviembre-2009
Mensajes: 7
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: formulario php para web no funciona

:cora zon:

GRACIAS!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
QUEDÓ INAUGURADA OFICIALMENTE MI SITIO WEB!!!!!!!!!!!!!!!!!!!!

25/11/09 HORA 14:36 BUENOS AIRES!!!!

SOS LO MAAAASSSSSSSSSSS DGGLUZ!!!!!!!!!!!!!!!!

NUNCA LO OLVIDARÉ!!!!!
  #22 (permalink)  
Antiguo 25/11/2009, 11:54
Avatar de dggluz  
Fecha de Ingreso: abril-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 525
Antigüedad: 15 años
Puntos: 50
Respuesta: formulario php para web no funciona

Cita:
Iniciado por vanesvanin Ver Mensaje
:cora zon:

GRACIAS!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
QUEDÓ INAUGURADA OFICIALMENTE MI SITIO WEB!!!!!!!!!!!!!!!!!!!!

25/11/09 HORA 14:36 BUENOS AIRES!!!!

SOS LO MAAAASSSSSSSSSSS DGGLUZ!!!!!!!!!!!!!!!!

NUNCA LO OLVIDARÉ!!!!!
De nada. ¡Suerte!

-----

Agrego: el mérito es de todos los que hemos participado en el hilo, no sólo mío.

Última edición por dggluz; 25/11/2009 a las 12:27
  #23 (permalink)  
Antiguo 25/11/2009, 12:00
Avatar de Fairy_Boy  
Fecha de Ingreso: octubre-2009
Ubicación: Kokiri Forest
Mensajes: 235
Antigüedad: 14 años, 6 meses
Puntos: 5
Respuesta: formulario php para web no funciona

1313 dggluz ???
Eaeaaea!! ^^
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:48.