2012-07-20 92 views
1

在我的网站的一个页面上,变量存储在会话和另一个页面中,我需要它们再次使用,但它不起作用。PHP会话不能正常工作

这是第一页。

<?php 
session_start(); 
$_SESSION['email']=$_POST["email"]; 
$_SESSION['username']=$_POST["uname"]; 
$_SESSION['password']=$_POST["cpass"]; 
?> 

<html> 

这是第二页,只是这个简单,但我不能得到它的工作。

<html> 
<body> 
$emailcc = $_SESSION['email']; 
$usernamecc = $_SESSION['uname']; 
$passcc = $_SESSION['cpass']; 

我的第二个页面更新

<?php 
session_start(); 
?> 

<html> 
<body> 

<?php 

$emailcc = $_SESSION['email']; 
$usernamecc = $_SESSION['uname']; 
$passcc = $_SESSION['cpass']; 

它仍然当我尝试将其添加到SQL或输出变量是空白不起作用。

mysql_query("INSERT INTO Users (Username, Password, Email, Notes, Pass) 
VALUES ('$usernamecc', '$passcc', '$emailcc', 3, 1)"); 

回答

10

你在第二页的顶部需要<?php session_start(); ?>,或之前的任何输出发送到浏览器(除非你使用的输出缓冲)。

此外,您的第二个文件需要由PHP解析,因此如果它是HTML文件,则需要将其重命名为.php或配置服务器以解析.html文件。

+0

我只想补充一点,或者我有权利要求在html标签上方的变量,如上述回答说? – 2012-07-20 19:58:28

+0

您只需添加 - 只要您已经调用了'session_start();''''',您就可以随时从'$ _SESSION'中获取变量。 – nickb 2012-07-20 19:59:09

+0

你会看看我所做的代码更新吗?它似乎仍然不起作用。 – 2012-07-20 20:06:41

2

试试这个第二页上:

<?php 
session_start(); 
$emailcc = $_SESSION['email']; 
$usernamecc = $_SESSION['uname']; 
$passcc = $_SESSION['cpass']; 
?> 

使用会话之前,你必须调用在session_start()

0

试试这个第一页上:

<?php 
session_start(); 
$_SESSION['email']=$_REQUEST["email"]; 
$_SESSION['username']=$_REQUEST["uname"]; 
$_SESSION['password']=$_REQUEST["cpass"]; 
?> 

试试这个第二页:(您在本页使用了错误的会话名称)

<?php 
session_start(); 
$emailcc = $_SESSION['email']; 
$usernamecc = $_SESSION['username']; 
$passcc = $_SESSION['password']; 
?> 

MYSQL

mysql_query("INSERT INTO Users (Username, Password, Email, Notes, Pass) 
VALUES ($usernamecc, $passcc, $emailcc, 3, 1)");