Foros del Web » Programando para Internet » PHP »

No puedo recoger variables pasadas por URL

Estas en el tema de No puedo recoger variables pasadas por URL en el foro de PHP en Foros del Web. Hola, mi problema es el que relata el titulo. Antes de nada decir que he puesto en on el register_globals de mi php.ini como ponia ...
  #1 (permalink)  
Antiguo 02/06/2006, 04:17
Avatar de miminiyo  
Fecha de Ingreso: abril-2006
Mensajes: 35
Antigüedad: 17 años, 11 meses
Puntos: 0
No puedo recoger variables pasadas por URL

Hola,

mi problema es el que relata el titulo. Antes de nada decir que he puesto en on el register_globals de mi php.ini como ponia en las FAQS pero no se ha resuelto nada.

El caso es que yo le paso a traves de URL algo como esto
[.....consultoria.php?seccion=completa&id=9], a un php cpn el sigiente codigo:


<?
$con = mysql_connect("localhost","root","root") or die (mysql_error());
mysql_select_db("base",$con) or die (mysql_error());

$id = $_GET["id"];

$result = mysql_query("SELECT seccion, tipo, ano, nombre, resumen, completa content FROM trabajo WHERE id='$id'", $con);

if ($row = mysql_fetch_array($result)){
echo "<table border = '1'> \n";
echo "<tr><td>Nombre</td><td>E-Mail</td></tr> \n";
do {
echo "<tr><td>".$row["completa"]."</td><td>".$row["nombre"]."</td></tr> \n";
} while ($row = mysql_fetch_array($result));
echo "</table> \n";
} else {
echo "¡ No se ha encontrado ningún registro !";
}
?>

</body>
</html>


Yo pienso que debería funcionar, de hecho si le quito de la consulta el "WHERE id='$id'", si que aparece el primer registro de la tabla. Pero no he conseguido que tome el id para seleccionar el registro que quiero.

No soy precisamente un experto en php/mysql asi que me estoy quedando sin ideas . A alguien se le ocurre algo?

Gracias
  #2 (permalink)  
Antiguo 02/06/2006, 04:56
Avatar de Azrael666  
Fecha de Ingreso: noviembre-2004
Mensajes: 652
Antigüedad: 19 años, 4 meses
Puntos: 1
haz un print $id para ver que te recoje la variable...

y pon $_GET['id'] ... con comillas simples (que puede ser donde está el fallo)
__________________
ALOZORRO v5.0 (ahora en .es)
  #3 (permalink)  
Antiguo 02/06/2006, 05:04
Avatar de miminiyo  
Fecha de Ingreso: abril-2006
Mensajes: 35
Antigüedad: 17 años, 11 meses
Puntos: 0
Gracias Azrael666 por la respuesta. He probado y ninguna de las dos opciones me ha dado resultado. Parece que no recoge la variable, pq el print $id no saca nada. Tampoco era lo de las comillas. Raro no?

Gracias otra vez de todas formas
  #4 (permalink)  
Antiguo 02/06/2006, 05:11
Avatar de Azrael666  
Fecha de Ingreso: noviembre-2004
Mensajes: 652
Antigüedad: 19 años, 4 meses
Puntos: 1
ostras pedrin.... pues si que es raro que no recoja la variable.....
nose.. a ver.. prueba esto:

Código:
if ($_SERVER['REQUEST_METHOD'] == "GET")
  $METOD="_GET";                       
else
  $METOD="_POST";

if(isset(${$METOD}['id'])) print "se recoje la variable: ".${$METOD}['id']; 
else "No hay manera.. no recoje la variable";
a ver...
__________________
ALOZORRO v5.0 (ahora en .es)
  #5 (permalink)  
Antiguo 02/06/2006, 05:21
Avatar de miminiyo  
Fecha de Ingreso: abril-2006
Mensajes: 35
Antigüedad: 17 años, 11 meses
Puntos: 0
Nada que no quiere. Lo he metido asi

Cita:
<?
$con = mysql_connect("localhost","root","root") or die (mysql_error());
mysql_select_db("basepym",$con) or die (mysql_error());


if ($_SERVER['REQUEST_METHOD'] == "GET")
{ $METOD="_GET"; }
else
{$METOD="_POST";}

if(isset(${$METOD}['id'])){ print "se recoje la variable: ".${$METOD}['id']; }
else {"No hay manera.. no recoje la variable"; }

$id = $_GET['id'];

$result = mysql_query("SELECT seccion, tipo, ano, nombre, resumen, completa content FROM trabajo WHERE id='$id'", $con);

