Foros del Web » Programando para Internet » PHP »

Desesperado, formulario OK en mi web pero no en otra.

Estas en el tema de Desesperado, formulario OK en mi web pero no en otra. en el foro de PHP en Foros del Web. Soy alguien que se dejó liar para hacerle una web a un conocido y sucede que un formulario flash-PHP, que funciona perfectamente en mi servidor, ...
  #1 (permalink)  
Antiguo 11/12/2008, 04:25
 
Fecha de Ingreso: febrero-2008
Mensajes: 15
Antigüedad: 16 años, 2 meses
Puntos: 0
Desesperado, formulario OK en mi web pero no en otra.

Soy alguien que se dejó liar para hacerle una web a un conocido y sucede que un formulario flash-PHP, que funciona perfectamente en mi servidor, no funciona del todo al ponerlo en su dominio. Concretamente, no guarda el valor de los campos sino que estos aparecen vacíos en el correo enviado.

Supuestamente en ambos casos, los servidores son iguales y solo cambia el nombre del dominio. Pues hemos contratado para su web lo mismo que uso yo para desarrollar mis webs y esta suya.

En fín, que he probado todo lo que se me ha ocurrido sin resultado, y no se qué explicación puedo darle. Solo se me ocurre que sea culpa del hosting pero dicen que está todo bien. Así pues, ¿qué otras causas puedo mirar para explicar que el php no recoja los campos, sabiendo que este funciona en mi web?


Gracias.
  #2 (permalink)  
Antiguo 11/12/2008, 05:42
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Desesperado, formulario OK en mi web pero no en otra.

y el código???


estarás usando register_globals o short_open_tags ???

osea....

Código PHP:
<?= $foo// $_REQUEST['foo']; ?>
muy difícil de adivinar, sin mas información...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 11/12/2008, 06:38
 
Fecha de Ingreso: febrero-2008
Mensajes: 15
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Desesperado, formulario OK en mi web pero no en otra.

Gracias por contestar, perdón por no incluirlo. Como sería muy largo lo he simplificado respetando cabeceras, la forma en que paso los campos, etc.

<?
/*email para admin en html*/
$e = 'XXXXXXXXXX';
$nick = $HTTP_POST_VARS['nombre'];
$asunto = "Sugerencia desde XXXXX";
$mensaje = $HTTP_POST_VARS['mensaje'];
$email = $HTTP_POST_VARS['email'];

$sms = '
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>XXXXXXX</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="keywords" content="Keywords here">
<meta name="description" content="Description here">

<style type="text/css">
<!--
a:link {
color: #00CCFF;
}
a:visited {
color: #0099CC;
}
-->
</style></HEAD>
<BODY BGCOLOR=#efefef style="margin:0">
<p style="color: #eeeeee; font-size: 14px;">'.$nick.'</p>
<p style="color:#eeeeee; font-size: 14px;">'.$email.'</p>
<p><span class="style1" style="color:#ffffff;">Cuerpo del mensaje:</span></p>
<p><span class="style1" style="color:#ffffff;">'.$mensaje.'.</span></p>
</BODY>
</HTML>
';

$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "From: IUSweb <XXXXXxx>\r\n";
$headers .= "Reply-To: XXXXXXXXXX";
/*Enviamos email notificación al administrador*/
if(mail($e, $asunto, $sms,$headers)){
echo utf8_encode('&respuesta=::::Su E-mail ha sido enviado::::&');
}else{
echo utf8_encode('&respuesta=::::Ha surgido un problema::::&');
}


$email2= $HTTP_POST_VARS['email'];
$nombre2= $_POST['nombre'];
$mensaje2= $_POST['mensaje'];
/*confirmacion2 es el mensaje de confirmación para el visitante en HTML*/
$confirmacion2 = '
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>XXXXXXXX</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="keywords" content="Keywords here">
<meta name="description" content="Description here">

<style type="text/css">
<!--
a:link {
color: #00CCFF;
}
a:visited {
color: #0099CC;
}
-->
</style></HEAD>
<BODY BGCOLOR=#efefef style="margin:0">
<p style="color: #eeeeee; font-size: 14px;">Gracias, '.$nick.', hemos recibido su mensaje.</p>
<p><span class="style1" style="color:#ffffff;">Copia del mensaje:</span></p>
<p><span class="style1" style="color:#ffffff;">'.$mensaje.'.</span></p>
</BODY>
</HTML>
';

$cabeceras2 = 'MIME-Version: 1.0' . "\r\n";
/*$cabeceras2 .= 'Content-type: text/html; charset=UTF-8' . "\r\n";*/
$cabeceras2 .= "Content-type: text/html; charset=iso-8859-1\r\n";
$cabeceras2 .= 'From: XXXXXXX < XXXXXXXXXX >' . "\r\n";
/*Enviamos email confirmación al visitante*/
mail($email2, "Su correo a XXXXXXX ha sido recibido",$confirmacion2,$cabeceras2);
?>


