用于验证针对MySQL表的表单条目的PHP脚本

时间:2016-02-05 21:53:18

标签: php verification

新手在这里 - 我对脚本几乎一无所知,所以请耐心等待。

通过盲目的试错 - 以及两个可靠的阅读月 - 我找到并修改了一个工作脚本,该脚本比较了一个名为" EID"到我在MySQL数据库中创建的表。

现在,我想提高赌注并为脚本添加更多功能。 Web表单还包含一个名为" Name"的框,我希望对表中名为" Name"的表中的条目进行验证。同时" EID"字段已验证。我可以轻松查看"姓名"对另一个数据库表的输入,但是这不能完全满足我的需要,因为每个Name都特定于它自己的EID,我必须能够验证用户是否输入了正确的名称以及他的或她自己的EID号码。我正在阅读我需要以关系一对一的方式加入这两个数据库来完成此功能的服务器端,但我还没有想过如何查询这样的数据库设置并返回一个响应。

如何修改此现有脚本以检查这些新表的名称和EID?

这是我的剧本 - 我确定它并不漂亮,但正如我之前所说,它确实有用。

<?PHP

class MyCustomValidation extends FM_ExtensionModule
{

    function DoValidate(&$formvars, &$error_hash)
    {
        //connect to DB
        $db = mysql_connect("mydatabase","myaccount ","mypassword");
        if(!$db)
        {
            return false;
        }

        if(!mysql_select_db("mydatabase",$db))
        {
           return false;
        }

        //Check the Employee ID Number
        if(!isset($formvars["EID"]))
        {
            $error_hash["EID"]="Please enter a valid Employee ID Number";
            return false;
        }

        $EID = $formvars["EID"];


        $result = mysql_query("select * from EID where EID='$EID'");

        if(!$result || mysql_num_rows($result) <= 0)
        {
            $error_hash["EID"]="We're sorry, but the Employee ID number you entered, '$EID', was not found in our databases. ";
            return false;
        }


        return true;
    }
}
?>

1 个答案:

答案 0 :(得分:1)

这样的事情(我已经完成了name字段填写的检查。

$name = $formvars["name"];

$result = mysql_query("SELECT * FROM EID 
                       JOIN users ON EID.EID = users.EID 
                       WHERE EID.EID = '$EID' AND users.name = '$name'");

连接的确切细节取决于表格中的名称和列,但这显示了一般的想法。

如果EID存在且查询名称与输入的名称相匹配,查询将只返回一行。