我有问题。我试图从链接中获取用户ID。
localhost/projekt/php/rules.php?user=1
然后我用$ID = $_GET['user'];
它正在工作,但是当我按下我需要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;
}
}
?>
答案 0 :(得分:0)
这是因为您要重定向到main.php
没有user
属性。
因此您需要检查user
isset。
if (isset($_GET["user"]) {
$id = $_GET["user"];
}
因为您的代码非常vulnerable to sql injections,所以强烈建议您使用prepared statements
这一行: $ sql3 =&#34; UPDATE登录SET rulescecepted =&#39; 1&#39; WHERE ID =&#39; $ id&#39;&#34 ;; $ conn-&GT;查询($ SQL3);
最好如下:
$sql3 = "UPDATE logins SET rulesaccepted = '1' WHERE ID=?";
$stmt = $conn->prepare($sql3);
$stmt->bind_param('i', $id);
$stmt->execute();
与您的选择查询相同:)
答案 1 :(得分:-1)
我希望当你点击按钮时,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;
}
}