Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] No recibo variable de $HTTP_GET_VARS

Estas en el tema de No recibo variable de $HTTP_GET_VARS en el foro de PHP en Foros del Web. Hola a tod@s! Estoy haciendo una aplicación y tengo un pequeño problema: hay una página que me escribe el codigo hmtl añadiando a la url ...
  #1 (permalink)  
Antiguo 21/02/2013, 02:21
 
Fecha de Ingreso: septiembre-2008
Ubicación: Manises,Valencia
Mensajes: 114
Antigüedad: 15 años, 6 meses
Puntos: 13
No recibo variable de $HTTP_GET_VARS

Hola a tod@s!

Estoy haciendo una aplicación y tengo un pequeño problema:

hay una página que me escribe el codigo hmtl añadiando a la url de destino de un hipervinculo (<a href> una variable que necesito resuperar en esa página de destino .

El caso es que no llega y no se por qué.

os pongo el código relevante de tres páginas:
La primera "edito facturas" presenta una lista de enlaces a una pagina con el dato de la factura a editar mediante envio por url.

La segunda "abro_factura" recibe el dato de la factura mediante $_GET[nombre de variable] para poder abrir el contenido de la factura en cuestion y los registros de otra tabla (desglose) asociados a ella.

El problema lo tengo cuando pulsando una enlace abro un pop up con envio del numero de factura para poder añadir algun articulo que se haya olvidado a esa factura en cuestión: no llega.

A ver si podéis ver en qué me estoy equivocando.

Gracias.


+++++++++parte de codigo de "edito_facturas.php"+++++++++++++

<?php
//Primero recuperamos los datos de $_POST
$id_cliente = $_POST[id_cliente];
//Ahora creamos un argumento para la busqueda de factura y nombre de ese cliente
include ("../php/funciones.php");
conexion();
$busco_nombre = "select nombre from cliente where id_cliente = '" . $id_cliente . "'";
$pido_nombre = mysql_query($busco_nombre) or die ("No se ha podido recuperar el cliente");
$cliente = mysql_fetch_row($pido_nombre);
$nombre_cliente = $cliente[0];
print ("<h3>Nombre del cliente: " . $nombre_cliente . "</h3>\n");
print ("<ul>\n");
$busco_facturas = "select id_factura, fecha, numero_f, tipo from factura where id_cliente=" . $id_cliente;
$pido_facturas = mysql_query($busco_facturas) or die ("No he podido recuperar las facturas");
//Ahora escribimos los datos de la lista desordenada creando un formulario para cada factura
$puntero = 1;
while ($facturas = mysql_fetch_array($pido_facturas))
{
$fecha_1 = $facturas[fecha];
$fecha = substr($fecha_1,8,2) . "-" . substr($fecha_1,5,2) . "-" . substr($fecha_1,0,4);
print ("<p>FECHA " . $fecha . " N&Uacute;MERO " . $facturas[numero_f] . "TIPO " . $facturas[tipo] . "<a href=\"abro_factura.php?tipo=" .
$facturas[tipo] . "&numero_f=" . $facturas[numero_f] . "\"> EDITAR</a>\n");

}
?>





++++++++++parte de codigo de "abro_factura.php"++++++++++++++++++

<head>
<script languaje="javascript" type="text/javascript">
var new_window
function abrirVentana(url) {
window.open(url, "nuevo", "directories=no, location=no, menubar=no, scrollbars=no, statusbar=no, tittlebar=no, width=1000, height=400, resizable=no");
}
</script>
</head>
<body>
<div id="principal">
<div id="cabecera">
<!-- Aquí va el contenido de la cabecera-->
<h1>nombre pagina</h1>
</div>
<div id="cuerpo">
<!-- Aquí va el contenido del cuerpo-->
<?PHP
include ("../php/funciones.php");
conexion();
$tipo = $_GET[tipo];
$numero_f = $_GET[numero_f];
//Con éste número ya podemos obtener todos los datos de las tablas factura y desglose
$pido_datos_factura = "select * from factura where numero_f = " . $numero_f;
$datos_factura = mysql_query($pido_datos_factura) or die ("No he podido obtener los datos de la factura numero " . $numero_f);
$factura = mysql_fetch_array($datos_factura);
//Aqui tenemos los datos de factura de los que obtenemos el id_factura para el desglose
$pido_datos_desglose = "select * from desglose where id_factura = " . $factura[id_factura];
$datos_desglose = mysql_query($pido_datos_desglose) or die ("No he podido obtener los datos de desglose de la factura numero " . $numero_f);

//En este punto ya tenemos los datos de la factura y su desglose
//Vamos a presentarlos en la tabla
//Inicio código nuevo
//Inicio de la pagina: Cabecera e inicio del formulario

if( $tipo == "f") $texto = "FACTURA";
if( $tipo == "n") $texto = "NOTA";
print ("<center><h3>" .$texto . "</h3>\n");
print ("<form name=\"facturas\" action=\"previo_factura.php\" method=\"post\">\n");
print ("<input type=\"hidden\" name= \"numero_f\" value=\"" . $numero_f . "\">\n");
print ("<input type=\"hidden\" name= \"tipo\" value=\"" . $tipo . "\">\n");
print ("<input type=\"hidden\" name=\"origen\" value=\"modifica\">\n");
print ("<input type=\"submit\" name=\"aceptar\" value=\"ACEPTAR\">\n");
print ("<input type=\"reset\" name=\"borrar\" value=\"BORRAR\">\n");
print ("<table width=\"90%\" border=\"1\">\n");
print ("<tr>\n");
print ("<td height=\"40\" width=\"50%\"><strong><p>CLIENTE</strong>\n");
print ("<select name=\"id_cliente\">\n");

//Busqueda de los clientes de la bd para hacer un select
$argumento_clientes = "select id_cliente,nombre from cliente";
$busqueda_clientes = mysql_query($argumento_clientes) or die ("no se ha podido acceder a los clientes");


while ($respuesta_clientes = mysql_fetch_array($busqueda_clientes))
{
print ("<option value=\"" . $respuesta_clientes[id_cliente] . "\"");
if ($factura[id_cliente] == $respuesta_clientes[id_cliente] )
{
print (" selected");
}
print (">" . $respuesta_clientes[nombre] . "</option>\n");
}
print ("</select></p>\n");
//print ("<br>\n");
print ("</td>\n");
print ("<td><p>\n");
print ("<strong>FECHA</strong>\n");
//obtenemos la fecha
date_default_timezone_set('UTC');

//$dia = strftime( "%d", time() );
//$mes = strftime( "%m", time() );
//$ano = strftime( "%Y", time() );
$dia = substr($factura[fecha],8,2);
$mes = substr($factura[fecha],5,2);
$ano = substr($factura[fecha],0,4);
print ("<select name=\"dia\">\n");
$n = 1;
while ($n<32)
{
print ("<option");
if ($n == $dia) print (" selected ");
print (" value=\"" . $n . "\">" . $n . "</option>\n");
$n++;
}
print ("</select>\n");
print ("<select name=\"mes\">\n");
$n = 1;
while ($n<13)
{
print ("<option");
if ($n == $mes) print (" selected ");
print (" value=\"" . $n . "\">" . $n . "</option>\n");
$n++;
}
print ("</select>\n");
print ("<select name=\"ano\">\n");
$n = 2010;
while ($n<2015)
{
print ("<option");
if ($n == $ano) print (" selected ");
print (" value=\"" . $n . "\">" . $n . "</option>\n");
$n++;
}
print ("</select>\n");
//print ("<br>\n");
print ("</p></td>\n");
print ("<td><p>\n");
//Si el tipo es factura
if ($tipo =="f")
{
print ("<strong>Nº </strong>\n");

print ("<input maxlength=\"10\" size=\"10\" type=\"text\" name=\"n_factura\" value=\"" . $numero_f . "\">\n");
}
print ("</p></td>\n");

print ("</tr>\n");
print ("<tr>\n");

print ("</tr>\n");
print ("</table>\n");
print ("<table width=\"90%\" border=\"1\">\n");
print ("<tr>\n");
print ("<td height=\"10\"><p>PRODUCTO</p></td>\n");
print ("<td height=\"10\"><p>BULTOS</p></td>\n");
print ("<td height=\"10\"><p>KILOS</p></td>\n");
print ("<td height=\"10\"><p>TARA</p></td>\n");
print ("<td height=\"10\"><p>PRECIO</p></td>\n");
print ("</tr>\n");
while ($desglose = mysql_fetch_array($datos_desglose))
{

print ("<tr>\n");
print ("<td height=\"10\"><p>\n");
//Acceso a los productos
$argumento_producto = "select * from producto order by prioridad, descripcion";
$respuesta_producto = mysql_query($argumento_producto) or die ("No se ha podido recuperar los productos");
print ("<select name=\"producto" . $c . "\">\n");
print ("<option value=\"\"></option>\n");
while ($productos = mysql_fetch_array($respuesta_producto))
{
//print ("DESglose = " . $desglose[id_producto] ."<br> productos " . $productos[id_producto] ."<br>");

print ("<option value=\"" . $productos[id_producto] . "\"");
if ($desglose[id_producto] == $productos[id_producto]) print ("selected");
print (">" . $productos[descripcion] . "</option>\n");

}
print ("</select>\n");
print ("</p></td>\n");
print ("<td><p>\n");
print ("<input type=\"text\" name=\"bultos" . $c . "\" size=\"3\" value=\"" . $desglose[bultos] ."\">\n");
print ("</td></p>\n");
print ("<td><p>\n");
print ("<input type=\"text\" name=\"kilos" . $c . "\" size=\"3\" value=\"" . $desglose[kilos] ."\">\n");
print ("</td></p>\n");
print ("<td><p>\n");
print ("<input type=\"text\" name=\"tara" . $c . "\" size=\"3\" value=\"" . $desglose[tara] ."\">Kg\n");
print ("</td></p>\n");
print ("<td><p>\n");
print ("<input type=\"text\" name=\"precio" . $c . "\" size=\"3\" value=\"" . $desglose[precio] ."\">€\n");
print ("</td></p>\n");


}
print ("</table>\n");
print ("</form><br>\n");



print ("<p id=\"mas_productos\"><a href=\"javscript:void()\" \n");
print (" onClick=\"abrirVentana('mas_productos.php?numero_f =" . $numero_f . "')\">A&Ntilde;ADIR PRODUCTOS</a></p></p>\n");
?>




++++++++++parte de codigo de "mas_productos.php"++++++++++++



<?PHP
//Averiguamos el numero de factura si venimos de la página padre
$numero_f = $_GET[numero_f];
print ("Numero facura= " . $mumero_f . "<br>");

?>
  #2 (permalink)  
Antiguo 21/02/2013, 04:02
Avatar de CoriaWeb  
Fecha de Ingreso: septiembre-2012
Ubicación: Coria del Río - Sevilla
Mensajes: 1.795
Antigüedad: 11 años, 7 meses
Puntos: 130
Respuesta: No recibo variable de $HTTP_GET_VARS

Ver asi el codigo es un poco dificil pero a simple vista lo que veo es que no usas bien las variables, lo usas de este modo:

$_GET[nombre de variable]
$_POST[nombre de variable]
etc..

Y debería de ser:

$_GET["nombre de variable"]
$_POST["nombre de variable"]

Pruebalo y haber si tiene algo que ver.
__________________
Hosting de Calidad
Servidores Dedicados Administrados
CoriaWeb.hosting
  #3 (permalink)  
Antiguo 21/02/2013, 06:46
 
Fecha de Ingreso: septiembre-2008
Ubicación: Manises,Valencia
Mensajes: 114
Antigüedad: 15 años, 6 meses
Puntos: 13
Respuesta: No recibo variable de $HTTP_GET_VARS

Hola coriaWEB, pero ya lo he probado con esa sintaxis.

La verdad es que sí se puede resuperar un avriable (pe: $numero) pasada por "GET" o "POST" de esta manera:
$variable = $_GET[numero] ;
$variable =$_POST[numero];

Llevo tiempo usando este método y funciona bien, de hecho , si te fijas, tanto en la página "abro_factura" como en la "edito_factura" recojo variables con ambos métodos y sin comillas y funcionan bien.

El problema está en la última página "mas_productos"

Gracias de todas formas!
  #4 (permalink)  
Antiguo 21/02/2013, 07:20
 
Fecha de Ingreso: septiembre-2008
Ubicación: Manises,Valencia
Mensajes: 114
Antigüedad: 15 años, 6 meses
Puntos: 13
Respuesta: No recibo variable de $HTTP_GET_VARS

Jo!
Ya he encontrado el problema! (seré tonto!)

Gracias a tod@s los que habéis perdido el tiempo leyendolo.

El problema estaba en una "m" en lugar de una "n" en el código de la página "mas_productos"

En particular :
Ponía "$numero_f = $_GET[mumero_f];"
donde debia poner: "$numero_f = $_GET[numero_f];"

Cachis!
  #5 (permalink)  
Antiguo 21/02/2013, 09:33
Avatar de CoriaWeb  
Fecha de Ingreso: septiembre-2012
Ubicación: Coria del Río - Sevilla
Mensajes: 1.795
Antigüedad: 11 años, 7 meses
Puntos: 130
Respuesta: No recibo variable de $HTTP_GET_VARS

jajajja ese tipo de errores suele ser por cansansio ya eh.. :P que es cuando ya no ves nada del codigo ;)
__________________
Hosting de Calidad
Servidores Dedicados Administrados
CoriaWeb.hosting

Etiquetas: formulario, mysql, recibo, registro, select, tabla, variable
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:25.