Foros del Web » Programando para Internet » PHP »

Error al pasar variables por POST

Estas en el tema de Error al pasar variables por POST en el foro de PHP en Foros del Web. Buenas, tengo un archivo en la cual hay una fución envia (no lo he hecho yo): @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Javascript : Ver original < script ...
  #1 (permalink)  
Antiguo 23/09/2010, 07:41
 
Fecha de Ingreso: enero-2005
Mensajes: 170
Antigüedad: 19 años, 3 meses
Puntos: 0
Error al pasar variables por POST

Buenas, tengo un archivo en la cual hay una fución envia (no lo he hecho yo):

Código Javascript:
Ver original
  1. <script language="JavaScript" type="text/JavaScript">
  2.     <!--
  3.    
  4.     function envia($op)
  5.     {
  6.         parent.frames['Pag'].location = "blanc.php";
  7.         document.menu.opcio.value = $op;
  8.         document.menu.submit();
  9.     }
  10.    
  11.     -->
  12.     </script>


Entonces en otra página recojo el valor opcio asi:

Código PHP:
Ver original
  1. <?php
  2.         $opcio = $_POST['opcio'];
  3.         //var_dump($opcio);
  4. ?>

Luego tengo un switch:

<?php
Código PHP:
Ver original
  1. switch ($opcio){
  2.    
  3.                                     case 1:
  4.                             ?>
  5.                                         <b><?=texte($_SESSION["idioma"],"seccions")?></b></font>
  6.                             <?
  7.                                     case 2:
  8.                             ?>
  9.                                         <b><?=texte($_SESSION["idioma"],"usuaris")?></b></font>
  10.                             <?
  11.                                     case 3:
  12.                             ?>
  13.                                         <b><?=texte($_SESSION["idioma"],"associacio")?></b></font>
  14.                             <?
  15.                                     case 4:
  16.                             ?>
  17.                                         <b><?=texte($_SESSION["idioma"],"cor")?></b></font>
  18.                             <?
  19.                                     case 5:
  20.                             ?>
  21.                                         <b><?=texte($_SESSION["idioma"],"escola")?></b></font>
  22.                             <?
  23.                                     case 6:
  24.                             ?>
  25.                                         <b><?=texte($_SESSION["idioma"],"obres")?></b></font>
  26.                             <?

}
Me sale este error:
Notice: Undefined index: op in /var/www/html/workspace/prova/root/admin/menuesq.php on line 79 (donde recojo por post).

Sin embargo, el switch lo hace pero de una manera muy rara: el resultado del primer case, es la suma de lso siguientes case y asi sucesivamente, hasta llegar al ultimo case, que lo ahce perfecto.

No sé si me explico bien, porque es una cosa muy rara. Espero que me puedan ayudar.

Saludos.
  #2 (permalink)  
Antiguo 23/09/2010, 07:48
Avatar de OsSk4R  
Fecha de Ingreso: octubre-2006
Ubicación: $this->home
Mensajes: 824
Antigüedad: 17 años, 6 meses
Puntos: 74
Respuesta: Error al pasar variables por POST

