Foros del Web » Programando para Internet » PHP »

no me envía el id

Estas en el tema de no me envía el id en el foro de PHP en Foros del Web. hola, tengo este codigo Código PHP: <?php include( "conexion.php" ); $lang = $_COOKIE [ 'lang' ]; $lang = "lang/" . $lang . ".php" ; include ( ...
  #1 (permalink)  
Antiguo 10/08/2011, 08:45
 
Fecha de Ingreso: junio-2011
Ubicación: Asturias
Mensajes: 228
Antigüedad: 12 años, 10 meses
Puntos: 14
no me envía el id

hola, tengo este codigo
Código PHP:
<?php
include("conexion.php");
$lang=$_COOKIE['lang'];
$lang="lang/".$lang.".php";
include (
"$lang");
$link=conectarse();
$query mysql_query("SELECT * FROM admin"$link);
session_name("sesiondirh");
session_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" href="admin.css" />
<title><? echo $adminpanel?></title>
</head>

<body>
    <div id="page">
      <div id="pagetop">
        <h1><? echo $adminpanel?></h1>
        <div class="links">        
            <ul>
                <li><a href="#"><? echo $contacto?></a></li>
                   <li><a href="#"><? echo $managepayments?></a></li>
                   <li><a href="ptc.php"><? echo $manageptcs?></a></li>
                   <li><a href="index.php"><? echo $inicio?></a></li>
                
            </ul>
        </div>
     </div>
        
        <div id="header">
<div id="main">
    <div class="content">
            <div class="main_top">
                <h1>Page Title</h1>
            </div>
            
               <div class="main_body">
                  <?
                  
if(isset($_SESSION['usuario']) && isset($_SESSION['password']))
                    {
                    
$id=$_GET['id'];
                    if( isset (
$_GET['nombre']) && isset ($_GET['comprobante']) )
                      {
                      
$query mysql_query("SELECT * FROM datos where id_ptc=$id"$link);
                      
$pagos=mysql_result($query0"pagos");
                      
$pagos=$pagos+1;
                      
$nombre=($_GET['nombre']);
                      
$comprobante=($_GET['comprobante']);
                      
$codigo="<a href=\"".$comprobante."\" title=\"".$nombre."\">".$nombre."</a>";
                      
mysql_query("insert into comprobantes (id_comprobante,nombre,codigo,imagen,id_ptc) values
                      ('','$nombre','$codigo','$comprobante','$id')"
,$link);
                      
mysql_query("update datos set pagos=$pagos where id_ptc=$id",$link);
                      }
                  
?>
                  <form method="GET" ACTION="a_comprobante.php?id=<?echo $id ?>">  

                  <input type="text" name="nombre">

                  <input type="text" name="comprobante">

                  <input type="submit" name="accion"  value="enviar">
                  </form>
                  <?
                    

                  
?>
               
                </div>
            
            </div>
            <div class="clear">&nbsp;</div>
        </div>
<div id="footer">   
        </div>        
        </div>
</body>
</html>
Recoge el id, pero cuando envía el formulario en vez de enviarlo a a_comprobante.php?id=y la id, envía toda la informacion en la url, y me da estos dos errores.
Notice: Undefined index: id in C:\xampp\htdocs\manager\a_comprobante.php on line 45

Warning: mysql_result() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\manager\a_comprobante.php on line 49
Alguien sabe la solucion?
Gracias de antemano
  #2 (permalink)  
Antiguo 10/08/2011, 09:06
Avatar de PIRRUMAN  
Fecha de Ingreso: febrero-2006
Ubicación: Monterrey, Nuevo León
Mensajes: 633
Antigüedad: 18 años, 3 meses
Puntos: 53
Respuesta: no me envía el id

te recomendaria que imprimeras tanto tus consultas como tus variables en cada paso

algo asi como :
Cita:
if(isset($_SESSION['usuario']) && isset($_SESSION['password']))
{
$id=$_GET['id'];
echo "mi id:".$id."<br>";
....
Cita:
{
$query = mysql_query("SELECT * FROM datos where id_ptc=$id", $link);
print "query:".$query."<br>";

$pagos=mysql_result($query, 0, "pagos");
print "pagos:".$pagos."<br>";
$pagos=$pagos+1;
print "pagos:".$pagos."<br>";
$nombre=($_GET['nombre']);
print "nombre:".$nombre."<br>";
$comprobante=($_GET['comprobante']);
print "comprobante:".$comprobante."<br>";
......etc.
}
con esto podrias verificar si los querys estan haciendose corectamente y tus variables estan pasando bien
__________________
“Prefiero ser un tonto momentaneo que un eterno ignorante”
“¡El éxito es resultado de los aciertos,los aciertos resultado de la experiencia y la experiencia resultado de los errores!”
  #3 (permalink)  
Antiguo 10/08/2011, 09:59
Avatar de xtimed  
Fecha de Ingreso: julio-2009
Ubicación: BCN - México
Mensajes: 226
Antigüedad: 14 años, 9 meses
Puntos: 41
Respuesta: no me envía el id

linea 42 "<?" cambiala por "<?php" igual la 67
  #4 (permalink)  
Antiguo 10/08/2011, 10:00
Avatar de Uncontroled_Duck
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Málaga [Spain]
Mensajes: 806
Antigüedad: 13 años
Puntos: 261
Respuesta: no me envía el id

Lanza ese error por que la variable $id=$_GET['id']; no está recibiendo los datos correctamente de la url.

Comprueba que cuando se carga ese escript, la url tiene algo así:

http://www.sitio.com/script.php?id=12

ó

http://www.sitio.com/script.php?otravar=var&id=12&....

Si cambia el nombre, no está en la url o no está separada por los carácteres correspondientes no leerá la variable.

Saludos,
__________________
Todos agradeceremos que pongas el código en su respectivo Highlight
  #5 (permalink)  
Antiguo 10/08/2011, 12:41
 
Fecha de Ingreso: junio-2011
Ubicación: Asturias
Mensajes: 228
Antigüedad: 12 años, 10 meses
Puntos: 14
Respuesta: no me envía el id

el problema, es que me da esta url despues de enviar el formulario
/a_comprobante.php?nombre=Beruby3&comprobante=http% 3A%2F%2Fwww.comprobanteberuby.com&accion=enviar
cuando solo debería darme a_comprobante.php?id=la id.

Voy a hacer lo que me recomienda PIRRUMAN cuando pueda haber.

Se que la primera vez que abres esa página, la url está correcta y sí recoge el id, pero al enviar el formulario ya me da la otra url y no tiene el id.
Me ha pasado otra vez, pero no me acuerdo de como lo solucione
  #6 (permalink)  
Antiguo 11/08/2011, 05:55
 
Fecha de Ingreso: junio-2011
Ubicación: Asturias
Mensajes: 228
Antigüedad: 12 años, 10 meses
Puntos: 14
Respuesta: no me envía el id

por si ayuda a alguien, lo planteo de otra manera.
porque cuando envio este formulario
<form method="GET" ACTION="a_comprobante.php?id=<?echo $id ; ?>">

<input type="text" name="nombre">

<input type="text" name="comprobante">

<input type="submit" name="accion" value="enviar">
</form>
me envia a esta direccion
http://localhost/manager/a_comprobante.php?nombre=Beruby3&comprobante=http% 3A%2F%2Fwww.comprobanteberuby.com&accion=enviar
En lugar de a
http://localhost/manager/a_comprobante.php?id=23
  #7 (permalink)  
Antiguo 11/08/2011, 08:04
Avatar de PIRRUMAN  
Fecha de Ingreso: febrero-2006
Ubicación: Monterrey, Nuevo León
Mensajes: 633
Antigüedad: 18 años, 3 meses
Puntos: 53
Respuesta: no me envía el id

CREO que por q mandas por metodo get cambia a metodo post el formulario

ademas el id q quieres enviar envialo dentro del form mediante un input hidden asi podras recuperarlo sin problemas

Cita:
<form method="POST" ACTION="a_comprobante.php"> <<<<///eliminas la variable por get

<input type="text" name="nombre">

<input type="text" name="comprobante">

<input type="submit" name="accion" value="enviar">
Cita:
<input type=hidden name=id value=<?echo $id;?>
</form>


y la recibes de la siguiente forma

$id=$_POST['id'];

o

$id=$_REQUEST['id'];
__________________
“Prefiero ser un tonto momentaneo que un eterno ignorante”
“¡El éxito es resultado de los aciertos,los aciertos resultado de la experiencia y la experiencia resultado de los errores!”
  #8 (permalink)  
Antiguo 11/08/2011, 09:37
 
Fecha de Ingreso: junio-2011
Ubicación: Asturias
Mensajes: 228
Antigüedad: 12 años, 10 meses
Puntos: 14
Respuesta: no me envía el id

exacto, era porque utilizaba GET en lugar de POST.
Muchas gracias

Etiquetas: html, mysql, sql, formulario, usuarios
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 16:41.