为了账号安全,请及时绑定邮箱和手机立即绑定

php登录表单修剪未定义的索引错误

php登录表单修剪未定义的索引错误

PHP
qq_花开花谢_0 2023-10-01 17:27:33
我输入了正确的用户和错误的用户。我收到这条消息:注意:未定义索引:用户名和未定义索引:密码。我在输入代码中收到无效的用户输入错误。第 18 行和第 23 行正在返回Undefined index消息。写入了不正确的用户输入,而不是在输入部分中输入。如何解决这个问题?我研究了很多话题。这段 PHP 代码<?php        session_start();        require_once "../../config.php";        if(isset($_SESSION["loggedin"]) && $_SESSION["loggedin"] === true){            header("location: ../../index.php");            exit;        }        $username = " ";        $password = " ";        $username_err = " ";        $password_err =  " ";                 if($_SERVER["REQUEST_METHOD"]=="POST"){            if(empty(trim($_POST["username"]))){                $username_err = "Lütfen kullanıcı adınızı giriniz.";            } else {                $username = trim($_POST["username"]);            }            if(empty(trim($_POST["password"]))){                $password_err = "Lütfen şifrenizi giriniz.";            } else{                $password = trim($_POST["password"]);            }            if(empty($username_err) && empty($password_err)){                $tsql = "SELECT id, username, password FROM [ARAC_TAKIP].[dbo].[KULLANİCİLAR]                 WHERE username = :username ";            if($stmt = $pdo->prepare($tsql)){                $stmt->bindParam(":username", $param_username, PDO::PARAM_STR);                $param_username = trim($_POST["username"]);                if($stmt->execute()){                    if($stmt->rowCount() == 1){                        if($row = $stmt->fetch()){                            $id = $row["id"];                            $username = $row["username"];                            $hashed_password = $row["password"];                            if(password_verify($password, $hashed_password)){
查看完整描述

2 回答

?
心有法竹

TA贡献1866条经验 获得超5个赞

PHP 文档说,empty()需要一个变量作为参数。trim()作为一种方法不适用于empty(). 您应该使用isset()检查 POST 变量是否已声明:

if(!isset($_POST["username"]) || empty($_POST["username"])) {

    $username_err = "Lütfen kullanıcı adınızı giriniz.";

} else {

    $username = trim($_POST["username"]);

}

if(!isset($_POST["password"]) || empty($_POST["password"])) {

    $password_err = "Lütfen şifrenizi giriniz.";

} else{

    $password = trim($_POST["password"]);

}


查看完整回答
反对 回复 2023-10-01
?
梵蒂冈之花

TA贡献1900条经验 获得超5个赞

根据 PHP 文档,该empty()函数仅接收一个变量作为参数。这意味着您无法使用empty("Data"). 您需要在调用该函数之前将参数设置为变量,如下例:

$foo = trim(" Test");
$isEmpty = empty($foo);

此致!


查看完整回答
反对 回复 2023-10-01
  • 2 回答
  • 0 关注
  • 112 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信