php 使用 mysql 数据库检查和验证表单输入

标签 php mysql validation input compare

基本上我有这个表格,要求提供电子邮件和密码。

我想做的是比较并检查输入是否与我的表/数据库中的数据匹配。

这是我的registration.php(表格)

<form action="Authentication.php" method="post">

    <b>Returning Intern Login</b><br/><br/>
    Enter your e-mail address: <input type="text" name="email" /><br/><br/>
    Enter your password: <input type="password" name="pw2"/><br/><i>(Passwords are case-sensitive and must be 6 characters long)</i><br/><br/>

    <input type="reset" value="Reset Login Form" />
    <input type="submit" name="submit2" value="Log In" /><hr/><br/>

</form>

这是Authentication.php

session_start();

$link = mysqli_connect('localhost','root','');
$database = mysqli_select_db($link,'internship');

$user = $_POST['email'];
$pass = $_POST['pw2'];


// User is logging in
if (isset($_POST["submit2"]))
{
    if (empty ($user)) //if username field is empty echo below statement
    {
        echo "<font color='red'>***You must enter your unique username (email).***</font><br/><br/>";

    }
    if (empty ($pass)) //if password field is empty echo below statement
    {
        echo "<font color='red'>***You must enter your unique password.***</font><br/><br/>";
    }

}
else
{   

    $query = "SELECT * FROM Interns WHERE email = '". mysqli_real_escape_string($link,$user) ."' AND password = '". mysqli_real_escape_string($link,$pass) ."'" ;
    $result = mysqli_query($link,$query);
    if (mysqli_num_rows($result) == 1) 
    {
        echo "pass"; //Pass, do something
    } 
    else 
    {
        echo "fail"; //Fail
    }

}

session_write_close();

它适用于空输入。

但是当我从数据库/表中输入完全相同的电子邮件和密码时,

它显示白色空白页..

最佳答案

您需要在 if 语句中编写整个代码以确保填写该字段,如下所示:

 if (isset($_POST["submit2"]))
 {
    if (empty ($user)) //if username field is empty echo below statement
     {
       /* Code */

     }
     if (empty ($pass)) //if password field is empty echo below statement
     {
       /* Code */
     }

     $query = "SELECT * FROM Interns WHERE email = '". mysqli_real_escape_string($link,$user) ."' AND password = '". mysqli_real_escape_string($link,$pass) ."'" ;
     $result = mysqli_query($link,$query);
     if (mysqli_num_rows($result) == 1) 
      {
        echo "pass"; //Pass, do something
      } 
       else 
      {
        echo "fail"; //Fail
      }

 }
 else
 {
     echo "Empty input submit2"; // empty $_POST["submit2"]
 }

希望这对您有所帮助。

关于php 使用 mysql 数据库检查和验证表单输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36324261/

相关文章:

php - 如何在多台服务器上托管一个 MySQL 数据库?

c# - fluidvalidation 更改 int/long 的默认错误消息

jsf - 单个表单中的 primefaces Accordion 面板 - 仅在打开的选项卡上验证

php - WAMP 服务器无法启动 Windows 7

php - 通过 AJAX 发送数组数据

php - 了解自动加载和 spl_autoload_register

mysql - 我无法使用 Php 连接到我的 MYSQL 数据库

php - 用户提供的输入 SQL 转义

php - 使用 php 创建像 twitter 或 convore 这样的提及

ruby-on-rails - rails : Validate input without need of models