Foros del Web » Programando para Internet » PHP »

Envio de Variable por URL utilizando Header

Estas en el tema de Envio de Variable por URL utilizando Header en el foro de PHP en Foros del Web. Buenos días a toda la comunidad, espero por favor puedan ayudarme con el problema que presento: Realizo una busqueda de clientes, en el cual si ...
  #1 (permalink)  
Antiguo 07/11/2012, 09:11
 
Fecha de Ingreso: febrero-2012
Ubicación: Cagua Estado Aragua
Mensajes: 34
Antigüedad: 12 años, 2 meses
Puntos: 0
Envio de Variable por URL utilizando Header

Buenos días a toda la comunidad, espero por favor puedan ayudarme con el problema que presento:

Realizo una busqueda de clientes, en el cual si el cliente y a existe me redireccione a la factura activa enviando el id del cliente para poder insertarlo en la factura activa y sino que me redireccione al formulario de nuevos clientes, aqui les muestro mi codigo:

buscar_cliente.php
Código PHP:
<?
session_start
(); 
include 
"../conexion/conexion.php";

$sql=mysql_query("select id, ced_rif,nombre from clientes where ced_rif=".$_POST['ced_rif']."",$idconn);


//$total=mysql_fetch_array($sql);

 
if($sql>0)  
{
    
$total=mysql_fetch_array($sql);

    
header("location:factura_activa.php?id=".$fila['id']);
}
else
{
header("location:form_nuevo_cliente.php");
}
mysql_close($idconn);

?>
cuando el cliente no esta registrado me redirecciona perfectamente al formulario del nuevo cliente, el problema esta cuando el cliente ya existe . Aquí les muestro el otro código:

factura_activa.php
Código PHP:
            $sql="insert into facturas(id,cliente_id,numero_fact,numero_control,fecha) values('','".$_GET['id']."','".$numero."','".$numero."','".$fecha."')";

            
$result=mysql_query($sql,$idconn); 
me aparece el siuiente error: Notice: Undefined index: id in /var/www/sis_racing2/facturacion/factura_activa.php on line 31

Muchas Gracias de antemano, espero sus respuestas
  #2 (permalink)  
Antiguo 07/11/2012, 09:17
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: Envio de Variable por URL utilizando Header

Has comprobado en tu url si se muestra el valor? es decir.. despues de "id=" que hay?
__________________
Hosting de Calidad
Servidores Dedicados Administrados
CoriaWeb.hosting
  #3 (permalink)  
Antiguo 07/11/2012, 09:26
 
Fecha de Ingreso: abril-2009
Ubicación: en un lugar de la mancha
Mensajes: 236
Antigüedad: 15 años
Puntos: 38
Respuesta: Envio de Variable por URL utilizando Header

mysql_query no devuelve un valor devuelve un resource para depsues ser utilizado
te falta utilizar ese recurso devuelto

cambia

if($sql>0)

por

if ( mysql_num_rows($sql) > 0 )

y depsues de los headers colo un exit; tu no querras ke siga ejecutando el codigo depsues ke te redireccionan
  #4 (permalink)  
Antiguo 07/11/2012, 09:38
 
Fecha de Ingreso: febrero-2012
Ubicación: Cagua Estado Aragua
Mensajes: 34
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Envio de Variable por URL utilizando Header

En el url no se muestra nada, eso quiere decir que la variable no esta pasando. mira lo que aparece: http://localhost/sis_racing2/facturacion/factura_activa.php?id=
  #5 (permalink)  
Antiguo 07/11/2012, 09:41
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: Envio de Variable por URL utilizando Header

claro entonces el problema es de atras: $fila['id'] , ¿que es? de donde obtienes ese valor?
__________________
Hosting de Calidad
Servidores Dedicados Administrados
CoriaWeb.hosting
  #6 (permalink)  
Antiguo 07/11/2012, 09:42
 
Fecha de Ingreso: febrero-2012
Ubicación: Cagua Estado Aragua
Mensajes: 34
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Envio de Variable por URL utilizando Header

Hice lo que me dices rolygc pero todo sigue igual...
  #7 (permalink)  
Antiguo 07/11/2012, 09:44
 
Fecha de Ingreso: febrero-2012
Ubicación: Cagua Estado Aragua
Mensajes: 34
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Envio de Variable por URL utilizando Header

ese Valor lo obtengo de aqui $total=mysql_fetch_array($sql);
$fila['id'] vendría siendo el id del cliente que se supone que ya esta registrado... Te muestro el codigo de nuevo

