【问题标题】:Session in mysql and phpmysql和php中的会话
【发布时间】:2013-06-12 01:35:29
【问题描述】:

现在我创建了一个连接到 mysql 数据库的登录表单,并在用户名和密码正确时输入了该代码

<?php
session_start();

    if (mysql_num_rows($res)== 1) {
    $_SESSION['loggedin'] = $Email;
     header("Location:userpage.php");       
    } else {
        echo "Wrong Email or Password"; 
             exit();
    }
?>

在我输入的用户页面中

<?php
session_start();
if(isset($_SESSION['loggedin'])){

}else{
   header("Location:index.php")
}

在logout.php中

<?php   
session_start(); 
session_destroy(); 
header("location:index.php"); 
exit();
?>

在我的本地主机上工作,但在网络主机上不起作用,在网络主机上它重定向到 login.php 并停在那里。

我在那个代码中有什么错误吗?

请帮忙

【问题讨论】:

  • 寻求帮助时最好的办法是提前提供所需的详细信息。本地和服务器(PHP 版本/设置)有什么不同?哪个代码到哪个页面(名称)?你做了什么调试? What have you tried?
  • 不推荐使用 mysql_* 函数,改用 pdo
  • mysqli_*,会不会是会话没有正确保存?
  • 我更好奇$res来自哪里? mysql_query() 在哪里?

标签: mysql session php


【解决方案1】:

您的error_reporting 设置似乎在您的本地网络服务器中默认未设置为ON,它是ON,但未在您的网络服务器上显示您。因此,我建议您在本地网络服务器中使用以下代码将其打开。可能是这样,您在 session_start() 标头之前输出了一些内容。

error_reporting(E_ALL);
ini_set('display_errors', '1');

【讨论】:

  • +1 然而,你应该把你的答案放在一个听起来像解决问题的方法的地方。
  • 感谢您的帮助,我尝试了您的显示错误代码它没有显示任何错误。
  • 然后可能将上面的if(isset($_SESSION['loggedin'])) 更改为if(isset($_SESSION['loggedin']) &amp;&amp; !empty($_SESSION['loggedin']))
  • 对不起,这不起作用,但我在虚拟主机上尝试的第一个代码并且它工作它向我显示了这个错误
  • 只需创建一个文件,在其中写入session_start() 并仅在您的所有文件上共享该文件。
猜你喜欢
  • 1970-01-01
  • 2018-05-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-12
  • 2014-07-24
  • 2012-03-15
相关资源
最近更新 更多