当访问一个页面时,我想启动一个会话并存储一个会话变量:
<?php
session_start();
$_SESSION['myvar']='myvalue';
?>
Run Code Online (Sandbox Code Playgroud)
然后从另一个页面,我想检查是否已存储该会话变量:
<?php
session_start();
echo("1");
if(isset($_SESSION['myvar']))
{
echo("2");
if($_SESSION['myvar'] == 'myvalue')
{
echo("3");
exit;
}
}
?>
Run Code Online (Sandbox Code Playgroud)
此代码对我不起作用.
我通过Facebook登录我的网站后得到用户的姓名和电子邮件ID ..我想在登录表单上使用javascript在会话中添加这些变量; 我试过以下:
FB.api('/me', function(me) {
if (me.name) {
document.getElementById('auth-displayname').innerHTML = me.name; <% Session["fbName"] = me.name; %>
}
}
Run Code Online (Sandbox Code Playgroud)
它给出了像我这样的错误(在这一行:<%Session ["fbName"] = me.name;%>)在当前上下文等中不存在.我的div"auth-displayname"正在获得该值,但是我我有会话变量的问题
我怎样才能做到这一点
我收到一个错误,完整的错误是:
Fatal error: authnet_cart_process() [<a href='function.authnet-cart-process'>function.authnet-cart-process</a>]: The script tried to execute a method or access a property of an incomplete object. Please ensure that the class definition "AuthnetCart" of the object you are trying to operate on was loaded _before_ unserialize() gets called or provide a __autoload() function to load the class definition in /home/golfetc/public_html/wp-content/plugins/sccp-2.4.0/authnet_functions.php on line 1266
Run Code Online (Sandbox Code Playgroud)
我正在使用会话来存储购物车对象,并在稍后的某个时候获取它.authnetCart基本上是cart对象的类.
// Check cart in session
if(isset($_SESSION['AUTHNET_CART'])) {
// Get cart from session
$authnetCart = $_SESSION['AUTHNET_CART'];
foreach($authnetCart->getCartItems() as $item) { // Line#1266 …Run Code Online (Sandbox Code Playgroud) Ahoy StackOverflow,
我在我的项目中遇到过这个问题:简而言之,从我收集的内容来看,通过AJAX调用的PHP脚本没有正确地注册在index.php页面顶部设置的SESSION变量.起初,我认为这是由于会话锁定,所以我继续并添加session_write_close(),但没有解决问题.
此问题仅在新用户会话开始后的大约25%的时间内发生(即:用户登录时).
我继续删除了90%的代码,以便将错误降低到重现所需的最小编码.
Firebug通过ajax.php导致的错误结果

Firebug通过ajax.php的预期结果

注:这两个结果表明指数的回报print_r($_SESSION)为Array ( [userid] => 3724 [trialstatus] => 1 [trialtcompletions] => 0 [userlevel] => 5 ),它可以让我知道这个问题是不是与会话中的索引页面上设置.
有没有人知道一个修复(可能甚至不是代码,甚至可能是服务器设置),它将正确地允许通过AJAX调用的脚本正确访问Session变量?
测试复制方案
的index.php
<?php
if (session_status() === PHP_SESSION_NONE) session_start();
if (!isset($_SESSION['userid']))
{
$_SESSION['userid'] = 3724; //$login['AccountID'];
}
$_SESSION['trialstatus'] = "12";
$_SESSION['trialtcompletions'] = "12";
$_SESSION['userlevel'] = "12";
session_write_close();
print_r($_SESSION);
?>
<!DOCTYPE html><html><head><script src="./js/jquery.min.js"></script>
<script>
function loadStage(step,input,callback){
$.ajax({
type: "POST",
url: "./ajax.php",
data: { step: …Run Code Online (Sandbox Code Playgroud) 我是J(2)EE和Web应用程序开发世界的新手,但我很快就在我身边学习并学习了很多东西.每一天都是我新发现的奇妙之旅.
我目前正在开发一个项目,我在Glassfish v2上使用Visual JSF Woodstock.我对JSF也很陌生.
有时我需要在请求之间保存一些对象(例如MyObject).从我到目前为止所阅读和理解的内容来看,我需要使用会话来在不同请求之间保存这些对象.到现在为止还挺好.
究竟如何做到这一点是我担心的地方.我知道在JSP中你可以使用session.setAttribute("myObj", myObject)使用cookie或url重写或隐藏的表单变量来保存客户端对象.
另一方面,在JSF中,我使用Session scoped bean,比如说SessionBean1,并将对象保存为SessionBean1属性(例如SessionBean1.setSomeOjb(myObj)).这是正确的方法吗?
我猜这样做会导致服务器端的内存利用率增加,因为每个请求都会创建会话范围bean的新实例,SessionBean1加上SessionBean1中保存的myObject实例使用的内存.
我已经读过你可以使用FacesContext.getExternalContext().getSession/getSessionMap()哪个会在客户端保存会话变量.
那么您建议我使用哪种方法 - 会话范围bean或会话映射来保存对象以便在会话请求之间进行访问?
谢谢.
我的MVC 5站点有这样的web.config:
<authentication mode="Forms">
<forms name=".ADAuthCookie" loginUrl="~/Account/Login"
timeout="2880" slidingExpiration="true" protection="All" />
</authentication>
Run Code Online (Sandbox Code Playgroud)
但超时不起作用.我在这里给出的价值无关紧要,它总是在20-30分钟后到期.如何维护用户登录更长时间或直到他们退出?
有没有办法只使用"In-Proc"来实现这个目的?或者我在这里遗失了什么?
我是Go语言(Golang)的新手,我正在编写一个基于Web的应用程序.我想使用会话变量,比如PHP中的类型(从一个页面到下一个页面可用的变量,以及用户会话的唯一变量).Go中有类似的东西吗?如果没有,我将如何自己实施它们?或者有哪些替代方法?
使用" InProc "存储的.NET的HttpSessionState似乎将会话变量键值视为不区分大小写.例如:
session["foo"] = 1;
session["Foo"] = 2;
Trace.Write(session["foo"].ToString()); // => 2
Run Code Online (Sandbox Code Playgroud)
这种行为似乎没有记录,所以我想知道它是否仅仅是底层会话存储机制的副作用,还是故意由类本身实现的.由于C#将其他所有内容视为区分大小写,因此会话以不同的方式行事会有点令人不安.是什么赋予了?商店类型有所不同吗?是否与VB向后兼容?
有人能告诉我为什么会话变量不在页面之间传递?他们在2天前工作.现在不是吗?有一个第三方系统根据第三方系统记录用户.我将用户定向到返回网址的登录页面.第三方系统将用户登录并传递其ID和在其末尾生成的令牌,并将其返回到我的站点,其中包含ID和URL中的令牌.
如果未设置会话,我会尝试从网址中获取ID和令牌并设置会话.(工作)我然后生成我自己的令牌来验证从第三方系统(工作)传递的令牌,当我去点击另一页时,我设置的会话不为空(????)
这是我的代码:
<?php
session_start();
// FUNCTION TO PASS THE URL THE USER IS ON SO THEY COME
// BACk TO THIS PAGE AFTER THE LOG IN. IF APPLICABLE
function curPageURL() {
$pageURL = 'http';
if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";}
$pageURL .= "://";
if ($_SERVER["SERVER_PORT"] != "80") {
$pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
} else {
$pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
}
return $pageURL;
}
// DESTROY SESSION INFO IF TIMED OUT
if (isset($_SESSION['LAST_ACTIVITY']) && (time() - $_SESSION['LAST_ACTIVITY'] > 1800)) {
session_destroy(); …Run Code Online (Sandbox Code Playgroud) 这两段代码有什么区别.
HttpContext.Current.Session["myvariable"]
Session["myvariable"]
Run Code Online (Sandbox Code Playgroud)
asp.net 4.0和C#4.0
session ×5
php ×4
asp.net ×2
.net ×1
ajax ×1
asp.net-mvc ×1
c# ×1
go ×1
httpcontext ×1
javascript ×1
jsf ×1
wordpress ×1