Foros del Web » Programando para Internet » PHP »

No recibo variables por post

Estas en el tema de No recibo variables por post en el foro de PHP en Foros del Web. Hola a tod@s. Estoy haciendo una página que se autollama. Los datos los envío por post, pero no se reciben, con el mismo código y ...
  #1 (permalink)  
Antiguo 11/05/2006, 08:49
 
Fecha de Ingreso: abril-2003
Mensajes: 136
Antigüedad: 21 años
Puntos: 0
No recibo variables por post

Hola a tod@s.

Estoy haciendo una página que se autollama. Los datos los envío por post, pero no se reciben, con el mismo código y por get, funciona perfectamente. He estado buscando en las faq, en php.net y no he encontrado nada.

El código es el siguiente (es muy simple y pongo sólo lo relevante):

Código PHP:
<html>
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  <title>Creació d'un nou emailing</title>
</head>
<body bgcolor="#FFFFFF" text="#000000" link="#FF9966" vlink="#FF9966" alink="#FFCC99">
<?php 
//print_r($_POST);
if (!$_POST){
    echo 
"Lo que nos llega del formulario es <strong>" $_POST["titulo"] . "</strong><br>"

else{
    echo 
"No se ha enviado ningún formulario<br>";
}
?>
  <form action="NouEmailing.php" method="post" enctype="text/plain">
        <input type="text" name="titulo" value="" size="40" maxlength="40"/><br/>
      <textarea name="texto" rows="10" cols="50" wrap="off">
       TEXTO
      </textarea>
      <br/>
        <input type="submit" name="boton" value="Enviar emailing"/>
  </form>

</body>
</html>
Lo he simplificado más todavía quitando la textarea y nada. Si descomento la línea //print_r($_POST); lo que me muestra por pantalla es:

Array ( )

El tema está claro, no recibe ningún dato por post. Como he dicho antes, si lo cambio por get, funciona perfectamente. Sospecho por tanto que se trata de alguna directiva del php.ini pero me lo he mirado y no he encontrado nada al respecto.

La versión de php es: 4.4.2 y corre sobre un Apache 1.3 en un Windows 2000.

Alguna idea ?? Gracias de antemano.
  #2 (permalink)  
Antiguo 11/05/2006, 09:02
Avatar de Nefertiter  
Fecha de Ingreso: enero-2003
Ubicación: Rosario
Mensajes: 1.316
Antigüedad: 21 años, 3 meses
Puntos: 9
probaste cambiando el enctype? a

enctype="application/x-www-form-urlencoded"
  #3 (permalink)  
Antiguo 11/05/2006, 09:06
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años, 1 mes
Puntos: 33
Echale un ojo a este link http://www.forosdelweb.com/showthrea...389#post249389. Creo que te puede ayudar bastante

Saludillos.
  #4 (permalink)  
Antiguo 11/05/2006, 09:08
 
Fecha de Ingreso: abril-2003
Mensajes: 136
Antigüedad: 21 años
Puntos: 0
Gracias por la rapidez en responder.

Había probado a quitarlo directamente, ahora he probado lo que me has dicho y sigue sin funcionar.

He hecho cosas iguales con formularios en asp, jsp, pl/sql ... y siempre se han enviado los formularios correctamente sin ni tan siquiera indicarle el enctype (excepto a la hora de subir archivos).

De todas formas, como te digo, lo he probado y nada.

Gracias de nuevo. Toni.
  #5 (permalink)  
Antiguo 11/05/2006, 09:57
 
Fecha de Ingreso: abril-2003
Mensajes: 136
Antigüedad: 21 años
Puntos: 0
De acuerdo Ya está resuelto

Hola de nuevo.

La respuesta anterior era para nefertiter.

Mauled, he revisado esa faq y he aplicado el cambio que me ha parecido signficativo :

Código PHP:
  <form action="<?php echo $_SERVER['PHP_SELF'?>" method="POST">
Ha funcionado. He pintado el resultado de esa expresión y me pinta la siguiente ruta:

/php/mailings/NouEmailing.php

El caso es que con el action que tenía puesto antes, por lógica, también debería haber funcionado ya que es una ruta relativa a la misma página, y de hecho se cargaba, pero no recibía datos por post.

Es curioso, alguien tiene idea de por qué es?? si lo descubro os lo comentaré.

Gracias de nuevo . Toni.
  #6 (permalink)  
Antiguo 11/05/2006, 13:42
 
Fecha de Ingreso: marzo-2006
Mensajes: 2
Antigüedad: 18 años, 1 mes
Puntos: 0
esta es la respuesta

con este codigo si jala, checa las diferencias. saludos

<html>
<head>

<title>Creació dun nou emailing</title>
</head>
<body bgcolor="#FFFFFF" text="#000000" link="#FF9966" vlink="#FF9966" alink="#FFCC99">

<?php
$var1 = $_POST['titulo'];
print_r($_POST);

if (!$_POST){
echo "Lo que nos llega del formulario es <strong>" . $_POST["titulo"] . "</strong><br>";
}
else{
echo "No se ha enviado ningún formulario<br>";
}

?>
<form action="NouEmailing.php" method="POST">
<input type="text" name="titulo" value="" size="40" maxlength="40"><br/>

<br/>
<input type="submit" name="boton" value="Enviar emailing"/>
</form>

</body>
</html>


  #7 (permalink)  
Antiguo 12/05/2006, 02:36
 
Fecha de Ingreso: abril-2003
Mensajes: 136
Antigüedad: 21 años
Puntos: 0
Hola mastuero.

aunque ya me funciona como he puesto antes he mirado tu código. Y el cambio significativo que encuentro es este:

$var1 = $_POST['titulo'];

Por un lado la declaración de la variable, y por otro, la recuperación del parámetro con comillas simples. La variable no se usa en ningún sitio más y lo de las comillas simples creo que no afecta, porque con el código que he puesto antes me funciona.

Es necesario declarar la variable antes de hacer operaciones ??? no he visto nada de eso en la documentación que he leído.

Saludos y gracias. Toni.
  #8 (permalink)  
Antiguo 16/05/2006, 15:08
 
Fecha de Ingreso: mayo-2006
Mensajes: 1
Antigüedad: 17 años, 11 meses
Puntos: 0
recibir variables

Saludos:
Tambein tuve un problema de no recibir las variables con $_GET cuando el formulario tiene esto (enctype="application/x-www-form-urlencoded") pero la forma de capturar las variables se puede hacer con $_POST['variable'] otambien con $_REQUEST['variable'] , esto me funcionó, por favor alguien que sepa la explicación de esto.
Gracias

Dangab
  #9 (permalink)  
Antiguo 16/05/2006, 15:59
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por dangab
Saludos:
Tambein tuve un problema de no recibir las variables con $_GET cuando el formulario tiene esto (enctype="application/x-www-form-urlencoded") pero la forma de capturar las variables se puede hacer con $_POST['variable'] otambien con $_REQUEST['variable'] , esto me funcionó, por favor alguien que sepa la explicación de esto.
Gracias

Dangab
Pero tu usas el "method" adecuado en tu formulario?

Debes indicar o POST o GET en method .. y si no lo usas se asume que usas GET.

Con respecto a la codificación "encytpe" realmente es tu servidor HTTP el que suele colocar un "text/plain" si no indicas nada .. y si indicas uno tipo "application/x-www-form-urlencoded" los datos los tomas en POST (en GET no lo he visto nunca).

Por otro lado en PHP .. la variable $_REQUEST contiene todo lo que venga por POST, GET o sea una COOKIE.

más información al respecto en un manual de referencia del HTML para formularios:
http://www.w3.org/MarkUp/html-spec/html-spec_8.html

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 01:56.