我正在为我的项目开发令牌重定向系统。 这就是我想做的: 用户插入令牌=>网站在搜索带有此令牌的条目,当他找到该条目时,他将测试名称=>重定向到测试页面。
但是我有一个问题,当我按下按钮时我没有任何反应。
这是我的代码:
if (isset($_POST['redibtn'])) {redit();}
function redit(){ if (isset($_POST['redibtn'])) {
global $db, $token, $errors;
// grap form values
$token = e($_POST['token']);
// attempt login if no errors on form
if (count($errors) == 0) {
$query = "SELECT * FROM tokens WHERE Token='$token' LIMIT 1";
$results = mysqli_query($db, $query);
if (mysqli_num_rows($results) == 1) { // user found
// check if user is admin or user
$choix = mysqli_fetch_assoc($results);
if ($choix['test'] == 'Integration') {
header('location: integrationffg/test.php');
}else{
header('location: aaa.php');
}
}else {
}
}
}
}
<form >
<center>
<p>Passer un exam :</p>
</center>
<div class="input-group">
<span class="input-group-addon" id="basic-addon1">Token</span>
<input required type="text" name="token" class="form-control" placeholder="Ex. b2f56acc7c212ee5af432e9794ccdbef" >
</div>
<br>
<center>
<button type="button" class="btn btn-primary" name="redibtn">Zuu</button>
</center>
</form>
我的数据库表:
有人可以帮我吗?
谢谢。
答案 0 :(得分:0)
我在下面添加了脚本的工作版本,并对它进行了一些修改。
从第一个if开始:您无需检查每个请求(如果密钥在$_POST
数组中是否存在),只需检查请求类型是否为POST。
接下来,我对count($errors)
进行了严格的比较,以确保这是0
,而没有其他内容。
在开始表单标签中,我还添加了method
属性,以确保它是作为POST发送而不是作为GET请求发送的,并且第一个(如果实际可行)发送。
<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
redit();
}
function redit()
{
global $db, $token, $errors;
// grap form values
$token = e($_POST['token']);
// attempt login if no errors on form
if (count($errors) === 0) {
$query = "SELECT * FROM tokens WHERE Token='$token' LIMIT 1";
$results = mysqli_query($db, $query);
if (mysqli_num_rows($results) == 1) { // user found
// check if user is admin or user
$choix = mysqli_fetch_assoc($results);
if ($choix['test'] == 'Integration') {
header('location: integrationffg/test.php');
exit;
} else {
header('location: aaa.php');
exit;
}
} else {
// Something went wrong. You should state that.
}
}
}
?>
<form method="post">
<center>
<p>Passer un exam:</p>
</center>
<div class="input-group">
<span class="input-group-addon" id="basic-addon1">Token</span>
<input required type="text" name="token" class="form-control" placeholder=
"Ex. b2f56acc7c212ee5af432e9794ccdbef">
</div>
<br>
<center>
<button type="submit" class="btn btn-primary">Zuu</button>
</center>
</form>
答案 1 :(得分:0)
尝试此代码,希望对您有所帮助
<?php
if (isset($_POST['redibtn'])) {
redit();
}
function redit()
{
global $db, $token, $errors;
// grap form values
$token = e($_POST['token']);
// attempt login if no errors on form
if (!count($errors)) {
$query = "SELECT * FROM tokens WHERE Token='$token' LIMIT 1";
$results = mysqli_query($db, $query);
if (mysqli_num_rows($results) == 1) { // user found
// check if user is admin or user
$choix = mysqli_fetch_assoc($results);
if ($choix['test'] == 'Integration') {
header('location: integrationffg/test.php');
} else {
header('location: aaa.php');
}
} else {
}
}
}
?>
<form method="POST">
<center>
<p>Passer un exam :</p>
</center>
<div class="input-group">
<span class="input-group-addon" id="basic-addon1">Token</span>
<input required type="text" name="token" class="form-control"
placeholder="Ex. b2f56acc7c212ee5af432e9794ccdbef">
</div>
<br>
<center>
<button type="submit" class="btn btn-primary" name="redibtn">Zuu</button>
</center>
</form>
您的代码中几乎没有问题
GET
发送,但是您尝试使用$_POST
?>
之前关闭php标签答案 2 :(得分:-1)
尝试一下
<input type="button" class="btn btn-primary" name="test" id="test" /><br/>
<?php
function redit()
{
echo "Your redit function on button click is working";
}
if(array_key_exists('test',$_POST)){
redit();
}
?>