Php 戈达迪:登录不起作用
你好 我正在制作我的简单网站。它有一个登录页面。在我的本地主机中,一切都运行良好。我可以成功登录 所以,现在。我已经把我的网站连同数据库一起上传到了Godaddy 现在,如果我使用正确的凭据登录,就像我在localhost中所做的一样。我无法登录。它将我重定向回登录页面。没有抛出错误 但是,如果我使用错误的凭据登录,它会向我抛出一个错误“错误的用户名或密码”->这就是我的login.php中的内容 这意味着我能够成功地与数据库联系,对吗?可能是什么问题 我正在使用XAMPP,7.1.1,我认为这是最新的,因为我上周刚刚下载了这个。我还注意到GoDaddy PHP版本是5.6 我已配置服务器的凭据Php 戈达迪:登录不起作用,php,.htaccess,login,Php,.htaccess,Login,你好 我正在制作我的简单网站。它有一个登录页面。在我的本地主机中,一切都运行良好。我可以成功登录 所以,现在。我已经把我的网站连同数据库一起上传到了Godaddy 现在,如果我使用正确的凭据登录,就像我在localhost中所做的一样。我无法登录。它将我重定向回登录页面。没有抛出错误 但是,如果我使用错误的凭据登录,它会向我抛出一个错误“错误的用户名或密码”->这就是我的login.php中的内容 这意味着我能够成功地与数据库联系,对吗?可能是什么问题 我正在使用XAMPP,7.1.1,我认为这
dname = myDB;
lhost = localhost;
uname = username;
pword = password;
附:这些凭证不是我的准确凭证
我也试过了
dname = myDB;
lhost = website ip address;
uname = username;
pword = password;
还是不走运=(
编辑:用于登录的Php脚本
<?php
require("../../includes/bootstrap.php");
require("../../templates/user/users/login.php");
session_save_path("../../cgi-bin/tmp");
session_start();
session_regenerate_id();
try{
$ACCOUNT_SECURITY = new CORE_ACCOUNT_SECURITY();
$ACCOUNT_SECURITY->blocking();
if(isset($_POST['username']) && $_POST['password']){
$sql = "SELECT * FROM users WHERE username=?";
$SQL_CLASS = new SQL_SERVER_CONNECTION();
$PDO_HANDLER = $SQL_CLASS->PDO_CONNECTION();
$statement = $PDO_HANDLER->prepare($sql);
$statement->execute(array($_POST['username']));
if($statement->rowCount()>0){
$userdata = $statement->fetch(PDO::FETCH_ASSOC);
if(password_verify($_POST['password'], $userdata['password'])){
$_SESSION['uid']=$userdata['id'];
$_SESSION['unm']=$userdata['username'];
$_SESSION['upriv']="user";
$_SESSION['params']=[];
header("location:user.php");
}else{echo "Incorrect Username or password";sleep(3);exit;}
}else{echo "Incorrect Username or password";sleep(3);exit;}
}
}catch(Exception $e){
echo "Your Request is Temporarily Denied for Security Purpose";
}
?>
这是我的user.php
<?php
require("../../includes/bootstrap.php");
session_save_path("../../cgi-bin/tmp");
session_start();
session_regenerate_id();
if(!CORE_ACCOUNT_SECURITY::isloggedin()){
header("location:login.php");
exit;
}else{
if($_SESSION['upriv']=='user'){
require("../../templates/user/users/user.php");
}else{header("location:../../");}
}
?>
您的数据库详细信息未列为PHP变量,因此您将无法执行mysqli_connect($dbname、$lhost、$uname、$pword)
。它可能无法修复,但没有提供其他详细信息,因此很难排除故障。请尝试提供您的PHP脚本。您可能需要检查以下几件事:
最好能提供相关的php代码。检查您的cpanel以获取DB域名。根据我的经验,这可能与网络主机IP不同。您能通过cpanel获得管理员访问权限吗?而不是在捕获中回显“请求被拒绝…”。试着回显$e->getMessage();应该给你理由failing@JasonJoslin好主意等一下sec@JasonJoslin,我有那个地方,它并没有给我一个错误。如果放置错误的凭据,它会给我“错误的用户名或密码”,您可以尝试添加ob_start();在脚本的顶部。看起来您可能有多个标题问题。您可以启用错误显示和观察者。它可能会向您显示错误。1。一切都检查过了。我试试这个。这是正确的。如您所见,我可能使用错误的凭据登录。请尝试将此行CORE_ACCOUNT_SECURITY::isloggedin()更改为(new CORE_ACCOUNT_SECURITY)->isloggedin();或者在isloggedin()函数中添加静态关键字,在哪里?在login.php或user.php中?
<?php
require("../../includes/bootstrap.php");
session_save_path("../../cgi-bin/tmp");
session_start();
session_regenerate_id();
if(!CORE_ACCOUNT_SECURITY::isloggedin()){
header("location:login.php");
exit;
}else{
if($_SESSION['upriv']=='user'){
require("../../templates/user/users/user.php");
}else{header("location:../../");}
}
?>