将 $_POST 换成 isset

Exchange $_POST for isset

你能帮我把$_POST换成我的代码吗...

$login = $db->real_escape_string(htmlspecialchars(trim($_POST['login'])));
$password = $_POST['password'];

我输入:

if(isset($_POST['login'])) $login = $db->real_escape_string(htmlspecialchars(trim($_POST['login']))); 别的 $login = 你的默认值;

现在我在下一行有错误:

错误:解析错误:语法错误,意外的 'if' (T_IF) in C:\xampp\htdocs\CDR\login.php on line 31

if ($_POST) {
$errors = array();

if (empty($login) || empty($password)) {
    $errors[] = '......';
}

$auth = $user->auth($login, $password);
if (!$auth) {
    $errors[] = '......';
}


if (empty($errors)) {

    $_SESSION['user_id'] = $auth;

    echo '<p class="success">.....<a href="index.php">....</a></p>';
} else {
    foreach ($errors as $error) {
        echo '<p class="error">'.$error.'</p>';
    }
}

}

您可能想检查您的登录 post 变量是否有任何值。您也可以为您的密码 post 变量执行此操作:

if(isset($_POST['login']))
 $login = $db->real_escape_string(htmlspecialchars(trim($_POST['login'])));
else
 $login = your default value; 

我想你的意思是检查 post 变量:

$login = isset($_POST['login']) ? $_POST['login'] : "";
$password = isset($_POST['password']) ? $_POST['password'] : "";

此外,不要转义您在问题中使用的方式,而是考虑使用 PDO (http://php.net/manual/en/book.pdo.php)。