Código PHP:
Ver original
  1. <?
  2. include "../conexion/conexion.php";
  3.  
  4. $sql=mysql_query("select id, ced_rif,nombre from clientes where ced_rif=".$_POST['ced_rif']."",$idconn);
  5.  
  6.  
  7. //$total=mysql_fetch_array($sql);
  8.  
  9.  if(mysql_num_rows($sql)>0)  
  10. {
  11.     $total=mysql_fetch_array($sql);
  12.     //$id_cliente=$fila['id'];
  13.     header("location:factura_activa.php?id=".$fila['id']);
  14.     exit;
  15. }
  16. else
  17. {
  18.     header("location:form_nuevo_cliente.php");
  19.     exit;
  20. }
  21. mysql_close($idconn);
  22.  
  23.  
  24. ?>
  #8 (permalink)  
Antiguo 07/11/2012, 09:44
 
Fecha de Ingreso: abril-2009
Ubicación: en un lugar de la mancha
Mensajes: 236
Antigüedad: 15 años
Puntos: 38
Respuesta: Envio de Variable por URL utilizando Header

lo mismo te pasa aki
Código PHP:
 $sql="insert into facturas(id,cliente_id,numero_fact,numero_control,fecha) values('','".$_GET['id']."','".$numero."','".$numero."','".$fecha."')"

            
$result=mysql_query($sql,$idconn); 
  #9 (permalink)  
Antiguo 07/11/2012, 09:46
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: Envio de Variable por URL utilizando Header

veo algo raro.. :D haber.. lo que quieres es que si hay algun resultado te haga una cosa y si no hay te haga otra, cierto?
__________________
Hosting de Calidad
Servidores Dedicados Administrados
CoriaWeb.hosting
  #10 (permalink)  
Antiguo 07/11/2012, 09:47
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: Envio de Variable por URL utilizando Header

usa esto haber si te sirve:

Código PHP:
Ver original
  1. <?
  2. include "../conexion/conexion.php";
  3.  
  4. $sql=mysql_query("select id, ced_rif,nombre from clientes where ced_rif=".$_POST['ced_rif']."",$idconn);
  5.  
  6.  
  7. $total=mysql_num_rows($sql);
  8.  
  9.  if($total>0)  
  10. {
  11.     $resultado=mysql_fetch_array($sql);
  12.     //$id_cliente=$resultado['id'];
  13.     header("location:factura_activa.php?id=".$resultado['id']);
  14.     exit;
  15. }
  16. else
  17. {
  18.     header("location:form_nuevo_cliente.php");
  19.     exit;
  20. }
  21. mysql_close($idconn);
  22.  
  23.  
  24. ?>
__________________
Hosting de Calidad
Servidores Dedicados Administrados
CoriaWeb.hosting
  #11 (permalink)  
Antiguo 07/11/2012, 09:53
 
Fecha de Ingreso: febrero-2012
Ubicación: Cagua Estado Aragua
Mensajes: 34
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Envio de Variable por URL utilizando Header

CoriaWeb muchas gracias, me ayudaste a encontrar el error, no era $fila sino $resultado, por eso no enviaba porque $fila no existe =)

ahora el problema es que en la factura activa no me muestra nada, me sale la pagina en blanco ¿eso se debe a que?
  #12 (permalink)  
Antiguo 07/11/2012, 09:57
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: Envio de Variable por URL utilizando Header

y que quieres que pase? :D muestras el codigo de esa pagina?
__________________
Hosting de Calidad
Servidores Dedicados Administrados
CoriaWeb.hosting
  #13 (permalink)  
Antiguo 07/11/2012, 10:05
 
Fecha de Ingreso: febrero-2012
Ubicación: Cagua Estado Aragua
Mensajes: 34
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Envio de Variable por URL utilizando Header

