0

如何回显登录的特定用户的名字和姓氏?这是我的 checkLogin.php 代码:

$FirstName = $_POST['FirstName'];
$LastName = $_POST['LastName'];

$sql="SELECT * FROM myweekprofiles WHERE LastName='$LastName' and FirstName='$FirstName'";
$result=mysql_query($sql);

$count=mysql_num_rows($result);

if($count==1){

session_register("FirstName"); 
session_register("LastName"); 
header("location:loginSuccess.php");
}else {
  //This page will describe that the email/password is incorrect
}

这是 inc_header_User.php 的代码:

if(!isset($_SESSION['FirstName'])) {
echo "Hello";
}else{
$FirstName = $_SESSION['FirstName'];
}

我尝试在标题中回显 $FirstName,但我收到一条错误消息:

未定义变量:第 55 行 C:\wamp\www\MyWeek\includes\inc_header_User.php 中的 FirstName

4

1 回答 1

2

有两件事可能出错。

首先This function has been DEPRECATED as of PHP 5.3.0 and REMOVED as of PHP 5.4.0.文档。所以从 checkLogin.php 中删除这些行:

session_register("名字");

session_register("姓氏");

而是写这个(注意添加的session_start()):

session_start();
$_SESSION['FirstName'] = $FirstName;
$_SESSION['LastName'] = $LastName;

其次(可能源自第一个,可能不是),inc_header_User.php 中的逻辑可能不符合您的目的,请尝试将其更改为:

session_start();
if(!isset($_SESSION['FirstName'])) {
$FirstName = '';
echo "Hello";
}else{
$FirstName = $_SESSION['FirstName'];
}

其他说明: 是错误、通知还是警告?实际上它看起来并不致命,回显未设置的变量不太可能会杀死您的整个应用程序。

您很容易受到 MySQL 注入,将第一行更改为:

$FirstName = mysql_real_escape_string($_POST['FirstName']);
$LastName = mysql_real_escape_string($_POST['LastName']);

如前所述,尝试对新代码使用 MySQLi 或 PDO 而不是 mysql_* 函数。

于 2013-07-01T20:07:18.293 回答