Problema de redirecionamento urgente - Ajuda necessária

  • Autor Autor sincastillo
  • Data de início Data de início
Tradução em andamento: em alguns minutos este tópico estará em português. Por enquanto, o conteúdo está no original em espanhol. Ver original
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.!!!
 
Foi útil? Participe da conversa

Com sua conta grátis você pode responder, mandar mensagem privada ao autor e comprar com Saldo retido: o pagamento é liberado quando você recebe o combinado.

Leva 30 segundos · você volta a este tópico ao terminar
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:

Inserir CODE, HTML ou 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
 
Voltar
Topo