Foros del Web » Programando para Internet » PHP »

Variable en url, dice que no está

Estas en el tema de Variable en url, dice que no está en el foro de PHP en Foros del Web. 'nas, por aquí a molestar un rato... Primera vez que me peleo con php.... y yá me trabé... Url redireccionada desde javascript http://localhost/pagina.php?r=1024 ok, pretendo ...
  #1 (permalink)  
Antiguo 17/08/2004, 12:36
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Variable en url, dice que no está

'nas, por aquí a molestar un rato...

Primera vez que me peleo con php.... y yá me trabé...

Url redireccionada desde javascript


http://localhost/pagina.php?r=1024

ok, pretendo recoger la variable r desde php

Y le digo...

echo $r;

y me dice que no está definida
Cita:
Notice: Undefined variable: r in Z:\webs\encabezado_inc.php on line 6
Y también he probado así

$res = $HTTP_GET_VARS["$r"];
echo $res;

y me dice lo mismo.

¿por qué?

gracias y saludos
  #2 (permalink)  
Antiguo 17/08/2004, 12:47
Avatar de Webstudio
Colaborador
 
Fecha de Ingreso: noviembre-2001
Ubicación: 127.0.0.1
Mensajes: 3.499
Antigüedad: 22 años, 5 meses
Puntos: 69
Hello Tunait, que raro leerte fuera de Moderadores.
Esto pasa porque seguramente, estás aprendiendo con algún tutorial que quedó desactualizado, ya que eso de automáticamente tener disponible la variable en PHP, que se definía en el Querystring, ya no va desde la versión 4.1.0 del PHP.
Para hacer lo que necesitás, tenés que usar el Array Superglobal $_GET, así :

Código PHP:
<?php
$r 
$_GET['r'];
echo 
$r
?>
Saludos

contesto rapidito para ganarle a cluster que seguro debe estar respondiendo al mismo tiempo que yo :P
__________________
Tutoriales Photoshop | Web-Studio.com.ar
Artículos PHP | ZonaPHP.com
  #3 (permalink)  
Antiguo 17/08/2004, 13:20
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Hola Webstudio

Fenomenal, a la primera

Zanks'alot
  #4 (permalink)  
Antiguo 17/08/2004, 13:47
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Em ... más de lo mismo, pero por otro lao.

Alguna forma de que no de error si la variable no está en la url?

Algo tipo...

if (está definida en la url){
$r = $_GET['r'];
}
else{
$r = algo
}
echo $r;

Última edición por tunait; 17/08/2004 a las 13:48
  #5 (permalink)  
Antiguo 17/08/2004, 13:51
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

isset() www.php.net/isset

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #6 (permalink)  
Antiguo 17/08/2004, 13:54
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Aish mil gracias josemi
  #7 (permalink)  
Antiguo 17/08/2004, 14:04
Avatar de Webstudio
Colaborador
 
Fecha de Ingreso: noviembre-2001
Ubicación: 127.0.0.1
Mensajes: 3.499
Antigüedad: 22 años, 5 meses
Puntos: 69
Ya van dos que le ganamos a Cluster :)
Yo lo hago de esta manera, utilizando el operador ternario (del cual estoy enamorado) :
Código PHP:
<?php
$r 
= isset($_GET['r'])?$_GET['r']:'valor_por_defecto';
?>
De esta manera, si hay algo en la variable por Query 'r', se lo asigna a la variable, sino, le da el 'valor_por_defecto'. Y de esta manera el PHP no da NOTICE o WARNING ni en el nivel más sensible de errores.
__________________
Tutoriales Photoshop | Web-Studio.com.ar
Artículos PHP | ZonaPHP.com
  #8 (permalink)  
Antiguo 17/08/2004, 14:04
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Hola tunait xD (aprendiendo PHP?)

Deberías usar:

Código PHP:
if (isset($_GET['r'])){
// usas $_GET['r'] .. ejemplo:
echo $_GET['r'];

Eso sucede por qué tienes el nivel de reportes de "avisos" (como esos "Notice") que te avisan justamente de una "no buena" programación .. Ese nivel de avisos lo define (php.ini) la directiva: error_reporting así puedes configurar por ejemplo que no dé "Notice", cosa que es muyyyy útil para depurar en tiempo de desarrollo. Cuando tengas terminado tu aplicación y entras a producción ahí lo cambias. Se puede ajustar también en tiempo de ejecución de tus scripts con la función de mismo nombre (www.php.net/error_reporting)

Un saludo,

PD: jeje webstudio ... xDD me ganastes xDD.
  #9 (permalink)  
Antiguo 17/08/2004, 14:05
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Vaya . .jejej me ganaron todos ;) ..

