Несколько страниц переадресации, которые отображали сообщение раньше, является ли это лучшим методом?

У меня есть веб-сайт с примерно 50 страницами, каждый из которых имеет текстовую ссылку и ссылку на баннер,
Я хочу, чтобы они приводили к одной и той же странице перенаправления, которая перенаправляла бы их на внешний URL,
в соответствии с двумя переменными, которые были бы в этой баннерной / текстовой ссылке.

ссылка на баннер будет выглядеть примерно так:

http://mydomain.com/redirect.php?dest=2&source=banner 

Вот код, который, кажется, работает, я не программист, поэтому я только что собрал исправления отсюда и там.

 <!doctype html> <?php $id = $_GET['source']; // user would get to this page with an "id" that would be according to the link he clicked, either text or banner; this "id" info needs to be passed on to the external page as well, with the following "?referal" tag. if(isset($_GET['dest'])); // user would get to this page from one of about 50 different pages; his redirect destination would depened on the "dest" number of the link he clicked switch ($_GET['dest']) { case "1": $url = "http://url1.com/?referal=$id"; break; case "2": $url = "http://url2.com/?referal=$id"; break; case "3": $url = "http://url3.com/?referal=$id"; break; default: $url = "http://unknown.com/?referal=$id"; } ?> <html> <head> <meta charset="utf-8"> <meta http-equiv="refresh" content="5;url=<?php print $url; ?>"> <title>Untitled Document</title> </head> <body> <?php $id = $_GET['source']; if ($id == 'text'){ echo 'The clicked link was a text link'; } elseif ($id == 'banner'){ echo 'The clicked link was a banner link'; } else { echo 'The clicked link is unknown'; } ?> <p></p> <?php if(isset($_GET['dest'])); switch ($_GET['dest']) { case "1": $url = "http://url1.com/?referal=$id"; echo "You would be redirected to domain no. 1"; break; case "2": $url = "http://url2.com/?referal=$id"; echo "You would be redirected to domain no. 2"; break; case "3": $url = "http://url3.com/?referal=$id"; echo "You would be redirected to domain no. 3"; break; default: echo "default"; } ?> <P></P> <?php echo "The url you would be redirected to is: $url"; ?> </body> </html> 

Я хочу знать – это оптимальный код для этой цели? Кроме того, возможно ли сделать перенаправление с PHP вместо META, хотя я хочу, чтобы страница отображала некоторые данные?

Проверьте здесь: https://eval.in/83122

Он должен работать. Я протестировал его:

  <!doctype html> <?php $id = $_GET['source']; // user would get to this page with an "id" that would be according to the link he clicked, either text or banner; this "id" info needs to be passed on to the external page as well, with the following "?referal" tag. if(isset($_GET['dest'])){ // user would get to this page from one of about 50 different pages; his redirect destination would depened on the "dest" number of the link he clicked switch ($_GET['dest']) { case "1": $url = "http://url1.com/?referal=$id"; break; case "2": $url = "http://url2.com/?referal=$id"; break; case "3": $url = "http://url3.com/?referal=$id"; break; default: $url = "http://unknown.com/?referal=$id"; } } ?> <html> <head> <meta charset="utf-8"> <meta http-equiv="refresh" content="5;url=<?php print $url; ?>"> <title>Untitled Document</title> </head> <body> <?php $id = $_GET['source']; if ($id == 'text'){ echo 'The clicked link was a text link'; } elseif ($id == 'banner'){ echo 'The clicked link was a banner link'; } else { echo 'The clicked link is unknown'; } ?> <p></p> <?php if(isset($_GET['dest'])){ switch ($_GET['dest']) { case "1": $url = "http://url1.com/?referal=$id"; echo "You would be redirected to domain no. 1"; break; case "2": $url = "http://url2.com/?referal=$id"; echo "You would be redirected to domain no. 2"; break; case "3": $url = "http://url3.com/?referal=$id"; echo "You would be redirected to domain no. 3"; break; default: echo "default"; } } ?> <P></P> <?php echo "The url you would be redirected to is: $url"; //header("location".$url); //enable it to redirect to the $url ?> </body> </html> 

использование meta, без сомнения, является надежным решением … Но если вы хотите перенаправить с помощью php, попробуйте сделать следующее:

 header('Location: index.php'); 

или какой-либо файл, который вы хотите перенаправить. Преимущество использования заголовка () над META заключается в том, что никто не может его вручную отредактировать из своего браузера. 😉 Надеюсь, это поможет..