我输入了正确的用户和错误的用户。我收到这条消息:注意:未定义索引:用户名和未定义索引:密码。我在输入代码中收到无效的用户输入错误。第 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"]);
}
梵蒂冈之花
TA贡献1900条经验 获得超5个赞
根据 PHP 文档,该empty()
函数仅接收一个变量作为参数。这意味着您无法使用empty("Data")
. 您需要在调用该函数之前将参数设置为变量,如下例:
$foo = trim(" Test"); $isEmpty = empty($foo);
此致!
- 2 回答
- 0 关注
- 112 浏览
添加回答
举报
0/150
提交
取消