Изменение параметра GET на PHP - PullRequest
0 голосов
/ 07 апреля 2020

Я очень новичок ie в этом, поэтому позвольте мне объяснить проблему:

У меня есть скрипт возврата денег, название продавца хранится в базе данных, мои ссылки выглядят так:

example.com / view_retailer. php? Id = 232

Я хочу изменить это на / view_retailer? Title = retailer-title

Я не могу понять, почему его не работает, у меня есть на моей БД столбцы retailer_id, title и retailer_url. Retailer_url пуст.

if (!function_exists('GetRetailerLink')) {
    function GetRetailerLink($retailer_id, $retailer_title = "") {
        $retailer_id = (int)$retailer_id;

        $retailer_link = SITE_URL."view_retailer.php?id=".$retailer_id;
        return $retailer_link;

На php просмотр страницы:

if (isset($_GET['id']) && is_numeric($_GET['id']))
    {
        $retailer_id = (int)$_GET['id'];
    }
    else
    {       
        header ("Location: index.php");
        exit();
    }

Я уже играл с кодом ниже, но это не работает -> магазин не найден.

if (!function_exists('GetRetailerLink')) {
    function GetRetailerLink($retailer_id, $retailer_title = "") {
        $retailer_id = (int)$retailer_id;

        $retailer_link = SITE_URL."view_retailer.php?title=".$retailer_title;
        return $retailer_link;

и

if (isset($_GET['title']) && is_numeric($_GET['title']))
                {
                    $retailer_title = (int)$_GET['title'];
                }
                else
                {       
                    header ("Location: index.php");
                    exit();
                }

Как я могу решить эту проблему? Спасибо за помощь!


Спасибо за предложенные решения

Я пробовал сейчас с

if (!function_exists('GetRetailerLink')) {
    function GetRetailerLink($retailer_id, $retailer_title = "") {
        $retailer_id = (int)$retailer_id;

        $retailer_link = SITE_URL."view_retailer.php?title=".$retailer_title;
        return $retailer_link;

и

if (isset($_GET['title']) && is_string($_GET['title']))
{
    $retailer_title = (string)$_GET['title'];
}
else
{       
    header ("Location: index.php");
    exit();
}

также попытался с помощью

if (isset($_GET['title']))
            {
                $retailer_title = (int)$_GET['title'];
            }
            else
            {       
                header ("Location: index.php");
                exit();
            }

К сожалению, это также не решает проблему -> Магазин не найден.

Ответы [ 2 ]

1 голос
/ 07 апреля 2020

Вы должны будете удалить is_numeric($_GET['title']) в своем коде.

is_numeric($_GET['title']) проверит, является ли переменная числом или числовой c строкой.

0 голосов
/ 07 апреля 2020

Возможно, вы можете попробовать удалить is_numeri c? Поскольку title - это строка символов, она всегда будет возвращать false.

if (isset($_GET['title']))
            {
                $retailer_title = $_GET['title'];
            }
            else
            {       
                header ("Location: index.php");
                exit();
            }

Надеюсь, это работает для вас:)

...