会议通知
你有一个从某个地方开始的会话,然后在C:\xampp\htdocs\bank\header.php
's 第二行。如果PHP >= 5.4.0你应该这样做:
if (session_status() == PHP_SESSION_NONE) {
session_start();
}
如果PHP < 5.4.0:
if(session_id() == '') {
session_start();
}
这可以在这里看到:检查 PHP 会话是否已经开始。
未定义的索引和其他问题
但是,您的代码存在以下问题:
- 它受到SQL 注入的影响。
mysql_*
不再安全。您应该使用 PDO 或 MySQLi 进行数据库处理。
- 您是否认真地将密码作为纯文本存储在数据库中?您需要正确地散列它们。
修复它(PHP >= 5.5):
$DB = new PDO(/* CORRECT PARAMETERS HERE */);
if (isset($_POST['login']) && isset($_POST['password'])) {
$STH = $DB->prepare("SELECT * FROM customers WHERE loginid = ?");
$STH->execute(array($_POST['login']));
$Result = $STH->fetch();
if(password_verify($_POST['password'], $Result['password'])) {
/* Do what you need to do */
}
}
对于PHP <= 5.5,您需要添加一个库以使用if(password_verify(...))
. 检查password_compat 库以获取更多信息,但基本上是这样的:
include "password_compat.php";
$DB = new PDO(/* CORRECT PARAMETERS HERE */);
if (isset($_POST['login']) && isset($_POST['password'])) {
$STH = $DB->prepare("SELECT * FROM customers WHERE loginid = ?");
$STH->execute(array($_POST['login']));
$Result = $STH->fetch();
if(password_verify($_POST['password'], $Result['password'])) {
/* Do what you need to do */
}
}