首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在php中会话对我来说还不够清楚。

在php中会话对我来说还不够清楚。
EN

Stack Overflow用户
提问于 2012-07-06 16:21:38
回答 2查看 87关注 0票数 0

我发现php中的会话有点让人困惑,你们谁能给我解释一下。我有一个在我的例子中不起作用的例子:我这样注册会话,你能告诉我这是注册会话的正确方式吗?

代码语言:javascript
复制
 //this is the page from where i register myusername in sessions
if($count==1){
    session_start();
    $_SESSION['myusername'] = $_POST['myusername']; 
    include("enterpincover.php");
}
else {
    echo "Wrong Pin";
}

在这里,我首先检查用户名是否在会话中注册,以便打开他的帐户,否则再次打开登录。

它的工作,如果用户没有登录,它将显示登录页面,如果用户是正确的,如果用户登录它显示欢迎消息,但不是欢迎我想要的用户名。对于前任:欢迎大卫

代码语言:javascript
复制
<?php
session_start();
if(isset($_SESSION['myusername']))
{
    echo 'Welcome '.$_SESSION['myusername']; 
}
else
{
    include("leftmodules.php");
    include("rightmodules.php");
    include("login.php");
}
?>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-06 16:29:31

在使用$_POST$_GET注册会话时,应该检查这些变量是否存在。

示例

代码语言:javascript
复制
if(isset($_POST['myusername'])) $_SESSION['myusername'] = $_POST['myusername'];
else die("Undefined \"myusername\"");

如果您打算在MySQL查询中使用session中的变量,则应该在放入session (或cookie或任何其他变量)之前对其进行转义。使用mysql_real_escape_string()

示例

代码语言:javascript
复制
$_SESSION['myusername'] = mysql_real_escape_string($_POST['myusername']);

此外,在其他输出之前,总是将您的session_start()放在脚本的顶部,否则您的脚本将无法工作(您将得到headers already sent警告)。

票数 3
EN

Stack Overflow用户

发布于 2012-07-06 16:29:43

session_start()应该在使用会话的页面顶部-就在<?php设置会话正确并进行检查之后。但是我想你不会进入if部分,因为$count是0(你被告知它是用来检查用户名是否在会话中注册的。你可以尝试简单地警告一些东西,如果它进入内部。

echo 'alert("test");';

我想您只需要在文档的顶部使用session_start()。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11358493

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档