Foros del Web » Programando para Internet » PHP »

No recoge los datos por $_POST

Estas en el tema de No recoge los datos por $_POST en el foro de PHP en Foros del Web. Hola, un saludo a todos. El caso es que tengo un formulario, que al pulsar el botón de envío, se procesan los datos en un ...
  #1 (permalink)  
Antiguo 17/01/2009, 08:37
 
Fecha de Ingreso: diciembre-2008
Ubicación: San Sebastián
Mensajes: 15
Antigüedad: 15 años, 4 meses
Puntos: 0
Pregunta No recoge los datos por $_POST

Hola, un saludo a todos.

El caso es que tengo un formulario, que al pulsar el botón de envío, se procesan los datos en un archivo llamado action.php. Pero el problema es el siguiente:
Los datos pasan por el método POST, y en el archivo action.php, cuando leo esos datos así: $user=$_POST['usuario'] el nombre de usuario debería de aparecer escrito en un div, así: echo "<div class=\"loquesea\">".$usuario."</div>";
Pero no aparece nada escrito ahí, como si no recogiera los datos, sin embargo, la IP a través de la cual se conecta el usuario, sí que aparece escrita:
$IP=htmlentities($_SERVER['REMOTE_ADDR'],ENT_QUOTES);
echo "<div class=\"loquesea\">".$IP."</div>";


Lo curioso es que si cambio el método de envío a GET, el nombre de usuario sí que aparece escrito, al igual que la IP (como antes).

Pero yo quiero que los datos pasen por POST, así que me gustaría que alguien me ayudara con éste problema. Puedo proporcionar parte del código si se desea.

Un saludo.
  #2 (permalink)  
Antiguo 17/01/2009, 09:06
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: No recoge los datos por $_POST

Es curioso no?

Cita:
Los datos pasan por el método POST, y en el archivo action.php, cuando leo esos datos así: $user=$_POST['usuario'] el nombre de usuario debería de aparecer escrito en un div, así: echo "<div class=\"loquesea\">".$usuario."</div>";
  #3 (permalink)  
Antiguo 20/01/2009, 08:12
 
Fecha de Ingreso: diciembre-2008
Ubicación: San Sebastián
Mensajes: 15
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: No recoge los datos por $_POST

Cita:
Iniciado por okram Ver Mensaje
Es curioso no?

Me he equivocado al escribir el mensaje, pero el fallo no está ahí. Esto es parte del código, copiado y pegado:
$user=$_POST['user'];
[...]
echo "Nombre usuario: ".$user."<br>";

Sigue sin funcionar.
  #4 (permalink)  
Antiguo 20/01/2009, 08:35
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: No recoge los datos por $_POST

Trata hacerle un dump a POST.

var_dump($_POST);
¿Que te devuelve?
  #5 (permalink)  
Antiguo 20/01/2009, 10:15
 
Fecha de Ingreso: diciembre-2008
Mensajes: 39
Antigüedad: 15 años, 4 meses
Puntos: 1
Respuesta: No recoge los datos por $_POST

no tenes enctype="multipart/form-data" como atributo en tu form tag.
  #6 (permalink)  
Antiguo 21/01/2009, 09:18
 
Fecha de Ingreso: diciembre-2008
Ubicación: San Sebastián
Mensajes: 15
Antigüedad: 15 años, 4 meses
Puntos: 0
De acuerdo Respuesta: No recoge los datos por $_POST

Cita:
Iniciado por Ronruby Ver Mensaje
Trata hacerle un dump a POST.

var_dump($_POST);
¿Que te devuelve?
Me aparece lo siguiente:
array(0){}
Lo cual intuyo que significa, que no recoge ningún dato por STDIN, pero, ¿por qué?

Cita:
Iniciado por tute666 Ver Mensaje
no tenes enctype="multipart/form-data" como atributo en tu form tag.
Yo eso lo ponía para subir archivos mediante $_FILES[], pero para enviar datos de texto plano, no lo he utilizado nunca, y hasta ahora siempre me ha funcionado.
Estoy ejecutando el script en servidor propio, ¿tal vez alguna directiva de php.ini mal configurada? No lo sé... Probaré lo que me dices, a ver...

Un saludo.
  #7 (permalink)  
