Foros del Web » Programando para Internet » PHP »

Problema con $_POST, primeros pasos

Estas en el tema de Problema con $_POST, primeros pasos en el foro de PHP en Foros del Web. Acabo de empezar a estudiar PHP y llevo días sin avanzar por un problema. Al enviar un formulario (simple, para iniciarme), obtengo un error al ...
  #1 (permalink)  
Antiguo 21/06/2012, 20:48
Avatar de ojodegato  
Fecha de Ingreso: noviembre-2011
Mensajes: 10
Antigüedad: 12 años, 4 meses
Puntos: 0
Sonrisa Problema con $_POST, primeros pasos

Acabo de empezar a estudiar PHP y llevo días sin avanzar por un problema. Al enviar un formulario (simple, para iniciarme), obtengo un error al llamar a la página php que se supone recoge el formulario. Dice "undefined index", me entero de que eso quiere decir que no reconoce la variable, pero no veo cómo resolverlo. laEl código de la página html es:
<form>
<action="prueba1.php" method="POST">
<input name="dato" type="text" /><br />
<input type="submit" value="ok" />
</form>
El codigo de la php es:
<?php
echo $_POST["dato"];
?>
También he leido que las register globals deben estar en off, y que eso podría ser el problema pero que también es inseguro activarlas y que con la variable predefinida $_POST["dato"], debería bastar.
He instalado XAMMP y el localhost funciona bien al mostrar el comando echo, osea que no es mi servidor.
Os agradezco mucho cualquier sugerencia, estoy estancada porque no puedo ver los ejercicios de formularios en los que estoy.
Saludos desde México a España, mi tierra
  #2 (permalink)  
Antiguo 21/06/2012, 21:05
Avatar de xIamAlex  
Fecha de Ingreso: abril-2012
Ubicación: Venezuela
Mensajes: 118
Antigüedad: 12 años
Puntos: 23
Respuesta: Problema con $_POST, primeros pasos

mmm, tu código aparenta estar bien, a ver, checa lo siguiente:

1 -> Comprueba que el nombre del archivo php sea prueba1.php
2 -> En vez de usar $_POST["dato"], prueba con $_POST['dato'] (comillas simples, aunque pienso que no debería ser eso)
3 -> ¿Has probado utilizar el método GET?, en el method del formulario cambialo de method="POST" a method="GET" y en el archivo prueba1.php cambia $_POST["dato"] por $_GET["dato"].
4 -> Como ultimo, podrías checar el estado del array $_POST a través de la función var_dump, ejemplo en tu archivo prueba1.php cambia el código por:

<?php

var_dump($_POST['dato']);
// o var_dump($_POST);

?>

Saludos
__________________
Las personas quieren autos, casas, teléfonos, dinero, poder, ser famosos, parejas, en fin.. yo solo quiero ser libre y feliz.
  #3 (permalink)  
Antiguo 21/06/2012, 21:31
Avatar de rickyper  
Fecha de Ingreso: abril-2009
Mensajes: 182
Antigüedad: 15 años
Puntos: 10
Respuesta: Problema con $_POST, primeros pasos

Usa estas correcciones y te funcionará:
Código PHP:
Ver original
  1. <form action="prueba1.php" method="POST">
  2. <input name="dato" type="text" /><br />
  3. <input type="submit" value="ok" />
  4. </form>
  5. El codigo de la php es:
  6. <?php
  7. echo $_POST['dato'];
  8. ?>
__________________
www.granideamillonaria.com
  #4 (permalink)  
Antiguo 22/06/2012, 12:11
Avatar de ojodegato  
Fecha de Ingreso: noviembre-2011
Mensajes: 10
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: Problema con $_POST, primeros pasos