Código PHP:
Ver original
  1. <?
  2.             session_start();
  3.             require_once("../conexion/conexion.php");
  4.        
  5.         function numerofactura($nf=0001)
  6.         {
  7.             if($nf=0001)
  8.             {
  9.                 $nf=0001;
  10.                 return $nf;
  11.                 $nf=$nf+0001;
  12.             }
  13.             else
  14.             {
  15.                 $acum=$nf+0001;
  16.             }
  17.         return $acum;
  18.         }
  19.  
  20.         $numero=numerofactura();
  21.  
  22.            
  23.             $fecha= date("Y-m-d");
  24.     // El error me aparece en esta linea: Undefined index: id in /var/www/sis_racing2/facturacion/factura_activa.php on line 31
  25.             $sql="insert into facturas(id,cliente_id,numero_fact,numero_control,fecha) values('','".$_GET['id']."','".$numero."','".$numero."','".$fecha."')";
  26.             $result=mysql_query($sql,$idconn);
  27.            
  28.             if ($result>0)
  29.             $id=mysql_insert_id();
  30.  
  31.             $sql2="select clientes.nombre,clientes.ced_rif,fecha,numero_fact,numero_control,sub_total,iva,total  from facturas inner join clientes on clientes.id = facturas.cliente_id where id='".$id."'";
  32.             $result2=mysql_query($sql2,$idconn);
  33.              if($result2)  
  34.  {
  35.    echo "<table><tr><th>cliente</th><th>ced o rif</th><th>fecha</th><th># factura</th><th># control</th><th>subtotal</th><th>iva (12%)</th><th>total</th></tr>";
  36.    while($fila=mysql_fetch_array($result2))
  37.    {
  38.     echo "<tr><td>'".$fila['clientes.nombre']."'</td><td>'".$fila['clientes.ced_rif']."'</td><td>'".$fila['fecha']."'</td><td>'".$fila['numero_fact']."'</td><td>'".$fila['numero_control']."'</td><td>'".$fila['sub_total']."'</td><td>'".$fila['iva']."'</td><td>'".$fila['total']."'</td></tr>";
  39.    }
  40.    echo "</table>";
  41.  }
  42.             ?>
  #14 (permalink)  
Antiguo 07/11/2012, 10:34
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: Envio de Variable por URL utilizando Header

de donde recoges los valores de la linea 38?
__________________
Hosting de Calidad
Servidores Dedicados Administrados
CoriaWeb.hosting
  #15 (permalink)  
Antiguo 07/11/2012, 10:38
 
Fecha de Ingreso: febrero-2012
Ubicación: Cagua Estado Aragua
Mensajes: 34
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Envio de Variable por URL utilizando Header

esos valores los recojo del select, en la variable $sql2, linea 31
  #16 (permalink)  
Antiguo 07/11/2012, 10:51
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: Envio de Variable por URL utilizando Header

Vale vale, no me di cuenta, ahora que lo e leido bien e visto todo :D

mencionas que el error esta en esta linea cierto?

Código PHP:
Ver original
  1. $sql="insert into facturas(id,cliente_id,numero_fact,numero_control,fecha) values('','".$_GET['id']."','".$numero."','".$numero."','".$fecha."')";

y el error lo que te esta diciendo es que no has definido el id, creo que hay es donde esta el lio.. si no es asi confirmamelo porque me e liado :D

El id es autoincrement?
__________________
Hosting de Calidad
Servidores Dedicados Administrados
CoriaWeb.hosting
  #17 (permalink)  
Antiguo 07/11/2012, 11:01
 
Fecha de Ingreso: febrero-2012
Ubicación: Cagua Estado Aragua
Mensajes: 34
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Envio de Variable por URL utilizando Header

exactamente ese es el problema, no me reconoce el id en $_GET['id'] me dice que no esta definida
  #18 (permalink)  
Antiguo 07/11/2012, 11:04
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: Envio de Variable por URL utilizando Header

no no, si te fijas envias 5 valores para insertar:

Código PHP:
Ver original
  1. (id,cliente_id,numero_fact,numero_control,fecha)
  2. ('','".$_GET['id']."','".$numero."','".$numero."','".$fecha."')

"creo" que el error esta en el primer valor id, que lo tienes vacio, ese campo "id" como esta en la base de datos? autoincrement? porque tu el valor del get se lo estas dando a cliente_id

Porque en la url ahora si ves el valor despues de id= cierto?
__________________
Hosting de Calidad
Servidores Dedicados Administrados
CoriaWeb.hosting
  #19 (permalink)  
Antiguo 07/11/2012, 11:13
 
Fecha de Ingreso: febrero-2012
Ubicación: Cagua Estado Aragua
Mensajes: 34
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Envio de Variable por URL utilizando Header

OK te explico, el espacio vacío es para el id de la tabla facturas, que se almacena de manera automática (y si es autoincrement), $_GET['id'] vendría siendo el id del cliente, que pretendo almacenarlo en el atributo cliente_id de mi tabla facturas el cual es una clave foránea que hace referencia a la tabla clientes

El id si se muestra en el URL, eso quiere decir que si se envía, pero factura_activa.php no lo recibe (creo que eso es lo que sucede)
  #20 (permalink)  
Antiguo 07/11/2012, 11:15
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: Envio de Variable por URL utilizando Header

si es autoincrement prueba asi:

