下面的代码工作正常:
<?php session_start();
$_SESSION['color'] = 'blue';
class utilities
{
public static $color;
function display()
{
echo utilities::$color = $_SESSION['color'];
}
}
utilities::display(); ?>
Run Code Online (Sandbox Code Playgroud)
这是我想要但不起作用:
<?php session_start();
$_SESSION['color'] = 'blue';
class utilities {
public static $color = $_SESSION['color']; //see here
function display()
{
echo utilities::$color;
} } utilities::display(); ?>
Run Code Online (Sandbox Code Playgroud)
我收到此错误: Parse error: syntax error, unexpected T_VARIABLE in C:\Inetpub\vhosts\morsemfgco.com\httpdocs\secure2\scrap\class.php on line 7
Php不喜欢会话变量存储在函数之外.为什么?这是语法问题还是什么?我不想实例化对象,因为只是调用实用程序函数,我需要一些会话变量全局存储.init()每次运行函数时,我都不想调用函数来存储全局会话变量.解决方案?
好吧,我正在存储一个像这样的会话变量,如果设置而不是调用数据库,则可以更快地加载用户布局.但由于布局可以通过管理员进行更改,因此我希望能够全局删除为所有用户设置$ _SESSION ['layout'] ['action']的所有会话.
$_SESSION['layout']['action'] = array(a ton of indexes and mulit-dimensional arrays);
Run Code Online (Sandbox Code Playgroud)
现在,我知道它存储在我的数据库会话表中,有一个session_id,last_update和data列.所以,问题是如何从所有用户中删除该会话数组键['action'].
运用
$_SESSION = array();
session_destroy();
Run Code Online (Sandbox Code Playgroud)
不行.基本上,session_start()正在加载每个页面,所以我只想从['layout']中删除所有['action']键.
这可能吗?谢谢
问题很简单,但我搜索了很多不同的方式,结果与我的问题无关.
所以,如果我在php文件中有一个会话变量,如果我在那之后再打开一个html页面,然后再一个php文件,我能够检索数据吗?还是他们都必须相邻?
我试过,php->html->php但我无法在另一方获得变量.也许我做错了什么.
提前致谢
我目前正在测试一个简单的登录系统.该脚本的作用是检查我输入的用户名和密码与我的数据库中的用户名和密码,如果它们都匹配,则将用户名设置为会话变量.当我转到"仅限会员"页面时,它将检查会话变量是否存在,如果不存在,则用户无法查看内容.它似乎按预期工作.根据以上信息,以下是我的问题:
我的方法有哪些漏洞/漏洞?
饼干能让它更安全吗?如果是这样,它将如何与我的代码相关?
这是我到目前为止所做的工作:
用户名和密码检查:
<?
session_start();
$username = $_POST['username'];
$password = $_POST['password'];
if ($username && $password){
$query = mysql_query("SELECT * FROM user WHERE username='$username' ");
$numrows = mysql_num_rows($query);
//if user exists
if ($numrows !=0){
while ($row = mysql_fetch_array($query)){
$dbusername = $row['username'];
$dbpassword = $row['password'];
}
if ($username == $dbusername && md5($password) == $dbpassword){
echo 'You\'re in! <a href="member.php">Click</a> here to enter the member page.';
$_SESSION['username'] = $dbusername;
}
else
echo "incorrect password!";
}
else
die("sorry, that user doesn't exist!"); …Run Code Online (Sandbox Code Playgroud) 我需要一种方法来检测我的应用程序何时关闭,以便我可以告诉Web服务器清除它存储的会话变量.有没有办法做到这一点?
可能重复:
如何取消/销毁除某些特定键以外的所有会话数据?
我有一些以"汽车"开头的会话变量,例如
$_SESSION["cars_registration"];
$_SESSION["cars_make"];
$_SESSION["cars_model"];
$_SESSION["cars_variant"];
.
.
.
$_SESSION["cars_date_created"];
Run Code Online (Sandbox Code Playgroud)
我想知道取消/删除/清空那些以汽车作为前缀的会话变量的代码,如上所述.
到目前为止,我已经实现了这一点,但对于解开它们的代码并不知道.
foreach($_SESSION as $key => $value)
{
if (strpos($key, 'cars_') === 0)
{
// Need to delete / unset the session variables
}
}
Run Code Online (Sandbox Code Playgroud)
请帮帮我
如何在iOS中获取会话变量.例如,我从登录页面开始有五个视图控制器.以用户身份登录时,我能够从我的JSON数据中获取用户ID.我希望在所有屏幕中使用此用户ID以更顺畅地完成它.我做的是拿一个隐藏变量并将其发送到下一个屏幕,当我们有100个屏幕时这是一件很难的事.有没有其他方法来设置会话变量并访问整个应用程序?
我曾尝试过在Appdelegate中保留NSString,但我无法理解如何做到这一点.
我是flask和python的新手,并且正在从事一个项目,在这个项目中,我们有一个可以通过两个不同的域访问的网站。代码库是相同的,但是域的品牌不同。我需要加载特定于域的样式表,并且在几个模板块中,我需要使用一些条件来仅在某些域上显示一些内容。
我认为最好的方法是根据域创建会话变量(欢迎其他建议)。当访问者进入其中一个域时,它会被设置,然后我可以使用条件加载适当的样式表/代码块。
我在让它工作时遇到了麻烦。现在,在我的app.py文件中,我有一个“客户端”会话变量,该变量基于在每次请求前被调用的url参数设置:
@app.before_request
def set_client_session():
if 'client' in request.args:
session['client'] = request.args['client']
Run Code Online (Sandbox Code Playgroud)
如何使用域而不是URL参数进行设置,如何在模板中检查其值,以便有条件地加载样式表/代码块?
完整的app.py文件:
import os
import json
from flask import Flask, session, request, render_template
app = Flask(__name__)
# Generate a secret random key for the session
app.secret_key = os.urandom(24)
@app.before_request
def set_client_session():
if 'client' in request.args:
session['client'] = request.args['client']
@app.route('/')
def index():
return render_template('index.html')
@app.route('/edc')
def abc():
return render_template('pages/abc.html')
@app.route('/success')
def success():
return render_template('success.html')
@app.route('/contact')
def contact():
return render_template('pages/contact.html')
@app.route('/privacy')
def privacy():
return render_template('pages/privacy.html')
@app.route('/license')
def license():
return …Run Code Online (Sandbox Code Playgroud) 问题:在下面的代码中,当我从sandbox1页面移动到sandbox2时,$ _SESSION [page_name]的新值不会被传递并恢复为index的初始值.如果在进入页面后我重新加载页面,新值似乎神奇地显示出来.代码有问题吗?你能解释为什么$ _SESSION的新值没有传播吗?
Page index.php
<?php
session_start();
$_SESSION['page']="index";
echo "This page: ".$_SESSION['page']."<br><br>";
?>
Run Code Online (Sandbox Code Playgroud)
页面sandbox1.php
<?php
session_start();
echo "From page: ".$_SESSION['page']."<br>";
$_SESSION['page']="Sandbox1";
echo "This page: ".$_SESSION['page']."<br><br>";
?>
Run Code Online (Sandbox Code Playgroud)
页面sandbox2.php
<?php
session_start();
echo "From page: ".$_SESSION['page']."<br>";
$_SESSION['page']="Sandbox2";
echo "This page: ".$_SESSION['page']."<br><br>";
?>
Run Code Online (Sandbox Code Playgroud)
在加载index.php时,它输出:
本页:索引
正如所料.
从index.php到Sandbox1输出的超链接
来自页面:索引
本页面:Sandbox1
(新值$_SESSION['page'])如预期.
从Sandbox1到Sandbox2输出的超链接:
来自页面:索引
($_SESSION恢复到价值指数)预计会看到
来自页面:sandbox1
本页面:Sandbox2
(新值)如预期.
附加信息PHP版本5.3.注册全局设置为"OFF"
我在我的PHP脚本中设置会话,我想检查谷歌浏览器中存储的SESSION变量的值.如何客户端检查保存的值?