Un saludo,
  #10 (permalink)  
Antiguo 17/08/2004, 14:48
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Ah, qué bueno, me gusta la forma que propones, Webstudio, no tenía idea de que se llamara operador ternario pero en javascript lo uso mucho, bueno saber que también lo puedo usar en php, veri lot of zenquius

Cita:
Iniciado por Cluster
Hola tunait xD (aprendiendo PHP?)
Holas Cluster

pues sip, yá tocaba, me había prometido aprenderlo este mes de vacas y el hecho de que un cliente haya escogido un hosting que no tiene soporte para asp me ha puesto en movimiento con el tema.... (dolor de cabeza que arrastro ya ... )

Cita:
Eso sucede por qué tienes el nivel de reportes de "avisos" (como esos "Notice") que te avisan justamente de una "no buena" programación .. Ese nivel de avisos lo define (php.ini) la directiva: error_reporting así puedes configurar por ejemplo que no dé "Notice", cosa que es muyyyy útil para depurar en tiempo de desarrollo. Cuando tengas terminado tu aplicación y entras a producción ahí lo cambias. Se puede ajustar también en tiempo de ejecución de tus scripts con la función de mismo nombre (www.php.net/error_reporting)
Hum... qué buena info, me la guardo

El tema es que, de cualquier forma, dudo mucho que tenga acceso al php.ini en el servidor remoto donde irá finalmente alojado el sitio. Es más... me tiene algo mosqueada que, por lo que he visto en la descripción de su oferta, tiene soporte para php3 y he leido por ahí que el foreach (que lo estoy usando con un array) es soportado a partir de php4. Mañana probaré el lio este en el servidor remoto a ver por dónde explota lo que hice hoy....

Mil gracias
  #11 (permalink)  
Antiguo 17/08/2004, 16:05
Avatar de Webstudio
Colaborador
 
Fecha de Ingreso: noviembre-2001
Ubicación: 127.0.0.1
Mensajes: 3.499
Antigüedad: 22 años, 5 meses
Puntos: 69
La gracia es que el nivel de reporte, no es necesario que lo configures tocando el php.ini, sino que hay una función (que maravillosamente, se llama error_reporting), que te permite cambiar el nivel de reporte del error, en tiempo de ejecución. Se considera una buena práctica, el poner el nivel al máximo durante el desarrollo :

error_reporting(E_ALL);

y luego desactivarlo al momento de llevar la aplicación a Producción:

error_reporting(0); ? (creo que era con cero)

Te recomiendo que si el server tiene soporte para php3, te cambies de hosting ( o hagas que tu cliente cambie de hosting) lo antes posible, porque viejas versiones del PHP, sobre todo en la rama del 3, tienen fallos de seguridad explotables, que no poseen las últimas versiones. Aparte deque te vas a ver limitadísima en tus capacidades para explotar el lenguaje al máximo.

Saludos

PD : no recuerdo si se llamaba Operador Ternario o no, pero es una linda manera de llamarlo :)
__________________
Tutoriales Photoshop | Web-Studio.com.ar
Artículos PHP | ZonaPHP.com
  #12 (permalink)  
Antiguo 17/08/2004, 16:27
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Sigo tomando notas .... bueno saber lo del error_reporting

Respecto a lo del hosting.... la verdá que el cliente podría haber preguntado antes de contratarlo. Me ha extrañado que tengan el php3 todavía a estas alturas. Afortunadamente estoy usando php básicamente para generar un menú y poder tenerlo en un include y escribir según y qué nombres de archivo dependiendo de la resolución del monitor, no hay acceso a bases de datos ni nada.
De todasformas les tiraré algunas piedras a ver si hay posibilidad de cambiar de hosting


Operador Ternario me gusta, suenta a tierno ....
  #13 (permalink)  
Antiguo 17/08/2004, 19:49
Avatar de Webstudio
Colaborador
 
Fecha de Ingreso: noviembre-2001
Ubicación: 127.0.0.1
Mensajes: 3.499
Antigüedad: 22 años, 5 meses
Puntos: 69
Operador Tiernario
__________________
Tutoriales Photoshop | Web-Studio.com.ar
Artículos PHP | ZonaPHP.com
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 09:43.