几年前,我聘请了一个开发人员为我建立一个网站。当它安装在网络服务器上时,它曾经工作得很好。
几年过去了,现在我正在尝试重新安装它,一切正常但管理员登录区域。当进入登录页面时,你转到“index.php”文件,这个页面有一个简单的表格连接到数据库以检查用户名和密码。单击登录按钮后,表单调用“login.php”:
<form action="login.php" method="post" name="form1">
然后用以下代码启动login.php:
<?php
$user = $_POST[user];
$pass = $_POST[pass];
$ip = $_SERVER['REMOTE_ADDR'];
$status = authenticate($user, $pass);
if ($status == 1)
{
session_start();
session_register("SESSION");
session_register("SESSION_UNAME");
$_SESSION['usuario'] = $user;
$SESSION_UNAME = $user;
include("../inc/conect_bd.inc.php");
$gravar_log = "INSERT INTO `logs` (`idLogin`, `user`, `data`, `ip`) VALUE ('', '".$_POST['user']."', '".date("d/m/Y-H:i:s")."', '".$_SERVER['REMOTE_ADDR']."')";
$exec_gravar_log = @mysql_query($gravar_log) or die ("Error saving username);
header("Location: manager.php");
exit();
}
else
{
header("Location: manager.php");
exit();
}
function authenticate($theuser, $thepass)
{
include("../inc/conect_bd.inc.php");
$query = "SELECT id from manager WHERE username = '$theuser' AND password = '$thepass'";
$result = @mysql_query($query) or die ("Error in query: $query. " . mysql_error());
if (mysql_num_rows($result) == 1)
{
return 1;
}
else{
return 0;}}
?>
但是当您尝试登录时,我收到以下错误
Fatal error: Call to undefined function session_register() in /home/usr/public_html/johntrucks.com/manager/login.php on line 9
它在那里已经定义了吗?或者我该如何定义它?
抱歉,伙计们,无处可寻,他的编码只是令人困惑......答案 0 :(得分:4)
在PHP 5.4中删除了该功能 http://us.php.net/manual/en/function.session-register.php
用$_SESSION
$_SESSION["SESSION_UNAME"];
答案 1 :(得分:1)
问题在于你are using PHP 5.4:
此功能自PHP 5.3.0起已废弃,并已删除 PHP 5.4.0。