当我在我的localhost SQL上时,它可以工作。但是现在当我将它上传到我的客户端SQL时,它就会出现。当我登录时,它应该重定向到edit.php,在从数据库检查了名称和密码是否正确之后,它仍然是空白的。我不知道该怎么做,因为它确实可以在我的localhost sql上运行。
我登录的地方,登录表单,(login.php)
<?php
include_once("logikinnitus.php");
session_start();
if(isset($_SESSION['logged']))
{
header('Refresh: 2; URL=http://www.heakohv.ee/fava/admin/edit.php');
echo "olete juba sisse logitud!";
}else {
if (isset($_POST["submit"])){
$name = $_POST["user"];
$pass = $_POST["pass"];
$object = new User();
$object -> login($name, $pass);
}
?>
<html>
<head></head>
<body>
<form method="post" action="login.php">
Username: <input type="text" name="user"/>
Password: <input type="password" name="pass"/>
<input type="submit" name="submit" value="login">
</form>
<?php
}
?>
</body>
</html>
我检查密码和用户是否正确(logikinnitus.php)
<?php
include_once("connection.php");
Class User {
private $db;
public function __construct(){
$this->db = new Connection();
$this->db = $this->db->dbConnect();
}
public function login($name, $pass){
if(!empty($name) && !empty($pass)){
$st = $this -> db -> prepare("select * from users where name=? and pass=?");
$st -> bindParam(1, $name);
$st -> bindParam(2, $pass);
$st -> execute();
if($st -> rowCount() == 1){
session_start();
$_SESSION['logged'] = true;
echo "Olete edukalt sisse logitud";
header('URL=http://www.heakohv.ee/fava/admin/edit.php');
exit();
}
else{
echo "Parool või kasutajanimi on vale";
}
}
else{
echo "Palun täida kõik väljad!";
}
}
}
?>
连接php,(connection.php)
<?php
class Connection{
public function dbConnect(){
return new PDO("mysql:host=host; dbname=name", "pass", "");
}
}
?>
警告我在错误报告开启时收到。
警告:在session_start()[function.session启动]:打开(/家/ LA02 / 16840949 / TMP / sess_46e83b3c6e65b60a68dd14f525bd92a5,O_RDWR)失败:没有这样的文件或目录(2)在/ home / LA02 / 16840949 /管理第6行/login.php
警告:session_start()[function.session-start]:无法发送会话cookie - 已经/ home / la02 /发送的输出(/home/la02/16840949/admin/connection.php:3中的输出)第6行16840949 / admin / login.php
警告:在session_start()[function.session启动]:无法发送会话缓存限制器 - 在/ home已经发送了头(输出开始/home/la02/16840949/admin/connection.php:3)/ LA02 /第6行16840949 / admin / login.php
警告:未知:打开(/家/ LA02 / 16840949 / TMP / sess_46e83b3c6e65b60a68dd14f525bd92a5,O_RDWR)失败:在未知没有这样的文件或目录(2)在线0
警告:未知:无法写入会话数据(文件)。请在第0行的Unknown中验证session.save_path的当前设置是否正确(/ home / la02 / 16840949 / tmp)
如果我添加session.save_path“文件夹”,它甚至不会带来我的登录表单......我从头开始只看到空白页,甚至没有错误 -
如有任何问题,请随时提出。
答案 0 :(得分:3)
没有标头URL
。使用Location: http://domain.com
进行重定向。
此外,您无法在发送标头之前输出任何内容,因此请先删除所有echo
。
在您的第一个代码中,您必须在发送标头后添加die
。没有它,脚本将被执行到最后(这里可能不是问题,但你应该在重定向时始终停止脚本)。
答案 1 :(得分:0)
警告告诉您问题是什么---会话文件无法读取或写入,因为它们似乎正在将它们写入您的* nix用户主目录。
警告:session_start()[function.session-start]:open(/ home / la02 / 16840949 / tmp / sess_46e83b3c6e65b60a68dd14f525bd92a5, O_RDWR)失败:没有这样的文件或目录(2) 第6行/home/la02/16840949/admin/login.php
您的代码是否正在进行session_save_path通话?如果不是,则需要在适用的php.ini文件中检查session.save_path变量的值。您可以使用以下命令在文档根目录中创建一个简单的脚本:
<?php phpinfo();
如果您对这些设置的运行时值有任何疑问。
这也可能是权限问题,具体取决于您的php / web服务器的配置方式。通常会话文件将写入/ tmp目录,但在您的情况下,它们不会。如果您确实打算将会话文件写入正在编写它的位置,如果该目录不存在,和/或运行php进程的用户没有读/写这些文件的权限,那么你''我会得到你得到的错误。