PHP表单加载指定的页面

时间:2015-08-24 23:04:40

标签: php mysql forms

试图找出如何写这篇文章,但由于某些原因无法开始解决这个问题。

请在下面找到我想要实现的概念。

4位数用户的用户类型(在MySQL上检查)。一旦pin类型和提交将根据MySQL重定向到相关的URL。

DB:

|--Name----|--PIN---|-----URL--------|
|--Ryan----|--1987--|-3f5df55.php----|
|--Mel-----|--1474--|-34n31ss.php----|

请帮忙,因为我完全被困在哪里开始。

1 个答案:

答案 0 :(得分:1)

注意:

  • 为了实现您的目标,我们将使用HTMLPHPmysqli_* prepared statement
  • 您拥有NamePINURL列的表格的名称是什么?
  • 我们可以使用header()将页面重定向到输入的PIN的相应网址。
  • 只需替换下面的必要表名,列名,主机名,用户名,密码和数据库名称(请记住这些是区分大小写的

首先我们创建一个表单:

<html>
<body>
<!-- PHP CODE HERE -->

  <form action="" method="POST">
    <input type="number" name="pin" placeholder="4 DIGIT PIN" min="1000" max="9999" required>
    <input type="submit" name="submit-form">
  </form>
</body>
</html>

然后创建一个接受表单的PHP脚本(你可以把它放在表单上面):

<?php

  if(isset($_POST["submit-form"])){

    /* ESTABLISH CONNECTION FIRST TO YOUR DATABASE */
    $con = new mysqli("YourHost", "YourUsername", "YourPassword", "YourDatabase"); /* REPLACE NECESSSARY DATA */

    /* CHECK THE CONNECTION */
    if (mysqli_connect_errno()) {
      printf("Connect failed: %s\n", mysqli_connect_error());
      exit();
    }

    if($stmt = $con->prepare("SELECT URL FROM table_name WHERE PIN = ?")){ /* CHECK IF THE PREPARED STATEMENT IS TRUE */
      $stmt->bind_param("i",$_POST["pin"]); /* BIND THE PASSED ON ENTERED PIN TO THE QUERY */
      $stmt->execute(); /* EXECUTE THE QUERY */
      $check = $stmt->num_rows; /* STORE THE NUMBER OF RESULTS */
      if($check > 0){ /* CHECK IF THERE IS FOUND */
        $stmt->bind_result($url); /* BIND THE RESULT TO THIS VARIABLE */
        $stmt->fetch(); /* FETCH THE RESULT */
        header("LOCATION:".$url); /* REDIRECT THE PAGE TO THE CORRESPONDING URL */
      }
      else { /* IF NO PIN NUMBER FOUND IN THE DATABASE */
        echo "Invalid PIN Number";
      }
      $stmt->close(); /* CLOSE THE PREPARED STATEMENT */
    } /* END OF PREPARED STATEMENT */

  } /* END OF ISSET */

?>