Entonces, ¿el único problema es que te muestra el error (Notice: Undefined index: op in /var/www/html/workspace/prova/root/admin/menuesq.php on line 79?

Ese error o noticia te esta diciendo que le estas pasando una variable que no existe.

Osea, concretamente $op no existe, o tiene un valor vació...
Comprueba que $op tenga un valor.

Saludos,
  #3 (permalink)  
Antiguo 23/09/2010, 07:49
Avatar de AdrianSeg  
Fecha de Ingreso: enero-2010
Mensajes: 595
Antigüedad: 14 años, 2 meses
Puntos: 14
Respuesta: Error al pasar variables por POST

No entiendo muy bien...

esto no seria asi?


Código PHP:
Ver original
  1. $opcio = $_POST['op'];

Lo mismo para el switch...
  #4 (permalink)  
Antiguo 23/09/2010, 07:56
 
Fecha de Ingreso: enero-2005
Mensajes: 170
Antigüedad: 19 años, 3 meses
Puntos: 0
Respuesta: Error al pasar variables por POST

Si, el único error es esa Noticia.

Si pongo 'op' como seria lo más logico, no me hace el switch.

En el switch hay que poner $opcio no?
  #5 (permalink)  
Antiguo 23/09/2010, 08:01
Avatar de OsSk4R  
Fecha de Ingreso: octubre-2006
Ubicación: $this->home
Mensajes: 824
Antigüedad: 17 años, 6 meses
Puntos: 74
Respuesta: Error al pasar variables por POST

¿El switch esta en una página aparte?

Esto:
Código PHP:
Ver original
  1. $opcio = $_POST['opcio'];


¿Tiene algún valor?, ¿Esta antes del switch?


  #6 (permalink)  
Antiguo 23/09/2010, 08:01
 
Fecha de Ingreso: marzo-2010
Ubicación: Cali
Mensajes: 203
Antigüedad: 14 años, 1 mes
Puntos: 5
Respuesta: Error al pasar variables por POST

primero debes verificar si la variable esta recogiendo algun valor, ahi en lo que veo tu primer post es que a $_POST[opcio] le estas dando el valor de $op, pero que valor contiene $op?, por que no veo que se le asigne algun valor en el codigo que mostraste en el primer post
  #7 (permalink)  
Antiguo 23/09/2010, 08:14
 
Fecha de Ingreso: enero-2005
Mensajes: 170
Antigüedad: 19 años, 3 meses
Puntos: 0
Respuesta: Error al pasar variables por POST

la recogida por POST está antes del switch, en un archivo a parte del javascript que he puesto.

En ese JS hay esto:

document.menu.opcio.value = $op;,


que es el valor que le doy a op. Es decir:

tengo un menu, cuando clico en cualquiera de las opciones de menu, me crea un menu lateral. O sea, en $op le digo cuál es el campo del menu que he clicado. Según el valor de $op (recogido en otro PHP por POST), creo un switch, para crear el contenido de cada submenu.


Que lio no? jajaa
  #8 (permalink)  
Antiguo 23/09/2010, 08:34
 
Fecha de Ingreso: marzo-2010
Ubicación: Cali
Mensajes: 203
Antigüedad: 14 años, 1 mes
Puntos: 5
Respuesta: Error al pasar variables por POST

dices que la recogida por POST es en un archivo y el js es otro. ahi puede estar el problema deberias intentar haciendo un return a la funcion para cuando llames la funcion desde el otro archivo te retorne la variable y el valor, hay que tener en cuenta que para utilizar la funcion debes de llamar el archivo donde se encuentra la funcion.
  #9 (permalink)  
Antiguo 23/09/2010, 08:38
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: Error al pasar variables por POST

Hola
llego tarde pero, el valor que se asigna en javascript es de php? (pregunto porque es $op)
y el error que muestra es sobre esta variable ($op) no sobre la que entiendo se envia (opcio)
saludos
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #10 (permalink)  
Antiguo 23/09/2010, 09:16
 
Fecha de Ingreso: agosto-2009
Mensajes: 31
Antigüedad: 14 años, 8 meses
Puntos: 2
Respuesta: Error al pasar variables por POST

El problema es que cambia la pagina antes de enviar o setear la variable, si mal no entiendo

Código Javascript:
Ver original
  1. parent.frames['Pag'].location = "blanc.php";

Hace que el navegador se dirija a blanc.php y recien despues
Código Javascript:
Ver original
  1. document.menu.opcio.value = $op;
  2.         document.menu.submit();
setea las variables, por cierto, menu es un form?
porque si es asi deberias poner en action"blanc.php" y usar el submit para hacer el location, lo que te simplifica las cosas...
Perdon si me equivoqe.. =P
  #11 (permalink)  
Antiguo 23/09/2010, 10:03
 
Fecha de Ingreso: enero-2005
Mensajes: 170
Antigüedad: 19 años, 3 meses
Puntos: 0
Respuesta: Error al pasar variables por POST

Bueno, realmente si que funciona el POST, porque más adelante hago un switch de $opcio y en cada case coge el valor correcto. Pero no sé porque me sale ese Notice!!
  #12 (permalink)  
Antiguo 23/09/2010, 10:13
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: Error al pasar variables por POST

Cita:
Iniciado por albertpg Ver Mensaje
Bueno, realmente si que funciona el POST, porque más adelante hago un switch de $opcio y en cada case coge el valor correcto. Pero no sé porque me sale ese Notice!!
intenta en el archivo menuesq.php poner
$op = ''; al principio del mismo
saludos
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #13 (permalink)  
Antiguo 23/09/2010, 10:16
 
Fecha de Ingreso: enero-2005
Mensajes: 170
Antigüedad: 19 años, 3 meses
Puntos: 0
Respuesta: Error al pasar variables por POST

No hace nada.
  #14 (permalink)  
Antiguo 23/09/2010, 10:20
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: Error al pasar variables por POST

y en la linea 79 esta solo el valor que se recibe? y en la 78 y 80 que tienes?
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #15 (permalink)  
Antiguo 23/09/2010, 10:22
 
Fecha de Ingreso: enero-2005
Mensajes: 170
Antigüedad: 19 años, 3 meses
Puntos: 0
Respuesta: Error al pasar variables por POST

Estas son las lineas 78 a la 82:

<?php
$opcio = $_POST['opcio'];
echo($opcio); //para saber si realmente tiene algun valor, que si que lo tiene.

?>
  #16 (permalink)  
Antiguo 23/09/2010, 10:28
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: Error al pasar variables por POST

Cita:
Iniciado por albertpg Ver Mensaje
Estas son las lineas 78 a la 82:

<?php
$opcio = $_POST['opcio'];
echo($opcio); //para saber si realmente tiene algun valor, que si que lo tiene.

?>
uhm, pues sigo sin entender porque muestra $op en vez de $opcio en el notice,
pero entonces intenta hacer un if preguntando si ese $_POST tiene valor, si tiene que haga la asignación que ya tienes, y si no, entonces que haga $opcio = '';
si haciendo ese cambio persiste, entonces antes de dicho if agrega $opcio ='';
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #17 (permalink)  
Antiguo 23/09/2010, 10:30
 
Fecha de Ingreso: enero-2005
Mensajes: 170
Antigüedad: 19 años, 3 meses
Puntos: 0
Respuesta: Error al pasar variables por POST

Perdón, el error que da ahora es:

Notice: Undefined index: opcio in /var/www/html/workspace/prova/root/admin/menuesq.php on line 79.

Pero porque?? Si luego estoy usando opcio para otras cosas y me va bien!
  #18 (permalink)  
Antiguo 23/09/2010, 10:39
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: Error al pasar variables por POST

Cita:
Iniciado por albertpg Ver Mensaje
Perdón, el error que da ahora es:

Notice: Undefined index: opcio in /var/www/html/workspace/prova/root/admin/menuesq.php on line 79.

Pero porque?? Si luego estoy usando opcio para otras cosas y me va bien!
tal vez porque en algún punto, este php alcanza a ejecutarse y va sin valor el post, y por ende $opcio igualmente esta sin definir
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #19 (permalink)  
Antiguo 24/09/2010, 04:28
 
Fecha de Ingreso: enero-2005
Mensajes: 170
Antigüedad: 19 años, 3 meses
Puntos: 0
Respuesta: Error al pasar variables por POST

ostia pues ralmente no lo sé :(
  #20 (permalink)  
Antiguo 24/09/2010, 09:04
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: Error al pasar variables por POST

Cita:
Iniciado por albertpg Ver Mensaje
ostia pues ralmente no lo sé :(
ya intentaste lo de $opcio y sigue igual?
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #21 (permalink)  
Antiguo 24/09/2010, 09:05
 
Fecha de Ingreso: enero-2005
Mensajes: 170
Antigüedad: 19 años, 3 meses
Puntos: 0
Respuesta: Error al pasar variables por POST

A qué te refieres con $opcio?
  #22 (permalink)  
Antiguo 24/09/2010, 09:34
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: Error al pasar variables por POST

Cita:
Iniciado por mortiprogramador Ver Mensaje
uhm, pues sigo sin entender porque muestra $op en vez de $opcio en el notice,
pero entonces intenta hacer un if preguntando si ese $_POST tiene valor, si tiene que haga la asignación que ya tienes, y si no, entonces que haga $opcio = '';
si haciendo ese cambio persiste, entonces antes de dicho if agrega $opcio ='';
a esto
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #23 (permalink)  
Antiguo 24/09/2010, 09:43
 
Fecha de Ingreso: enero-2005
Mensajes: 170
Antigüedad: 19 años, 3 meses
Puntos: 0
Respuesta: Error al pasar variables por POST

Ah no, no. perdona. No sé que toqué, pero ahora me sale opcio en el notice!
  #24 (permalink)  
Antiguo 24/09/2010, 10:35
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: Error al pasar variables por POST

Cita:
Iniciado por albertpg Ver Mensaje
Ah no, no. perdona. No sé que toqué, pero ahora me sale opcio en el notice!
entonces revisa lo que te comente
saludos
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com

Etiquetas: pasar, post, 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 07:57.