variable en la URL

Iniciado por dimitrix, 7 Abril 2007, 17:03 PM

0 Miembros y 1 Visitante están viendo este tema.

dimitrix

Haber si me explico, estoy haciendo una web, y hay un apartado que es para ver la TV, pero hay como 25 canales, y no quiero que quede:

dominio.es/tv/tele5.php
dominio.es/tv/Antena3.php
...

ya que gastaria espacio y me costaria hacerlo...

Entonces he pensado hacer un archivo que sea.
dominio.es/tv/index.php

y donde se tenga que mostrar la ventana de TV poner:

Citar
<?php
include("$canal.php")
?>

y que si quiero que sea t5, la URL sea:
http://dominio.es/tv/index.php?canal=t5

Y que se ponga en el include el archivo t5.php
----------

lo que pasa es que si se pone un valor equivocado como
http://dominio.es/tv/index.php?canal=asf
te manda las lineas:

Warning: main(ds.php): failed to open stream: No such file or directory in /var/www/vhost/domino.es/home/html/web/pruebas.php on line 8

Warning: main(): Failed opening 'ds.php' for inclusion (include_path='.:/usr/share/pear') in /var/www/vhost/dominio.es/home/html/web/pruebas.php on line 8



Puedo hacer algo, para que se redirija a por ejemplo error.php ¿?




Red Mx

eres nuevo en el php pero bueno

puedes hacer esto


if(empty($canal)){//asi verias que no venga la varible vacia
echo'Lo siento no se encontro ese canal';
}else{
//aki puedes poner un switch para seleccionar un canal
// y puede poner una pagina base en la cual solo cambien la lineas
//del codigo para la tele
}


explicate mas por cierto no que ya tye avias ido que no se que naaa!!! XD
Desarrollar Malware Es Causa De Cancer...

Ertai

Esto va en PHP.

Usa el switch - case

http://es2.php.net/switch

Y mucho cuidadin al incluir una variable como lo haces tu o puedes crearte un RFI bien bonito en tu codigo.

Saludos!
Si la felicidad se comprara, entonces el dinero sería noble.


void rotar_by_ref(int& a, int& b) {
   /* Quien dijo que no se podia sin una variable temporal? */
   *a = *a ^ *b;
   *b = *a ^ *b;
   *a = *a ^ *b;
}

dimitrix

que eso eso de RFI¿? que podria pasar ¿?




дٳŦ٭

Cita de: dimitrix1 en  7 Abril 2007, 18:57 PM
que eso eso de RFI¿? que podria pasar ¿?

Qué puede pasar? de todo  ;D

Revisate esto.


Con sangre andaluza :)


dimitrix

Haber, yo uso esto:

Citar<?php
include("$canal.php")
?>

y Red Mx puso esto:

Citarif(empty($canal)){//asi verias que no venga la varible vacia
echo'Lo siento no se encontro ese canal';
}else{
//aki puedes poner un switch para seleccionar un canal
// y puede poner una pagina base en la cual solo cambien la lineas
//del codigo para la tele
}

bueno, pues simplemente, cambie una cosa por otra, pero me da error, como quedaria, para pegar.

PD: ¿Que quieres decir con esto?:
explicate mas por cierto no que ya tye avias ido que no se que naaa!!! XD




Red Mx

es que primero leee un tutorial de PHP por creo andas perdido sabiendo C php se papita

Tutorial php completo formato PDF

http://www.piensaenphp.com/redmx/foro/viewtopic.php?t=37


<?php
if(empty($canal)){//asi verias que no venga la varible vacia
echo'Lo siento no se encontro ese canal';
}else{
//aki puedes poner un switch para seleccionar un canal
// y puede poner una pagina base en la cual solo cambien la lineas
//del codigo para la tele
include("$canal.php")// no se si funcione esta linea
}
?>


Desarrollar Malware Es Causa De Cancer...

dimitrix

haber el codigo que me has dado, si lo pego tal cual me da problemas, lo he modificado y tal, pero en fin lo he dejado algo así:

<?php
if(empty($canal)){//asi verias que no venga la varible vacia
echo'Lo siento no se encontro ese canal';
}
include("$canal.php")// no se si funcione esta linea
?>

Pero así no me pueden hacer un RFI ¿?

Y Ertai, he mirado la web que me dijistes lo de los switch esos, pero eso sale como comparar 2 o más valores, cual seria el que tendria que usar yo ¿?




Ertai

Hola,

Aquí te dejo un ejemplo de como usar el switch. Suponiendo que tienes en $i la variable que te llega en la URL (propiamente dicho, GET), este código incluirá el archivo que toca dependiendo de su valor, y en caso de que tuviera un valor "inesperado" o que tu no te esperavas, hará la rama del default.

De esta manera tu código esta mucho más limpio y bonito y, a la vez, evitas el RFI (Remote File Inclusion). Porque? Fijate que yo solo hago includes de un archivo, pero nunca de una variable. Si dejas que lo haga una variable, dejas demasiada libertad al usuario para poder hacer un include de cualquier archivo (incluso tambien de algun archivo maligno alojado en otro servidor).

Para + info leete el link que te dejó Ing_Amc de Wikipedia.


<?php
 
switch ($i) {
     case 
"antena3":
         include(
"antena3.php");
         break;
     case 
"telecinco":
         include(
"telecinco.php");
         break;
     case 
"la_siete":
         include(
"la_siete.php");
         break;
     default:
         include(
"error.php");
 }
?>



Saludetes!
Si la felicidad se comprara, entonces el dinero sería noble.


void rotar_by_ref(int& a, int& b) {
   /* Quien dijo que no se podia sin una variable temporal? */
   *a = *a ^ *b;
   *b = *a ^ *b;
   *a = *a ^ *b;
}

dimitrix

Muchas gracias, te subiria karmas si pudiese pero el_brujo no lo ha activado  :xD