在php不工作的情况下设置动态页面标题?

在php不工作的情况下设置动态页面标题?,php,sql,mysqli,Php,Sql,Mysqli,我正在尝试为我的一个页面设置一个动态页面标题,但它似乎不起作用。我使用phpMyAdmin,并且我拥有与另一个获取服务器名称的页面相同的动态代码。我不知道我做错了什么。 这是我当前的代码:URL看起来像这样 下面是另一个代码段,它使用服务器名:URL如下所示 有人知道我为什么无法获取类别名称吗?我个人认为您的服务器试图告诉您不应该将原始输入直接插入SQL语句中……请严肃地说,请注意,不要这样做:“从类别中选择name`FROMcategory\u id='id'”`您需要在此处绑定参数/值。这是

我正在尝试为我的一个页面设置一个动态页面标题,但它似乎不起作用。我使用phpMyAdmin,并且我拥有与另一个获取服务器名称的页面相同的动态代码。我不知道我做错了什么。 这是我当前的代码:URL看起来像这样

下面是另一个代码段,它使用服务器名:URL如下所示


有人知道我为什么无法获取类别名称吗?

我个人认为您的服务器试图告诉您不应该将原始输入直接插入SQL语句中……请严肃地说,请注意,不要这样做:
“从
类别
中选择
name`FROM
category\u id
='id'”`您需要在此处绑定参数/值。这是一个等待发生的sql注入。不要依赖
(INT)$\u GET['id']
进行清理,我会养成参数化的习惯。你检查过sql错误吗?另一方面,你只需要
如果(!empty($\u GET['id'])
使用
empty()
时不需要
isset()
,也可以尝试一下
“从`categories`
中选择`name`,如果它提取所有行,则使用您知道存在的硬编码数字(不是变量)执行
where
,然后查看它是否提取。然后,您应该可以从那里缩小范围。@Rasclatt我如何更改代码以防止sql注入攻击?我个人认为您的服务器试图告诉您不应该将原始输入直接插入sql语句中……请务必注意,不要这样做:
“从
categories
中选择
name`WHERE
category\u id
='$id'`您需要在此处绑定参数/值。这是一个等待发生的sql注入。不要依赖
(INT)$\u GET['id']
为了清理,我会养成参数化的习惯。你检查过sql错误吗?另一方面,你只需要
如果(!empty($\u get['id'])
isset()
在你使用
empty()
时是不必要的。另外,试着做
“从`categories`
中选择`name`,如果它提取所有行,然后使用您知道存在的硬编码数字(不是变量)执行
where
,并查看它是否存在。那么您应该能够从那里缩小范围。@Rasclatt我如何更改代码以防止sql注入攻击?
switch ($pageTitle) {
case 'index.php':
    if(isset($_GET['id']) && !empty($_GET['id'])){
        $id = (INT)$_GET['id'];
        $query = $database->query("SELECT `name` FROM `categories` WHERE `category_id` = '$id'");
        $fetch = $query->fetch_assoc();
        $pageTitle = $fetch['name'];
    } else {
    $pageTitle = "test title";
    $description = "test desc";
    }
    break;
case 'server.php':
    if(isset($_GET['id']) && !empty($_GET['id'])){
        $id = (INT)$_GET['id'];
        $query = $database->query("SELECT `name` FROM `servers` WHERE `id` = '$id'");
        $fetch = $query->fetch_assoc();
        $pageTitle = $fetch['name'];

    } else {
        $pageTitle = "Server Details";
    }
    break;