Problema redireccionamiento urgente - Ayuda necesaria

  • Autor Autor sincastillo
  • Fecha de inicio Fecha de inicio
S

sincastillo

Gamma
Buenas tardes amigos de forobeta:

Tengo el siguiente problema: tengo un archivo llamado index.php y desearía que al acceder a index.php?a=loquesea se muestre el archivo 1.php ; que al acceder a index.php?b=loquesea se muestre únicamente el archivo 2.php (ya no deseo que se muestre 1.php) y que al acceder a index.php?c=loquesea cargue el archivo 3.php (que no se muestre ni 1.php, ni 2 php).

El código que estuve intentando fue este:

<?
//recojemos el valor de la variable id con la funcion GET
$valor=$_GET[a];
?>
<?php if(empty($valor)) echo "2.php" }else{
//si tiene datos, mostrar los datos
echo 1.php;
?>

Pero me muestra error al ejecutar ese código y la verdad es que no sé como introducir el tercer valor de 3.php.

Agradecería bastante si pudieran por favor ayudarme.

Saludos.!!!
 
Intenta con esto y me cuentas si te funciona:

PHP:
<?php
if (isset($_GET['a'])){
   header("Location: 1.php");
}
else if (isset($_GET['b'])){
   header("Location: 2.php");
}
else if (isset($_GET['c'])){
   header("Location: 3.php");
}
?>
 
A simple vista a tu code le faltaba un "{"

así debería ser:

Insertar CODE, HTML o PHP:
<?php if(empty($valor)){
 echo "2.php" 
} else {
//si tiene datos, mostrar los datos
echo 1.php;
?>

el code de vallel te funcionrá 😉.

kj
 
PHP:
<?php 
$valor = $_GET['a'];

switch($valor) {
case '1':
include('1.php');
break;
case '2':
include('2.php');
break;
case '3':
include('3.php');
break;
default: include('1.php');
?>

Es mejor un include(); que un header(); ya uqe el header lo que hace es redirijirte , y con el echo ni te funcionara xD.
 
La mejor forma seria:

PHP:
<?php
$var_a = $_GET['a'];
$var_b = $_GET['b'];
$var_c = $_GET['c'];

if(is_numeric($var_a) and empty($var_b) and empty($var_c)){
  inculde('1.php');
}elseif(empty($var_a) and is_numeric($var_b) and empty()){
  inculde('2.php');
}elseif(empty($var_a) and empty($var_b) and is_numeric($var_c)){
  inculde('3.php');
}else{
  inculde('otra_cosa_o_1.php');
}
?>

Espero que te sirva,
saludos.
 
Eso es lo emocionante de la programación, al mismo problema varias soluciones. 🙂
 
Es mejor un include(); que un header(); ya uqe el header lo que hace es redirijirte , y con el echo ni te funcionara xD

Bueno, aquí depende lo que quieras hacer. Con header rediriges y con include muestras otro contenido o haces algo diferente en la misma página. Yo puse header por que en un inicio entendí que lo que quería era redirigir, pero ahora leyendo de nuevo pues si parece que es mas adecuado el include.
Incluso nos podríamos extender un poco más a ver si le conviene más usar un require_once, que la mayoria de las veces es lo mejor o un include_once.

Es mejor con switch

Claro, los switch siempre son mejores cuando son varias opciones, aunque aquí solo son 3 y no habría mucha diferencia. Pero si es buena práctica usar switch, ademas si en un futuro agregas más opciones ya tendrías el switch.

Simplemente trate de darle el ejemplo más sencillo, pero como bien comentan hay diferentes maneras de hacerlo, unas mejor que otras.

Saludos
 
Intenta con esto y me cuentas si te funciona:

PHP:
<?php
if (isset($_GET['a'])){
   header("Location: 1.php");
}
else if (isset($_GET['b'])){
   header("Location: 2.php");
}
else if (isset($_GET['c'])){
   header("Location: 3.php");
}
?>

Yo lo haría con includes mejor
 
te falta un } y a demas para recibir un valor debes usar: $valor=$_GET['a']; no $valor=$_GET[a];

utiliza la funcion isset en vez de empty
 
Atrás
Arriba