Ver Mensaje Individual
  #2 (permalink)  
Antiguo 01/09/2004, 05:32
josemi
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

Veamos si te explico el orden en que suceden las cosas:

1.- Pones en la barra index.php?go=noticias.php
2.- Le llega al servidor web esa peticion.
3.- El servidor web se lo pasa a PHP.
4.- PHP lee el querystring (los parametros), y crea esas variables con esos valores.
5.- PHP lee y ejecuta tu script.

Asi que tal como lo tienes es lo mismo que si tu codigo fuese:
Código PHP:
$go=1;
$go=2
Es decir, el valor que asignas en el codigo sobreescribe el valor pasado por parametro.

Lo que tu realmente quieres hacer es "si no se pasa un valor por la URL, usar este valor por defecto". Y eso se implementa asi:
Código PHP:
if (!isset($_GET['go'])) {
  
$go='principal.php'// tu valor por defecto
} else {
  
$go=$_GET['go'];

(para que funcione con register_globals a OFF). O como normalmente se ve:
Código PHP:
$go=(isset($_GET['go']))?$_GET['go']:'principal.php'
con el operador ternario.

Esto seria lo que es el uso de valores por defecto. Luego estan las consideraciones de seguridad (todo lo que venga del usuario es potencialmente peligroso) en el tema del include de un valor pasado como parametro. Existen soluciones mas seguras (como el uso de arrays para almacenar los ficheros a incluir y usar los indices del array como parametros en la URL).

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.