Código PHP:
Ver original
  1. $sql="insert into facturas(cliente_id,numero_fact,numero_control,fecha) values('".$_GET['id']."','".$numero."','".$numero."','".$fecha."')";
__________________
Hosting de Calidad
Servidores Dedicados Administrados
CoriaWeb.hosting
  #21 (permalink)  
Antiguo 07/11/2012, 11:52
 
Fecha de Ingreso: febrero-2012
Ubicación: Cagua Estado Aragua
Mensajes: 34
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Envio de Variable por URL utilizando Header

ya lo intente y sigue igual, no comprendo porque no me reconoce la variable
  #22 (permalink)  
Antiguo 07/11/2012, 12:06
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: Envio de Variable por URL utilizando Header

antes del insert pon un echo haber que eso:

echo "Este es el resultado del get: --> ".$_GET['id'];

Haber que muestra.
__________________
Hosting de Calidad
Servidores Dedicados Administrados
CoriaWeb.hosting
  #23 (permalink)  
Antiguo 08/11/2012, 08:35
 
Fecha de Ingreso: febrero-2012
Ubicación: Cagua Estado Aragua
Mensajes: 34
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Envio de Variable por URL utilizando Header

Realizo el echo y me muestra el id del cliente, pero igual no me reconoce el id del cliente, sale lo mismo: Notice: Undefined index: id_cliente in /var/www/sis_racing2/facturacion/factura_activa.php

Intente pasar el id por medio de una variable de SESSION, pero sigue mostrando el mismo error: Notice: Undefined index: id_cliente in /var/www/sis_racing2/facturacion/factura_activa.php, creo que el problema se encuentra en otro lugar, ya que en el modulo de compras utilizo la variable de SESSION y funciona perfectamente.

Aquí te muestro el cambio que realice:

buscar_cliente.php
Código PHP:
Ver original
  1. <?
  2. include "../conexion/conexion.php";
  3.  
  4. $sql=mysql_query("select id, ced_rif,nombre from clientes where ced_rif=".$_POST['ced_rif']."",$idconn);
  5.  
  6.  if($sql>0)  
  7. {
  8.     $fila=mysql_fetch_array($sql);
  9.     $cliente=$fila['id'];
  10.     $_SESSION['id_cliente'] = $cliente;
  11.  
  12.     header("location:factura_activa.php");
  13.     }
  14. else
  15. {
  16. header("location:form_nuevo_cliente.php");
  17. }
  18. mysql_close($idconn);
  19. ?>

factura_activa.php
Código PHP:
Ver original
  1. //Te muestro solamente donde me señala el error
  2.             $sql="insert into facturas(id,cliente_id,numero_fact,numero_control,fecha) values('','".$_SESSION['id_cliente']."','".$numero."','".$numero."','".$fecha."')";
  3.             $result=mysql_query($sql,$idconn);

Ahora te voy a mostrar el modulo de compras terminado para que veas que hice lo mismo y funciona a la perfección:

registrar_compra.php
Código PHP:
Ver original
  1. <?
  2. include "../conexion/conexion.php";
  3.  
  4. $costo_total=$_POST['costo_base']*1.12;
  5. $iva=$costo_total-$_POST['costo_base'];
  6.  
  7. $sql=mysql_query("insert into compras(id,fecha,proveedor_id,numero_fact,costo_base,iva,costo_total) values ('','".$_POST['fecha']."','".$_POST['proveedores']."','".$_POST['numero_fact']."','".$_POST['costo_base']."','$iva','$costo_total')",$idconn);
  8.  
  9. if ($sql>0)
  10.  
  11. $_SESSION['id_compra'] = $id;
  12.  
  13. mysql_close($idconn);
  14.  
  15. header("location:form_detalle_compras.php");
  16. ?>

registrar_detalle_compra.php
Código PHP:
Ver original
  1. <?
  2. include "../conexion/conexion.php";
  3.  
  4.     $sql="insert into detalles_compras(id,compra_id,producto_id,cantidad) values ('','".$_SESSION['id_compra']."','".$_POST['producto']."','".$_POST['cantidad']."')";
  5.     $result=mysql_query($sql,$idconn);
  6.  
  7.     $sql2="update productos set existencia=existencia+".$_POST['cantidad']." where id=".$_POST['producto']."";
  8.     $result2=mysql_query($sql2,$idconn);
  9.  
  10. mysql_close($idconn);
  11.  
  12. header("location:form_detalle_compras.php");
  13. ?>

Etiquetas: formulario, header, mysql, sql, url, 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 22:13.