我在我的网站上使用php Sessions,似乎它们随机间隔"消失".我不知道他们是否由于不活动或我的代码出现问题而超时,但是有没有办法控制会话到期时的会话?
就像我可以在我的代码中添加一些内容或更改php.ini文件中的内容一样?
更新 -所以只是在这里更新,我切换主机,神奇地会话开始工作.我不知道出了什么问题,但显然他们不想正常工作.
嗨,我正在创建一个游戏,我希望能够判断用户是否正在使用代理.如果它们比它基本上在他们的帐户上放置一个标志.我可以让它做旗帜,但我不确定如何判断用户是否正在使用代理.我已经看到你可以使用标题,但我不确定要查找哪些内容以及如何检查用户是否"有"标题(除了正常的http_referrer以外还有什么).
任何帮助是极大的赞赏.
编辑
if ( $_SERVER['HTTP_X_FORWARDED_FOR']
|| $_SERVER['HTTP_X_FORWARDED']
|| $_SERVER['HTTP_FORWARDED_FOR']
|| $_SERVER['HTTP_CLIENT_IP']
|| $_SERVER['HTTP_VIA']
|| in_array($_SERVER['REMOTE_PORT'], array(8080,80,6588,8000,3128,553,554))
|| @fsockopen($_SERVER['REMOTE_ADDR'], 80, $errno, $errstr, 30))
{
exit('Proxy detected');
}
Run Code Online (Sandbox Code Playgroud)
所以这个代码大多数都可以工作,当用户是代理时,它会快速退出.但是当它们不是它需要永远加载(大约10秒).反正有没有使用这个脚本,但让它更快?
编辑2
将fsockopen上的超时从30更改为1,它的工作速度更快,并且仍在工作.感谢大家的建议:)
我正在创建一个游戏,我想限制每人一个帐户.我有很多想要玩的家庭,我想不出一种从欺骗者那里解读家庭的方法.
我目前计划这样做的方式是检查cookie和会话,看看是否有任何设置在那台计算机上,如果他们是我知道有人已经从该帐户播放.我将检查他们的IP与我存储在我的数据库中的IP(我存储每个帐户的注册IP以及他们登录的最后一个IP).如果他们不符合我的任何一项,请查看他们已注册的电子邮件,并检查以确保该电子邮件尚未使用.
我的问题是,虽然这可能会阻止作弊者,但它也阻止了拥有一台计算机的家庭.
有没有人有任何建议或经验你做过什么?
提前致谢,
杰夫
我试图保持我的代码干净将其中的一些分解成文件(有点像库).但其中一些文件需要运行PHP.
所以我想做的是:
$include = include("file/path/include.php");
$array[] = array(key => $include);
include("template.php");
Run Code Online (Sandbox Code Playgroud)
比在template.php我会:
foreach($array as $a){
echo $a['key'];
}
Run Code Online (Sandbox Code Playgroud)
所以我想存储php在变量运行之后发生的事情以便稍后传递.
使用file_get_contents不会运行它将它存储为字符串的php,所以有没有任何选项,或者我运气不好?
更新:
所以喜欢:
function CreateOutput($filename) {
if(is_file($filename)){
file_get_contents($filename);
}
return $output;
}
Run Code Online (Sandbox Code Playgroud)
或者你的意思是为每个文件创建一个函数?
我知道我可以做加入,但它不完全是我想要的.
我正在制作一个主要有两个表的实时聊天系统:主聊天表(称之为表a),然后是一个mod表(称之为表b).如果用户被暂停,该频道的消息超过100,或者超过1周,消息将从主聊天表移动到mod表.
我将聊天消息的ID作为ID(主要)存储在主聊天表上,并作为modID存储在mod表上.
我正在做的是为我的Mods创建一个单独的页面,我希望能够将这两个表组合成一个区域,但我希望它们按各自的表排序.
所以我们说我们有以下内容:
主表ID:1,2,4 Mod表ID:3
我希望我的结果显示1,2,3,4无论ID在哪个表中.
任何帮助是极大的赞赏!
编辑:我得到了答案,这是我过去常常这样做的:
SELECT ab.* FROM
((SELECT ID as table_id FROM a
WHERE roomID = 'newUsers' ORDER BY ID ASC)
UNION ALL
(SELECT chatID as table_id FROM b
WHERE roomID = 'newUsers' ORDER BY chatID ASC)) ab
ORDER BY ab.table_id
Run Code Online (Sandbox Code Playgroud) 好的,所以更容易举一个例子,希望有些人有一个解决方案:
我有持有出价的表格:
ID | companyID | userID | contractID | bidAmount | dateAdded
Run Code Online (Sandbox Code Playgroud)
下面是可以在表中的一组示例行:
ID | companyID | userID | contractID | bidAmount | dateAdded
--------------------------------------------------------------
10 | 2 | 1 | 94 | 1.50 | 1309933407
9 | 2 | 1 | 95 | 1.99 | 1309933397
8 | 2 | 1 | 96 | 1.99 | 1309933394
11 | 103 | 1210 | 96 | 1.98 | 1309947237
12 | 2 | 1 | 96 | 1.97 | …Run Code Online (Sandbox Code Playgroud)