Así pues, ¿es posible que el problema sea el código a pesar de funcionar perfecto en mi web?
  #4 (permalink)  
Antiguo 11/12/2008, 07:22
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Desesperado, formulario OK en mi web pero no en otra.

mmm.... no son las mismas versiones el de tu PHP local y el servidor, (ni configuraciones) cierto???


siempre que migres tus scripts, comprueba que las configuraciones y versiones (de PHP) coincidan, o de menos sean compatibles!!


...

primero, usa.... <?php y no <?
luego, usa $_POST, $_GET, etc... por cada $HTTP_*_VARS que se relacione

de ahí en fuera, usa estas lineas al inicio del script... para depurar mas...

Código PHP:
ini_set('display_errors'true);
error_reporting(E_ALL); 
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 11/12/2008, 08:11
 
Fecha de Ingreso: febrero-2008
Mensajes: 15
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Desesperado, formulario OK en mi web pero no en otra.

Cita:
Iniciado por pateketrueke Ver Mensaje
mmm.... no son las mismas versiones el de tu PHP local y el servidor, (ni configuraciones) cierto???


siempre que migres tus scripts, comprueba que las configuraciones y versiones (de PHP) coincidan, o de menos sean compatibles!!


...

primero, usa.... <?php y no <?
luego, usa $_POST, $_GET, etc... por cada $HTTP_*_VARS que se relacione

de ahí en fuera, usa estas lineas al inicio del script... para depurar mas...

Código PHP:
ini_set('display_errors'true);
error_reporting(E_ALL); 
Muy amable, como ves soy muy novato en php. Hice el formulario en su día cogiendo info por foros y tutoriales y ahora veo que no es compatible por mas parecido que sea el hosting de ambas webs.

Voy a hacer los cambios que sugieres y comento resultados. De nuevo, muchas gracias.
  #6 (permalink)  
Antiguo 11/12/2008, 09:02
 
Fecha de Ingreso: febrero-2008
Mensajes: 15
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Desesperado, formulario OK en mi web pero no en otra.

Parece que estoy a un paso porque empieza a funcionar gracias a tus consejos. Para hacer las pruebas he hecho este formulario simple y ahora me coge el campo email pero no el resto, sin embargo no veo la diferencia.

<?php
ini_set('display_errors', true);
error_reporting(E_ALL);

$e = 'XXXXXXXXXXX';
$nick = $HTTP_POST_VARS['nombre'];
$asunto = "Correo desde XXXXXXXXX";
$mensaje = $HTTP_POST_VARS['mensaje'];
$email = $HTTP_POST_VARS['email'];

$sms = '<b>Ha recibido uncorreo de:</b><br><br><b>Nombre:</b> '.$_POST[nick].'<br><b>E-mail:</b> '.$_POST[email].'<br><br>'.$_POST[mensaje].'.';

$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "From: XXXXXXXX <XXXXXXXXXXX>\r\n";
$headers .= "Reply-To: XXXXXXXXXXXXX\r\n";

if(mail($e, $asunto, $sms,$headers)){
echo utf8_encode('&respuesta=::::Su E-mail ha sido enviado::::&');
}else{
echo utf8_encode('&respuesta=::::Ha surgido un problema::::&');
}
?>

Gracias.
  #7 (permalink)  
Antiguo 11/12/2008, 09:20
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Desesperado, formulario OK en mi web pero no en otra.

En primera usa $_POST['email'], $_POST['nick'] etc. las comillas simples son importantes.

Por otro lado revisa que las variables que envias se llamen igual a las variables que recibes, ya que eso es importante.

Para comprobar que variables llegan usa var_dump($_POST); eso te muestra las variables que llegan a tu script.

Veo que usas Flash, lo mas recomendable es que primero pruebes el script sin flash creando un formulario en HTML, y una vez que lo hagas funcionar entonces lo enlazas con flash, asi puedes evitar errores.

Saludos.
  #8 (permalink)  
Antiguo 11/12/2008, 09:22
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Desesperado, formulario OK en mi web pero no en otra.

has un print_r de todo el $_POST, y no envíes nada... hasta que estés seguro, has pruebas!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #9 (permalink)  
Antiguo 11/12/2008, 09:34
 
Fecha de Ingreso: febrero-2008
Mensajes: 15
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Desesperado, formulario OK en mi web pero no en otra.

Gracias a ambos, estoy siguiendo vuestros consejos. Por fin empiezo a ver algo de luz.

En breve pongo si hay cambios.
  #10 (permalink)  
Antiguo 11/12/2008, 09:52
 
Fecha de Ingreso: febrero-2008
Mensajes: 15
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Desesperado, formulario OK en mi web pero no en otra.

Bien, me van todos los campos del formulario este super simple, solo he cambiado nick por nombre y añadido un espacio para que me los coja.

Ahora trataré de añadir el html, remite, etc. pero creo que ya puedo solo!

Muchas gracias por todo, intentaré corresponder en este foro ayudando a otros en lo que sepa.

s2
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 13:10.