PHP会话
我有以下问题,会话没有保留信息。 所以我可能犯了很多错误但我不知道为什么, 如果你还看到什么没用的/丢失的,请你说出来。 这是一个登录脚本 我认为这很好,直到我在另一个页面home.php中看到它找不到会话id 我是PHP新手,但如果有人能帮助我,那就太好了: 这是密码PHP会话,php,session,Php,Session,我有以下问题,会话没有保留信息。 所以我可能犯了很多错误但我不知道为什么, 如果你还看到什么没用的/丢失的,请你说出来。 这是一个登录脚本 我认为这很好,直到我在另一个页面home.php中看到它找不到会话id 我是PHP新手,但如果有人能帮助我,那就太好了: 这是密码 <?php error_reporting(E_ALL ^ E_NOTICE); ini_set( 'display_errors', '0' ); session_start();
<?php
error_reporting(E_ALL ^ E_NOTICE);
ini_set( 'display_errors', '0' );
session_start();
include ('db_connect.php');
include("error.php");
if($_SERVER['REQUEST_METHOD'] == "POST")
{
//formulier verstuurd
$username = $_POST['username'];
$password = $_POST['password'];
//protect MySQL Injection
$username = mysql_real_escape_string($username);
$password = mysql_real_escape_string($password);
$query = mysql_query("SELECT * FROM inlog WHERE username = '$username' AND password = '$password' ") or die(mysql_error());
$rows = mysql_num_rows($query);
if($rows == 1) {
$_SESSION['userername'] = $username;
header("location:home.php");
}
else
{
$wronguser = "<div id='wronguser'>*Verkeerd gebruikersnaam of wachtwoord</div>";
}
}
?>
//dbconnect.php
<?php
$connect = mysql_connect( 'localhost', 'root', 'root' );
mysql_select_db('applicatie', $connect);
?>
//error.php
<?php
ini_set('display_errors',1);
error_reporting(E_ALL);
?>
更新。
我不能再登录了,因为会话不再是真的:/记住会话\u启动;需要位于使用会话的所有页面上。 最好将其写入头文件,并将其包含在每页上
另外,您的会话变量名为userName,如果您使用headerLocation重定向脚本,则拼写错误很小的PHP无法编写会话。。。。据我所知,只有当您重定向到同一服务器上的脚本时,才会发生这种情况。是否有人可以确认这一点 您需要使用以下命令明确关闭会话: 试试这个
error_reporting ( E_ALL ^ E_NOTICE );
ini_set ( 'display_errors', '0' );
session_start ();
include ('db_connect.php');
include ("error.php");
/**
* Check Login
*/
if (isset ( $_POST ['username'] ) && isset ( $_POST ['password'] )) {
$username = $_POST ['username'];
$password = $_POST ['password'];
// protect MySQL Injection
$username = mysql_real_escape_string ( $username );
$password = mysql_real_escape_string ( $password );
$query = mysql_query ( "SELECT * FROM inlog WHERE username = '$username' AND password = '$password' " ) or die ( mysql_error () );
$rows = mysql_num_rows ( $query );
if ($rows == 1) {
$_SESSION ['userername'] = $username;
$_SESSION ['auth'] = true;
header ( "location:home.php" );
}
else
{
$_SESSION ['userername'] = false;
$_SESSION ['auth'] = false;
}
}
/**
* Logout
*/
if (@$_GET ['cmd'] == "logout") {
$_SESSION = array ();
}
/**
* Error Output
*/
if (! $_SESSION ['auth'] || ! $_SESSION ['userername']) {
$wronguser = "<div id='wronguser'>*Verkeerd gebruikersnaam of wachtwoord</div>";
die ( $wronguser );
}
我希望这有帮助
谢谢请尝试将会话从第一行开始,如下所示
<?php
session_start();
error_reporting(E_ALL ^ E_NOTICE);
ini_set( 'display_errors', '0' );
那么,$行包含什么呢?会话变量赋值是错误的,$\u Session['userName']您记得在home.php中启动会话吗?我们可以看看你如何使用home.php中的会话吗?@pharalia已经编辑过了;看看发生了什么我把它放在了所有的页面上,include函数是一个很好的提示;但是它没有解决我的问题警告:无法修改标题信息-标题已经由输出发送,开始于/Users/Rinke/Documents/MAMP/3e periode/index.php:1 in/Users/Rinke/Documents/MAMP/3e periode/index.php第24行///第24行确实是标题,仍然应该存储会话变量。但很明显,头球有问题。检查error.php和db_connect.php,查看您是否在任何一个theseerror.php中使用echo或发送头:而db_connect只是一个普通的db connect,error.php似乎有点用。已经发送的头是另一个问题。这意味着,在index.php的第1行中,您已经开始了输出。魔兽世界前是否有空格或空行,感谢您快速且良好的回复,无论如何,我仍然有无法修改标题信息,该错误是由db_connect.php或error.php导致的,因为大多数都包含空格。。。。在行或的末尾,在调用标头之前,您正在输出一个值检查您的文件。。如果你有同样的问题,我可以给你一个itIm的转折点,包括error.php和DBconnect.php。给我20秒。这是奇怪的事情,爸爸,我没有任何错误。屏幕只是刷新,而会话可能会启动。
<?php
session_start();
error_reporting(E_ALL ^ E_NOTICE);
ini_set( 'display_errors', '0' );