Antiguo 21/01/2009, 09:53
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: No recoge los datos por $_POST

Puedes poner todo el código HTML de tu formulario?
  #8 (permalink)  
Antiguo 22/01/2009, 07:33
 
Fecha de Ingreso: diciembre-2008
Mensajes: 39
Antigüedad: 15 años, 4 meses
Puntos: 1
Respuesta: No recoge los datos por $_POST

Cita:
Iniciado por Bb-7 Ver Mensaje
Me aparece lo siguiente:
array(0){}
Lo cual intuyo que significa, que no recoge ningún dato por STDIN, pero, ¿por qué?



Yo eso lo ponía para subir archivos mediante $_FILES[], pero para enviar datos de texto plano, no lo he utilizado nunca, y hasta ahora siempre me ha funcionado.
Estoy ejecutando el script en servidor propio, ¿tal vez alguna directiva de php.ini mal configurada? No lo sé... Probaré lo que me dices, a ver...

Un saludo.
Cita:
method='post'
tambien.
  #9 (permalink)  
Antiguo 22/01/2009, 09:04
 
Fecha de Ingreso: diciembre-2008
Ubicación: San Sebastián
Mensajes: 15
Antigüedad: 15 años, 4 meses
Puntos: 0
Exclamación Respuesta: No recoge los datos por $_POST

Cita:
Iniciado por okram Ver Mensaje
Puedes poner todo el código HTML de tu formulario?
Código:
<FORM method="post" action="http://bb7serv.zapto.org/" onSubmit="return val()">
		 <TABLE width="298" border="0" cellspacing="0" cellpadding="0">
          <TR>
            <TD colspan="2" align="center" class="tit1"><b>ACCESO A USUARIOS</b></TD>
          </TR>
          <TR>
            <TD colspan="2" style="font-size:4px">&nbsp;</TD>
          </TR>
                    <TR>
            <TD align="right">Usuario:</TD>
            <TD align="center"><input type="text" class="txt" name="user" id="user" size="20" value=""></TD>
          </TR>

          <TR>
            <TD align="right">Contrase&ntilde;a:</TD>
            <TD align="center"><input type="password" class="txt" name="pass" id="pass" size="20">
				<input type="hidden" name="ref" id="ref" value="">
			</TD>
          </TR>
          <TR>
            <TD align="center">&nbsp;</TD>
            <TD style="padding-bottom:4px" align="center">
				<input type="submit" name="enviar" value="Ingresar" class="sub">
			</TD>
          </TR>
        </TABLE></FORM>
Y aquí está la función val() a la que se llama al enviar el formulario, pero ésto funciona perfectamente. Entre <HEAD> y </HEAD>:
Código:
<script language="javascript">
function val()
{
	var elem;
        elem=document.getElementById("user");
        if(elem.value==""){
            alert("¡Falta el nombre de usuario!");
            return false;
        }
        elem=document.getElementById("pass");
        if(elem.value==""){
             alert("¡Falta el nombre de usuario!");
             return false;
        }
        //Ahora obtenemos el referer
        elem=document.getElementById("ref");
        elem.value=document.referer;
        //FIN
	return true;
}
</script>
  #10 (permalink)  
Antiguo 29/01/2009, 11:11
 
Fecha de Ingreso: diciembre-2008
Ubicación: San Sebastián
Mensajes: 15
Antigüedad: 15 años, 4 meses
Puntos: 0
De acuerdo Solucionado (una última pregunta...)

Ya he solucionado el problema.
Pasaba lo siguiente:
Como veis en el código HTML, el atributo action del formulario, contiene el siguiente valor: "http://bb7serv.zapto.org/" (ése es mi servidor local, el DNS es de no-ip). Y en el directorio raíz del servidor, tenía un archivo llamado "index.php", que era el encargado de recoger y procesar los datos.
Lo que he hecho ha sido sustituir ése valor por el siguiente: "index.php", quedándome así:
action="index.php"
Y entonces todo ha ido perfecto.

Me gustaría saber porqué ha sucedido esto, ya que he visto muchas páginas web que en el action hacen como yo, ponen un dominio sin especificar el archivo, y les funciona (p. ej.: en www.metroflog.com, hay ésto: <form method="post" action="/">
¿Por qué yo no puedo?


Un saludo.
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 22:31.