php - 如何将 18 个变量传递到一个函数中以验证 PHP/MySQL 交互

标签 php mysql sql validation code-injection

我的网站上有一个个人资料页面,您可以在其中登录并更新您的帐户详细信息,例如:名字、姓氏、用户名、公司、地址行 1 等。

查看代码:

if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
        $AccountID = $row["AccountID"];
        $FName = $row["FName"];
        $LName = $row["LName"];
        $Username = $row["Username"];
        $Company = $row["Company"];
        $AddressL1 = $row["AddressL1"];
        $AddressL2 = $row["AddressL2"];
        $Town = $row["Town"];
        $County = $row["County"];
        $PostCode = $row["PostCode"];
        $Password = $row["Password"];
        $DFName = $row["DFName"];
        $DLName = $row["DLName"];
        $DAddressL1 = $row["DAddressL1"];
        $DAddressL2 = $row["DAddressL2"];
        $DTown = $row["DTown"];
        $DCounty = $row["DCounty"];
        $DPostCode = $row["DPostCode"];
    }

    if ($_SESSION['login_user']) {

如果他们已登录,那么它会将每个值回显到输入字段,您可以随意更改和更新它们...

而不是写出来

$login_session = stripslashes($login_session);
$login_session = mysql_real_escape_string($login_session);
$login_session = trim($login_session);

对于每个变量,最佳选择是什么?

最佳答案

您可以执行以下操作:

function makeSafe($var)
{
    $return = stripslashes($var);
    $return = mysql_real_escape_string($return);
    $return = trim($return);
    return $return;
}

$login_session = makeSafe($login_session);

这将避免一页上出现多行代码并避免重复代码

正如我在评论中所说,尽量避免 mysql_* 功能并将其替换为 mysqli 或 PDO

关于php - 如何将 18 个变量传递到一个函数中以验证 PHP/MySQL 交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32605729/

相关文章:

sql - 如何使用重复的 WHERE 子句和 LEFT JOINS 使查询更动态(无 crostab)

python - 尝试在 Django 中使用 `comments` contrib 实现连接时出现问题

php - 调用未定义的方法 Illuminate\Database\Query\Builder::associate()

php - 如何在生产环境中不运行 composer 部署 php 应用程序

mysql - 使用 MySQL 进行事件相关性查询

php - 使用 php mysql 从 html 表中提取值(文本)

SQL语句——如何构建时间线图

用于将 HTML4 转换为 XHTML 的 PHP 库?

php - 在php中获取两个数组的相似度百分比

MySql 选择连续行中的最大行数