XlamAlex. Gracias por tu respuesta.
Ya había probado todas las posibles combinaciones con GET, POST, comillas dobles y simples, antes de escribir el post y nada. Me ha resultado interesante la información sobre la var_dump.
Los resultados han sido estos:
var_dump($_POST) ----Imprime en pantalla: array(0){}
var_dump($_POST['dato']-------Imprime en pantalla: Undefined index:NULL
Te agradezco si interpretas estos resultados y continuas oriéntandome para segir aprendiendo.
PD: Me parece extraño que en la URL , al darle al submit tras introducir la frase"esto es la entrada" Aparece rflejada en URL de este modo:///C:/xampp/htdocs/formulario%20prueba.html?dato=esto+es+la+entrada. Como el método es POST, tengo entendido que debería ir oculto.
Gracias de nuevo
  #5 (permalink)  
Antiguo 22/06/2012, 12:13
Avatar de ojodegato  
Fecha de Ingreso: noviembre-2011
Mensajes: 10
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: Problema con $_POST, primeros pasos

Rickyper, gracias por tu respuesta, pero no funciona, como le comento a xlamalex, he probado todas las variaciones de comandos, pero creo que el problema es que no reconoce $_POST.
Gracias de todos modos
  #6 (permalink)  
Antiguo 22/06/2012, 12:13
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema con $_POST, primeros pasos

En primer lugar no debería mostrarte esa ruta local, sino la URL.

¿Pues cómo es que te resulta así?

Es difícil de comprender.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 22/06/2012, 12:21
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: Problema con $_POST, primeros pasos

Por lo que dices es muy probable que no estes accesando a la pagina usando http:// si no con file://, debes de tener un servidor como Xampp o Wampp en tu maquina para poder entrar como http://

Saludos.
  #8 (permalink)  
Antiguo 22/06/2012, 12:25
Avatar de rodrigo791  
Fecha de Ingreso: noviembre-2009
Ubicación: Uruguay
Mensajes: 1.339
Antigüedad: 14 años, 5 meses
Puntos: 168
Respuesta: Problema con $_POST, primeros pasos

La verdad no entiendo como puede pasarte eso, si usas POST como método en form debería de mostarte NADA en la url, ningún dato.
  #9 (permalink)  
Antiguo 22/06/2012, 12:28
Avatar de rodrigo791  
Fecha de Ingreso: noviembre-2009
Ubicación: Uruguay
Mensajes: 1.339
Antigüedad: 14 años, 5 meses
Puntos: 168
Respuesta: Problema con $_POST, primeros pasos

Cita:
Iniciado por GatorV Ver Mensaje
Por lo que dices es muy probable que no estes accesando a la pagina usando http:// si no con file://, debes de tener un servidor como Xampp o Wampp en tu maquina para poder entrar como http://

Saludos.
TRUE

Ingresa a tu script php asi:

http://localhost/formularioprueba.html ( NO TE RECOMIENDO QUE USES ESPACIOS EN LOS NOMBRES DE LOS ARCHIVOS ya sean .php o .html)

¿que es esto?
Cuando instalas xampp el mismo te crea un servidor, pero en tu propia pc, y para acceder a los scripts que tengas en él tenes que hacerlo de esta forma, también podes probar poniendo 127.0.0.1 que es la ip de tu servidor LOCAL.
Y por supuesto tu servidor debe estar corriendo :D
  #10 (permalink)  
Antiguo 22/06/2012, 12:49
Avatar de xIamAlex  
Fecha de Ingreso: abril-2012
Ubicación: Venezuela
Mensajes: 118
Antigüedad: 12 años
Puntos: 23
Respuesta: Problema con $_POST, primeros pasos

Cita:
Iniciado por ojodegato Ver Mensaje
XlamAlex. Gracias por tu respuesta.
Ya había probado todas las posibles combinaciones con GET, POST, comillas dobles y simples, antes de escribir el post y nada. Me ha resultado interesante la información sobre la var_dump.
Los resultados han sido estos:
var_dump($_POST) ----Imprime en pantalla: array(0){}
var_dump($_POST['dato']-------Imprime en pantalla: Undefined index:NULL
Te agradezco si interpretas estos resultados y continuas oriéntandome para segir aprendiendo.
PD: Me parece extraño que en la URL , al darle al submit tras introducir la frase"esto es la entrada" Aparece rflejada en URL de este modo:///C:/xampp/htdocs/formulario%20prueba.html?dato=esto+es+la+entrada. Como el método es POST, tengo entendido que debería ir oculto.
Gracias de nuevo
Creo saber cual es la solución, como dicen mis compañeros de arriba, no estás utilizando el protocolo de transferencia (http://), por lo tanto en vez de acceder a la página desde ///C:/xampp/htdocs/formulario%20prueba.html (o dando doble click), vete a tu navegador y escribe la dirección http://localhost/formulario%prueba.html (también cambia el nombre por uno sin espacios).. y luego intenta enviar el form.

Esto creo que también me paso a mi una vez, y CREO que se me había solucionado así, aunque no garantizo nada.. ¡Suerte!

PD: Con respecto a lo de var_dump(), afirma que el archivo php no está recibiendo los datos, así que debe ser un problema de envío, tampoco te asustes por ?dato=esto+es+la+entrada, si los mandaste por GET, el form los envía a través de la URL y lógicamente no los puedes utilizar por no utilizar el protocolo..
__________________
Las personas quieren autos, casas, teléfonos, dinero, poder, ser famosos, parejas, en fin.. yo solo quiero ser libre y feliz.
  #11 (permalink)  
Antiguo 22/06/2012, 13:16
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Problema con $_POST, primeros pasos

y por si acaso mira si tienes un cortafuegos y activa el wampserver , no se por si acaso digo . .

ami alguna vez me ha pasado ya que tengo un cortafuegos y si no lo activo no corren los scripts
  #12 (permalink)  
Antiguo 22/06/2012, 13:26
Avatar de ojodegato  
Fecha de Ingreso: noviembre-2011
Mensajes: 10
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: Problema con $_POST, primeros pasos

¡¡¡ya funciona!!! Muchas gracias a todos,¡¡ ¡soy feliz!!!
He corregido el espacio entre palabras en formulario prueba.html, y lo he dejado como formularioprueba.html, luego lo he abierto desde el servidor con ruta http://, no pinchando directamente sobre el archivo y voilá, funcionó.
Que el Kama os bendiga..
Gracias
  #13 (permalink)  
Antiguo 22/06/2012, 14:01
Avatar de xIamAlex  
Fecha de Ingreso: abril-2012
Ubicación: Venezuela
Mensajes: 118
Antigüedad: 12 años
Puntos: 23
Respuesta: Problema con $_POST, primeros pasos

Cita:
Iniciado por ojodegato Ver Mensaje
¡¡¡ya funciona!!! Muchas gracias a todos,¡¡ ¡soy feliz!!!
He corregido el espacio entre palabras en formulario prueba.html, y lo he dejado como formularioprueba.html, luego lo he abierto desde el servidor con ruta http://, no pinchando directamente sobre el archivo y voilá, funcionó.
Que el Kama os bendiga..
Gracias
Feliz de saberlo..

Bienvenido al mundo de PHP y a forosdelweb amigo..

__________________
Las personas quieren autos, casas, teléfonos, dinero, poder, ser famosos, parejas, en fin.. yo solo quiero ser libre y feliz.
  #14 (permalink)  
Antiguo 22/06/2012, 20:12
Avatar de ojodegato  
Fecha de Ingreso: noviembre-2011
Mensajes: 10
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: Problema con $_POST, primeros pasos

No he tardado nada en meterme en otro atolladero. Siento abusar, pero es que es duro aprender en soledad. Por si a alguien le queda paciencia , ahí va:
Me estoy ejercitando a traves de unos video tutoriales en youtube , voy en "Curso PHP 13: Formularios y arrays". El profesor , Mario Raja, además de explicarse muy bien, tiene un gracioso acento granaino, pero resulta que el script echo que describe está obsoleto, eso dicen los comentarios, porque han cambiado PHP en las variables GET y POST, así que lo que faltaba a mi ignorancia es esto. He intentado averiguar cómo debe hacerse ahora pero no hay manera.
El objetivo del ejercicio es introducir un dato a traves del input del formulario y relacionarlo con un array php, el problema está en el echo, que según el video llama simplemente a las variables, y según comentarios, tienen que llamarlas como $_POST['variable'][''variable]
A mi, ni uno ni otro me funciona.
Ahí va el script html:

<form action="horario.php" method="post">
<b> Pon el periodo del día:</b>
<input name="periodo" type="text" /><br />
<b>Pon la actividad elegida:</b>
<input name="actividad" type="text" /><br />
<input type="submit" value="ok" />
</form>

y un array php:

$horario=array(
'mañana'=>array(
'deporte'=> 'futbol',
'ocio'=> 'videoconsola'
),
'tarde'=>array(
'deporte'=> 'baloncesto',
'ocio'=> 'cine'
)
);
Al introducir los datos mañana y ocio en el formulario deberia responder a este script:
echo $horario["$periodo"]["$actividad] ---(segun video)
echo $horario[$_POST['periodo']][$_POST['actividad']];-----(segun comentarios)

No sé si me explico bien, gracias por cualquier comentario de nuevo. Saludos a los amables internautas, en especial a XlamAlex
  #15 (permalink)  
Antiguo 22/06/2012, 21:34
Avatar de rodrigo791  
Fecha de Ingreso: noviembre-2009
Ubicación: Uruguay
Mensajes: 1.339
Antigüedad: 14 años, 5 meses
Puntos: 168
Respuesta: Problema con $_POST, primeros pasos

Bueno si estas con videotutoriales, te recomiendo http://www.youtube.com/playlist?list...8&feature=plcp

El viejo y querido videotutorial de PHP y MYSQL de Jesus Conde, un grande, 60 videitos :D
  #16 (permalink)  
Antiguo 22/06/2012, 21:36
Avatar de rodrigo791  
Fecha de Ingreso: noviembre-2009
Ubicación: Uruguay
Mensajes: 1.339
Antigüedad: 14 años, 5 meses
Puntos: 168
Respuesta: Problema con $_POST, primeros pasos

Si recien empezas con PHP ( que por lo que veo es así ), te recomiendo que vallas mas tranquilo, y no te metas ya en arrays asociativos, empezá despacio, anda con variables, algun echo, algun array simple, tranqui.
Mirate esos videos que te deje, que con eso aprendes banda.
  #17 (permalink)  
Antiguo 24/06/2012, 08:09
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Problema con $_POST, primeros pasos

Al introducir los datos mañana y ocio en el formulario deberia responder a este script:
echo $horario["$periodo"]["$actividad] ---(segun video)
echo $horario[$_POST['periodo']][$_POST['actividad']];-----(segun comentarios)

pues segun el ejemplo que pusiste (segun video) como dices debes dar el valor a $periodo y $actividad

$periodo = $_POST['periodo'];
$actividad= $_POST['actividad'];
echo $horarios[$periodo][$actividad];

y el array de horarios debe estar en la misma pagina que recojes los datos

pagina formulario
Código HTML:
Ver original
  1. <form action="horario.php" method="post">
  2. <b> Pon el periodo del día:</b>
  3. <input name="periodo" type="text" /><br />
  4. <b>Pon la actividad elegida:</b>
  5. <input name="actividad" type="text" /><br />
  6. <input type="submit" value="ok" />
  7. </form>


pagina horario.php

Código PHP:
Ver original
  1. $horario=array(
  2. 'mañana'=>array(
  3. 'deporte'=> 'futbol',
  4. 'ocio'=> 'videoconsola'
  5. ),
  6. 'tarde'=>array(
  7. 'deporte'=> 'baloncesto',
  8. 'ocio'=> 'cine'
  9. )
  10. );
  11.  
  12. $periodo = $_POST['periodo'];
  13. $actividad= $_POST['actividad'];
  14. echo $horario[$periodo][$actividad];

y una ultima cosa en el array de horarios => mañana , esa ñ te va a dar problemas si no añades la codificacion utf-8

tambien podrias hacer un select ya que si el usuario no introduce bien el periodo o la actividad te va a dar fallo

Código HTML:
Ver original
  1. <form action="2.php" method="post">
  2.     <b> Pon el periodo del día:</b>
  3.     <select name="periodo" id="periodo">
  4.   <option >mañana</option>
  5.     <option>tarde</option>
  6. </select><br />
  7.     <b>Pon la actividad elegida:</b>
  8.     <select name="actividad" id="actividad">
  9.   <option >deporte</option>
  10.     <option >ocio</option>
  11. </select><br />
  12.     <input type="submit" value="ok" />
  13.     </form>

Última edición por webankenovi; 24/06/2012 a las 09:05
  #18 (permalink)  
Antiguo 24/06/2012, 14:07
Avatar de ojodegato  
Fecha de Ingreso: noviembre-2011
Mensajes: 10
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: Problema con $_POST, primeros pasos

Gracias Webankenovi. Declaré las variables (creo que así se dice) $periodo y $actividad y todo fue como la seda, claro , teniendo en cuenta el punto que comentas sobre la ñ, introduje el dato 'tarde' y se ejecutó correctamente, lo que no sucede al introducir 'mañaña'. También coincido en que el la lógica del codigo html no es mucha porque nadie puede imaginar previamente el dato que quieres que meta, por eso es mejor un select, pero creo que el profe lo hace para poner un ejercicio sobre arrays simplemente.
Veo claro que por un lado, al ser un curso de hace unos años el que escogí, tiene anacronismos en la sintaxis que yo soy incapaz de corregir porque estoy en un nivel muy básico. Me voy a pasar al curso pHp de Enrique González que generosamente se facilita en forosdelweb y voy a echar un vistazo a un video curso que me han aconsejado, PHP y MySQL de Jesús Conde.
Gracias de nuevo por compartir tu pericia. Y gracias a todos por colaborar. Me llevo una impresión excelente de este amable grupo.
  #19 (permalink)  
Antiguo 24/06/2012, 14:16
Avatar de ojodegato  
Fecha de Ingreso: noviembre-2011
Mensajes: 10
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: Problema con $_POST, primeros pasos

Disculpa , me confundí en el autor del Manual Básico de PHP, estoy viendo varias opciones antes de empezar porque no es bueno el ir saltando de un curso a otro porque no te adaptas a ese por lo que sea, como es mi caso ahora. Saludos de nuevo

Etiquetas: formulario, html, pasos, post, primeros, variables
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 05:45.