表格无回应

时间:2018-08-01 09:11:45

标签: php forms redirect token

我正在为我的项目开发令牌重定向系统。 这就是我想做的: 用户插入令牌=>网站在搜索带有此令牌的条目,当他找到该条目时,他将测试名称=>重定向到测试页面。

但是我有一个问题,当我按下按钮时我没有任何反应。

这是我的代码:

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>

我的数据库表:

enter image description here

有人可以帮我吗?

谢谢。

3 个答案:

答案 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
  • Furm必须具有“提交”按钮
  • 在开始html ?>之前关闭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();
}
?>