从mysql数据库中检索名字和姓氏

时间:2013-07-01 20:00:56

标签: php mysql

如何回显登录的特定用户的名字和姓氏? 这是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

1 个答案:

答案 0 :(得分:2)

可能出错的两件事。

来自documentation

第一个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_ *函数来获取新代码。