Comunidad de diseño web y desarrollo en internet online

PROBLEMA CON FORMULARIO PHP

Citar            
MensajeEscrito el 04 Jun 2008 03:20 pm
Hola a todos,
tengo form php, que me ha funcionado siempre con los hostings de mis clientes, pero he contratado hosting para mi pag web, y no me funciona bien, y los del hosting me dicen que es problema de mi script, es decir;
recibo los correos vacios, le doy a enviar y los recibo, pero sin el contenido....he descubierto esto en la FAQ del hosting de los cojones(35 e año)
http://faq.1and1.es/programacion/php_mail_explained/2.html
fijaos en la parte de abajo, no se como modificarlo para que funcione,
os dejo codigo del PHP que he utilizado siempre:
<?php
$MailTo=\"[email protected]\";
$dia=date(\"m.d.Y\");
$hora=date(\"H:i:s\");
$contenido=\"
El Mensaje se Envio el $dia a las $hora:\\n\\n
----------------------------------------------------------------------------\\n
Nombre $nombre\\n
Apellido: $apellido\\n
E-mail: $MailFrom\\n
----------------------------------------------------------------------------\\n
Subject: $subject\\n
----------------------------------------------------------------------------\\n
Mensaje: $mensaje\\n
----------------------------------------------------------------------------\\n
\";
mail($MailTo, \"$subject (de $nombre $apellido)\", $contenido, \"From: $MailFrom\");
?>


Y el codigo FLASH: el codigo del boton ENVIAR y BORRAR no os lo pongo porque eso funciona bien:
function borrar() {
nombre = \"\";
apellido = \"\";
MailFrom = \"\";
subject = \"\";
mensaje = \"\";
}
function enviar() {
enviar = new LoadVars();
enviar.nombre = nombre;
enviar.apellido = apellido;
enviar.MailFrom = MailFrom;
enviar.subject = subject;
enviar.mensaje = mensaje;
enviar.onLoad = function(success) {
status = \"Su Mensaje Fue enviado Correctamente\";
borrar();
};
enviar.sendAndLoad(\"flaform.php\", enviar, \"POST\");
}


Alguien sabe que puedo hacer??? estoy por mandar a tomar por saco a los del hosting.
Gracias

Por alexander_sp

58 de clabLevel



 

msie7
Citar            
MensajeEscrito el 04 Jun 2008 07:34 pm
Mas bien deberías mandar a tomar por saco a los del hosting anterior, que deben tener una versión muy vieja de PHP o las variables globales habilitadas, lo cual se quitó por temas de seguridad.
Todos los parámetros que envías desde Flash los tienes que tomar desde el array $_POST, por ejemplo en vez de ser

$nombre

sería

$_POST['nombre']

Y así sucesivamente

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 04 Jun 2008 09:47 pm
hola solisarg, no lo entiendo, entonces en el flash pongo???

function borrar() {
$_POST['nombre'] = \"\";
$_POST['apellido'] = \"\";

y asi sucesivamente???

Por alexander_sp

58 de clabLevel



 

msie7
Citar            
MensajeEscrito el 05 Jun 2008 01:10 am
El problema no está en el flash sino en el PHP. En vez de tener:

Código :

Nombre: $nombre;

Debería ser:

Código :

Nombre: $_POST[nombre];

Y así, sucesivamente.

Por The Fricky!

Presidente

6168 de clabLevel

3 tutoriales
8 articulos

Genero:Masculino   Bastard Operators From Hell Héroes

Piccola Venezia...

firefox
Citar            
MensajeEscrito el 05 Jun 2008 06:57 am
Pero el codigo en rojo es el que he utilizado yo siempre;
Habeis leido el link que puse arriba sobre la FAQ del hosting:
sale este codigo:
<?
$to = '[email protected]';
$subject = 'subject';
$message = 'From: ' . $_REQUEST['name'] . &quot;nn&quot; . $_REQUEST['data'];
$email = $_REQUEST['email'];
$headers = 'From: ' . $email . &quot;rn&quot; .
'Reply-To: ' . $email . &quot;rn&quot; .
'X-Mailer: PHP/' . phpversion();

mail ($to, $subject, $message, $headers);
header(&quot;Location: thanks.html&quot;);
?>

Entonces el problema es este codigo del hosting, que es antiguo? o el codigo de mi php???
Lo siento, por ser tan pesado, pero estoy muy verde en el tema

Por alexander_sp

58 de clabLevel



 

msie7
Citar            
MensajeEscrito el 05 Jun 2008 07:06 am
Lo que pasa es que tu antiguo hosting posiblemente trabaje con una versión vieja de PHP y tenga activadas las variables globales. Las variables globales están desactivadas por defecto desde PHP 4 (creo), por eso ya no te funciona. La cosa no es del nuevo hosting sino del viejo PHP.
Fíjate que ellos usan $_REQUEST, que te permite capturar las variables, indistintamente que vengan por Post o por Get, pero eso tampoco se recomienda porque te vuelves más vulnerable a que inyecten código malicioso. Haz lo que te decía solisarg.

Por The Fricky!

Presidente

6168 de clabLevel

3 tutoriales
8 articulos

Genero:Masculino   Bastard Operators From Hell Héroes

Piccola Venezia...

firefox
Citar            
MensajeEscrito el 05 Jun 2008 09:19 am
Entonces el codigo del archivo php que subo a la web, tiene que quedar asi: no?
<?
$MailTo="[email protected]";
$_POST['dia'], =date("m.d.Y");
$_POST['hora'], =date("H:i:s");
$_POST['contenido'], ="
El Mensaje se Envio el $dia a las $_POST['hora:\n\n'],
----------------------------------------------------------------------------\n
Nombre $_POST['nombre']
Apellido: $_POST['apellido']
E-mail: $_POST['MailFrom']
----------------------------------------------------------------------------\n
Subject: $_POST['subject']
----------------------------------------------------------------------------\n
Mensaje: $_POST['mensaje']
----------------------------------------------------------------------------\n
";
mail($_POST['MailTo'] , "$_POST['subject'] (de $_POST['nombre'] $_POST['apellido'])", $_POST['contenido'], "From: $_POST['MailFrom']");
?>

Por alexander_sp

58 de clabLevel



 

msie7
Citar            
MensajeEscrito el 05 Jun 2008 07:07 pm
Lee esto. Seguro te hará entender mejor como funcionan $_POST.

Por The Fricky!

Presidente

6168 de clabLevel

3 tutoriales
8 articulos

Genero:Masculino   Bastard Operators From Hell Héroes

Piccola Venezia...

firefox
Citar            
MensajeEscrito el 12 Jun 2008 11:44 am
Ok...The Friky....gracias
Pero encontre un form cojonudo en
www.solophotoshop.com

Ciao

Por alexander_sp

58 de clabLevel



 

msie
Citar            
MensajeEscrito el 12 Jun 2008 11:55 am
Cojonudo, te ahorras entender por que no anda ;)

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 15 Sep 2009 04:30 am
De pronto a alguien le interesa, verdaderamente entender por que no handa...

de esto:
$datos="Nombre del autor: $nombre
+ Su empresa:,$empresa
+ Su Telefono:,$telefono
+ Su email:,$email
+ Mensaje:,$mensaje";
fputs ($archivo, $datos);
}

a esto:
Nombre del autor: $_POST[nombre]
+ Su empresa:,$_POST[empresa]
+ Su Telefono:,$_POST[telefono]
+ Su email:,$_POST[email]
+ Mensaje:,$_POST[mensaje]";

Por ANDRESFLASH

4 de clabLevel



 

chrome
Citar            
MensajeEscrito el 26 Sep 2009 04:17 am
Vaya! el link de The Friky parece caido, es una pena, yo tengo el mismo problema, subo el archivo php y no quiere ir.
El hosting es WAMP (Windows, Apache, MySql, PhP) pero nada, no funciona. Por lo que he logrado entender la solucion es muy simple, bastaria con sustituir :

por ejemplo $nombre por $_POST[nombre] y así sucesivamente.

pero me asalta una duda, en mi codigo aparecen infinidad de palabras que empiezan por $ , algunas con codigo en rojo, pero tambien algunas en negro, ¿debo sustituirlo todo por $_POST ?????? o sólo ciertos parámetros.

Os paso el archivo por si alguien prefiere examinar el cadáver personalmente, je je !
http://lumbreraslaboratori.com/mailform.rar

Gracias de antemano, un saludo!!!!

Por KÓNIKA

2 de clabLevel



 

msie7
Citar            
MensajeEscrito el 26 Sep 2009 10:33 am
¿Examinar el cadaver? No, la verdad prefiero que lo hagas tu .... y empezaría reemplazando por POST los parámetros que envía el flash, es decir mira que esas palabras que empiezan con $ sean las mismas que vienen de Flash (aunque en Flash no tienen la $)

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 30 Sep 2009 05:56 am
Gracias por el aporte!!!
Ayer me puse manos a la obra con la autópsia, pero no pude lograr que funcione, pues vereis, en mi archivo.fla he sustituido las partes que coinciden con el archivo.php de este modo. (tal y como recomienda solisarg). ejemplo:

script original: fname1.tabIndex = 1; script nuevo: _POST[fname1].tabIndex = 1;

Y nada , que no funciona... Luego ví un script parecido, ["que incluía comillas"], y decidí probarlo:
_POST["fname1"].tabIndex = 1; etc... Pero nada. Bueno, este es el script original, ¿alguna sugerencia?



Código ActionScript :

fscommand("allowscale", "false");
fname1.tabIndex = 1;
lname1.tabIndex = 2;
email1.tabIndex = 3;
telno1.tabIndex = 4;
comments1.tabIndex = 5;
mailform = "mailform.php";
confirm = "ENVIO CORRECTO !!!  GRACIAS";
action = "send";
Selection.setFocus("fname");
function validate(address) {
   if (address.length>=7) {
      if (address.indexOf("@")>0) {
         if ((address.indexOf("@")+2)<address.lastIndexOf(".")) {
            if (address.lastIndexOf(".")<(address.length-2)) {
               return (true);
            }
         }
      }
   }
   return (false);
}
function formcheck() {
   if ((((email == null)) || (email.length<1)) || (email == "ERROR! Dirección de correo electrónico no válida")) {
      email = "ERROR! Dirección de correo electrónico no válida";
      action = "";
   }
   if (!validate(email)) {
      email = "introduzca su mail";
      action = "";
   }
   if ((((fname == null)) || (fname.length<1)) || (fname == "ERROR! Su nombre no es válido")) {
      fname = "introduzca su nombre";
      action = "";
   }
   if ((((lname == null)) || (lname.length<1)) || (lname == "ERROR! Su apellido no es válido")) {
      lname = "introduzca sus apellidos";
      action = "";
   }
   if ((validate(email)) && (email != "HERROR!") && (fname != "") && (lname != "")) {
      action = "send";
      loadVariablesNum(mailform, 0, "POST");
      gotoAndPlay("wait");
   }
}
stop();




Gracias de antemano, un saludo !!!!!

Por KÓNIKA

2 de clabLevel



 

msie7
Citar            
MensajeEscrito el 30 Sep 2009 02:34 pm

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 01 Oct 2009 07:52 pm
Hola!
La verdad, paso de investigar más por los foros, de leérme tutos indescifrables y de preguntar a supuestos expertos que te dejan a medias y con la intriga, pues solo he conseguido un puñado de respuestas imprecisas e incompletas, con mas intención de tocar las pelotas que de ayudar.

Y esque me cuesta trabajo entender esta moda de alargar tanto algo tan sencillo.
Señores... que sólo es un p*to formulario. Demasiadas palabras para no decir nada.

Yo solo buscaba algo parecido a esto:

[url=]www.lumbreraslaboratori.com/formularios_php_flash.rar[/url]

Es una recopilación de formularios flash+php muy chulos y sencillos de customizar, ademas en cada carpeta he puesto que version php, AS , y FlashPlayer utilizan, incluso algunos los he traducido al español.
casi todos son de ffiles.com, una web de recursos flash muy recomendable.

El paquete contiene 10 formularios en diferentes programaciones: Mucho ojo!!!
desde php3 AS1 fl5 (que es lo peor y lo mas antiguo) hasta php5 AS3 fl9 (de lo mas actualizado) y uno en ASP AS2 fl8 (que no tengo ni idea de como funciona).

COSAS QUE DEBES TENER EN CUENTA:
Si compraste tu hosting a partir de Enero 2008 (y soporta PHP) , este funciona seguramente con la version 4.4 o 5.0
Asi pues, los formularios en php3 no funcionaran correctamente porque no utilizan el parametro $_POST del mismo modo.

Si compraste tu hosting hace varios años (3 o 4) es posible que tu soporte php no esté actualizado y sea la version 3.0
En ese caso lo ideal es cambiar de proveedor, (evidentemente), o exigirle que actualice sus servicios a php5.
Como último recurso, y si no hay mas remedio, escoje un formulario php3 del paquete. ¿que le vamos a hacer?

NOTA: estos consejos NO son una ciencia exacta, variarán dependiendo del hosting que cada cual tenga, y de si el proveedor se ha actualizado o no, lógicamente.

Si tu web ya tiene 8 años pero tu proveedor está actualizado puedes meter un formulario php5 sin problemas, no se si me explico... Tambien se puede dar el caso de comprar un hosting hoy y resulta que es una compañia que no se actualiza desde hace años y todavía usa php3.
Por supuesto, lo principal es averiguar que soporte tiene tu hosting, y luego meter un formulario compatible con él.

PREGUNTAS FRECUENTES
¿Como sé la versión PHP que utiliza mi Hosting?
Ve a la web donde lo contrataste, logeate y accede a tu cPannel (panel de control)
En algunos hostings se accede al cPannel desde un link especifico sin pasar por la web.
Verifica que efectivamente soporta PHP , para ello busca un icono en el que debe ponerlo, si está, clica para ver la info completa. Si no está en ningún lado esque no tiene este servicio disponible.

¿Dónde subo los archivos php?
En el mismo lugar en el que subiste el index.html , el formulario.swf y el resto de archivos que componen tu web.
normalmente se meten en la carpeta public_html de tu ftp.
pero en algunos hostings mas completos es en la carpeta httpdoc de tu ftp.

bueno, a ver si la peña toma nota y cuando intente ayudar por lo menos que dé soluciones reales y sobre todo testeables.
Para que me mareen ya tengo a mi suegra.
Ala! a disfrutar los formularios!!!

un saludo.

Por KÓNIKA

2 de clabLevel



 

msie7
Citar            
MensajeEscrito el 01 Oct 2009 08:04 pm
La verdad, paso de investigar más por los foros, de leérme tutos indescifrables y de preguntar a supuestos expertos que te dejan a medias y con la intriga, pues solo he conseguido un puñado de respuestas imprecisas e incompletas, con mas intención de tocar las pelotas que de ayudar.


Mis disculpas. La próxima vez escribiré una respuesta completa e informativa y evitaré que tengas que buscar y dedicarle tanto tiempo ... pero espera ... eso no lo hice hace 5 años ... y hace 3 ... y no escribí unos 50 posts sobre formularios de contacto tal como me lo pidieron (como si lo estuvieras explicando a un niño ...)
No, seguramente me estoy equivocando ... en fin ... que pensé que alguna vez lo había hecho. Habla con Freddy para que te devuelvan el dinero ;)

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.