网站验证与PHP无法正常工作?

时间:2016-04-16 11:40:20

标签: javascript php html css

我在尝试检查这两个输入uname和passwod时遇到了麻烦。我可以让自己一个人工作,但当我试图将它们都传回来时,我一直收到错误。

<?php 
// define variables and set to empty values
$usernameErr="";
$passwordErr="";
$username= "";
$password="";

if ($_SERVER["REQUEST_METHOD"] == "POST")
{

    if (empty($_POST["uname"]))
        {
         $usernameErr = " username is required <br>";
         print $usernameErr;
        }

    else
        {
        $username = checkUserData($username);
        }   


    if (empty($_POST["passwd"]))
        {
         $passwordErr = "  password is required <br>";
         print $passwordErr;
        }

    else
        {
        $password = checkUserData($password);
        }   
    }

这是问题所在。我正在传递检查数据以阻止攻击。我尝试了多种方式将它们连接在一起,但一切都失败了。

function checkUserData($username)
{
    $username = htmlspecialchars($username);
    $username = trim($username);
    $username = stripslashes($username);
    return $username;
}

function checkUserData($password)
{
    $password = htmlspecialchars($password);
    $password = trim($password);
    $password = stripslashes($password);
    return $password;
}

我打印只是为了检查它是否正常工作。

print ("welcome " .checkUserData($_POST["uname"]));
print ("welcome " .checkUserData($_POST["passwd"]));
?>

任何帮助都会很棒。

1 个答案:

答案 0 :(得分:0)

这两个函数都在做同样的事情,所以将它们概括为

function SanitizeData($var)
{
    $var= htmlspecialchars($var);
    $var= trim($var);
    $var= stripslashes($var);
    return $var;
}

现在正在检查过程中

$username = SanitizeData($_POST["uname"]);

或者

$password = SanitizeData($_POST["passwd"]);
  

虽然如果要在查询中使用这些字段,这种清理最多是不必要的,最坏的是破坏性,但最好使用参数化查询和PDO数据库扩展。