if ($row = mysql_fetch_array($result)){
echo "<table border = '1'> \n";
echo "<tr><td>Nombre</td><td>E-Mail</td></tr> \n";
do {
echo "<tr><td>".$row["completa"]."</td><td>".$row["nombre"]."</td></tr> \n";
} while ($row = mysql_fetch_array($result));
echo "</table> \n";
} else {
echo "¡ No se ha encontrado ningún registro !";
}
?>
y solo obtengo: ¡ No se ha encontrado ningún registro !. Si le quito el WHERE id='$id' a la consulta me sale el primer registro como antes, pero nada de tu script
  #6 (permalink)  
Antiguo 02/06/2006, 05:38
Avatar de Azrael666  
Fecha de Ingreso: noviembre-2004
Mensajes: 652
Antigüedad: 19 años, 4 meses
Puntos: 1
prueba a poner mi codigo antes de:

$con = mysql_connect("localhost","root","root") or die (mysql_error());
mysql_select_db("basepym",$con) or die (mysql_error());

no se si cambiará algo.. pero vamos a probarlo todo...
__________________
ALOZORRO v5.0 (ahora en .es)
  #7 (permalink)  
Antiguo 02/06/2006, 05:39
Avatar de Azrael666  
Fecha de Ingreso: noviembre-2004
Mensajes: 652
Antigüedad: 19 años, 4 meses
Puntos: 1
y sino prueba con lo de antes poniendolo delante... el print $_GET['id']; lo primero de todo...

yo es que veo bien el codigo.. no se porque puede fallar
__________________
ALOZORRO v5.0 (ahora en .es)
  #8 (permalink)  
Antiguo 02/06/2006, 05:45
Avatar de miminiyo  
Fecha de Ingreso: abril-2006
Mensajes: 35
Antigüedad: 17 años, 11 meses
Puntos: 0
Nada de nada, no hace mención de recoger el id. Para probar mas cosas, lo he probado en el servidor de mi empresa, por si fuera mi maquina y tampoco rula

ya no se que hacer. pufff!
  #9 (permalink)  
Antiguo 02/06/2006, 05:51
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 18 años, 6 meses
Puntos: 19
Hazte un ejemplo lo más simple posible para comprobar que se pasan las variables por URL.
Código HTML:
<a href='destino.php?var=1&var=2'>enlace</a> 
destino.php
Código PHP:
print_r($_GET); 
Si no te funciona, me miraría la configuración del php. Suerte.
  #10 (permalink)  
Antiguo 02/06/2006, 05:59
Avatar de Azrael666  
Fecha de Ingreso: noviembre-2004
Mensajes: 652
Antigüedad: 19 años, 4 meses
Puntos: 1
oye.. y cuando te funcione dinos cual era el fallo.. que estoy intrigao...
__________________
ALOZORRO v5.0 (ahora en .es)
  #11 (permalink)  
Antiguo 02/06/2006, 06:04
Avatar de miminiyo  
Fecha de Ingreso: abril-2006
Mensajes: 35
Antigüedad: 17 años, 11 meses
Puntos: 0
algo ha salido

Cita:
Iniciado por jerkan
Hazte un ejemplo lo más simple posible para comprobar que se pasan las variables por URL.
Código HTML:
<a href='destino.php?var=1&var=2'>enlace</a> 
destino.php
Código PHP:
print_r($_GET); 
Si no te funciona, me miraría la configuración del php. Suerte.
ok, eso si me ha funcionado. Me ha salido esto:

Cita:
Array ( [var] => 2 )
  #12 (permalink)  
Antiguo 02/06/2006, 06:25
Avatar de miminiyo  
Fecha de Ingreso: abril-2006
Mensajes: 35
Antigüedad: 17 años, 11 meses
Puntos: 0
Eso mismo aplicado a mi pagina da esto:
Cita:
Array ( ) ¡ No se ha encontrado ningún registro !
  #13 (permalink)  
Antiguo 02/06/2006, 06:29
Avatar de miminiyo  
Fecha de Ingreso: abril-2006
Mensajes: 35
Antigüedad: 17 años, 11 meses
Puntos: 0
Por si acaso depende de lo que paso os dejo la ruta que yo le paso.
Cita:
paleoymas.com/secciones/consultoria/consultoria.php?seccion=completa&id=9
Puede depender de como le paso la variable desde el otro archivo o en el momento que la URL contiene la variable eso no le afecta?
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 12:37.