【问题标题】:can't get id with $_GET method无法使用 $_GET 方法获取 id
【发布时间】:2017-03-09 10:19:03
【问题描述】:

我有问题。我正在尝试从链接中获取用户 ID。

localhost/projekt/php/rules.php?user=1

然后我用$ID = $_GET['user'];保存用户ID

它正在工作,但是在我按下需要 ID 的按钮后,它说:用户未定义。

这是我的代码。

<?php
$conn = new mysqli('localhost', 'root', '', 'logins');

$id = $_GET["user"];

$var = 0;
if(isset($_POST['submit'])) {
    if (isset($_POST['checkbox'])) {

        $sql = "SELECT rulesaccepted FROM logins WHERE ID = '$id'";

        foreach ($conn->query($sql) as $row) {
            $sql3 = "UPDATE logins SET rulesaccepted = '1' WHERE ID = '$id'";
            $conn->query($sql3);
            header('Location: main.php');
        }   
    } else {
        $var = 1;
    }
}
?>

【问题讨论】:

  • 添加你的html表单代码
  • 我认为当您提交表单时,您不会发送“用户”属性。显示你的html代码,它就会一目了然。
  • main.php的内容是什么

标签: php html css mysql


【解决方案1】:

那是因为您正在重定向到没有user 属性的main.php

所以您需要检查 user isset 是否。

if (isset($_GET["user"]) {
    $id = $_GET["user"];
}

你必须注意

因为你的代码高度vulnerable to sql injections,强烈推荐使用prepared statements

这行: $sql3 = "UPDATE logins SET rulesaccepted = '1' WHERE ID = '$id'"; $conn->查询($sql3);

最好如下:

$sql3 = "UPDATE logins SET rulesaccepted = '1' WHERE ID=?";
$stmt = $conn->prepare($sql3);
$stmt->bind_param('i', $id);
$stmt->execute();

与您的选择查询相同 :)

【讨论】:

    【解决方案2】:

    我希望当您单击按钮时,localhost/projekt/php/rules.php?user=1 不要再次触发。 这就是为什么它说:用户未定义

    您可以在表单中使用$_GET['user'],如下所示

    <input type="hidden" name="id" value="<?php echo $_GET['user'] ?>" />
    

    然后你可以在按钮点击时使用id

    if(isset($_POST['submit'])) {
        if (isset($_POST['checkbox'])) {
        $id=$_POST['id']
    
            $sql = "SELECT rulesaccepted FROM logins WHERE ID = '$id'";
    
            foreach ($conn->query($sql) as $row) {
                $sql3 = "UPDATE logins SET rulesaccepted = '1' WHERE ID = '$id'";
                $conn->query($sql3);
                header('Location: main.php');
            }   
        } else {
            $var = 1;
        }
    }
    

    【讨论】:

    • 仍然无法正常工作 :( 注意:未定义的索引:C:\xampp\htdocs\projekt\php\rules.php 中的用户在第 4 行
    • 你在表单中写过“” 吗?如果写入则从以下 url “localhost/projekt/php/rules.php?user=1”执行项目
    • 我在 rules.php 文件中没有表格
    • $_POST['submit'] 怎么样? $_POST['checkbox'],$_POST['submit'] 等没有表单的数据怎么做?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多