Справка по коду — PHP, строка запроса, перенаправление

#php #query-string

#php #запрос-строка

Вопрос:

Я пытаюсь передать переменные простому PHP-скрипту и перенаправить его на разные URL-адреса в зависимости от значений в строке запроса.

Вот что у меня есть в bonus.php:

 <?php

if ($_GET['pid'] == '3') {
    $bonus = "copy-paste-traffic";
}
elseif ($_GET['pid'] == '5') {
    $bonus = "lazy-affiliate-riches";
}

$redirect = "http://affiliatesilverbullet.com/.'$bonus'.-bonus/?mid=.'$_GET['mid']'.amp;pid=.'$_GET['pid']'.";

echo $redirect;

page_redirect($redirect);

?>
  

Я хочу, чтобы запросы перенаправлялись следующим образом:

asbfree.com/bonus.php?mid=dstruckmanamp;pid=3 -> affiliatesilverbullet.com/copy-paste-traffic-bonus/?mid=dstruckmanamp;pid=3

asbfree.com/bonus.php?mid=dstruckmanamp;pid=5 -> affiliatesilverbullet.com/lazy-affiliate-riches-bonus/?mid=dstruckmanamp;pid=3

Но это не работает.

Что я делаю не так?

Пожалуйста, покажите мне, как исправить мой bonus.php скрипт для выполнения этой работы.

Заранее спасибо!

Дастин

Комментарии:

1. «не работает» — это не объяснение.

2. Опубликуйте код для «page_redirect()»

Ответ №1:

Я думаю, вы можете изменить

$redirect = "http://affiliatesilverbullet.com/.'$bonus'.-bonus/?mid=.'$_GET['mid']'.amp;pid=.'$_GET['pid']'.";

Для

$redirect = "http://affiliatesilverbullet.com/".$bonus."-bonus/?mid=".$_GET['mid']."amp;pid=".$_GET['pid'];

РЕДАКТИРОВАТЬ : … измените elseif на else if , page_redirect на http_redirect и удалите echo или поместите после функции перенаправления.

Комментарии:

1. это также не устранило проблему.

Ответ №2:

Я бы использовал header("Location: $redirect"); вместо page_redirect($redirect); .

Комментарии:

1. Я думаю, вы имеете в виду header("Location: $redirect");

2. Упс! Спасибо Джейсону за то, что указал на опечатку!

Ответ №3:

Одной из проблем может быть ваша интерполяция переменных. Заменить

 $redirect = "http://affiliatesilverbullet.com/.'$bonus'.-bonus/?mid=.'$_GET['mid']'.amp;pid=.'$_GET['pid']'.";
  

с

 $redirect = "http://affiliatesilverbullet.com/{$bonus}-bonus/?mid={$_GET['mid']}amp;pid={$_GET['pid']}";
  

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

Комментарии:

1. Я обновил, и у меня все еще не работает. Ошибка, которую я получаю, такова: ошибка сервера, на веб-сайте произошла ошибка при извлечении asbfree.com/bonus.php?mid=dstruckmanamp;pid=3 . Возможно, он недоступен для обслуживания или неправильно настроен. Которую вы можете увидеть, если перейдете по URL.

2. Правильно, он выдает ошибку 500 и где-то регистрирует сообщение об ошибке. Я бы проверил журнал ошибок apache.