程序问题

By 简单 at 2015-08-09 • 0人收藏 • 2404人看过

请问发新贴的会话如果长时间不操作可以保持多久,或者长时间编辑会不会丢失会话

17 个回复 | 最后更新于 2015-08-15
2015-08-09   #1

大约一个月,另外有草稿,不用担心丢失。

2015-08-09   #2

session会有严重的阻塞问题,所以实际上大部分地方里并没有用到这个。

2015-08-09   #3

回复#2 @lincanbin :

用的是什么方法呢

2015-08-09   #4

回复#3 @简单 :

Cookie验证啊

2015-08-10   #5

回复#4 @lincanbin :

鉴权函数中

function Auth($MinRoleRequire, $AuthorizedUserID = 0, $StatusRequire = false)
{
	global $CurUserRole, $CurUserID, $CurUserInfo, $Lang, $RequestURI;
	$error = '';
	if ($CurUserRole < $MinRoleRequire) {
		$error = str_replace('{{RoleDict}}', $Lang['RolesDict'][$MinRoleRequire], $Lang['Error_Insufficient_Permissions']);
	}
	if ($CurUserID && $StatusRequire == true && $CurUserInfo['UserAccountStatus'] == 0) {
		$error = $Lang['Error_Account_navailable'];
	}
	if ($AuthorizedUserID && $CurUserID && $CurUserID == $AuthorizedUserID) {
		$error = false;
	}
	if ($error) {
		AlertMsg($Lang['Error_Message'], $error, 401);
	}
}


$AuthorizedUserID, $StatusRequire
//代表什么含义啊
if ($CurUserID && $StatusRequire == true && $CurUserInfo['UserAccountStatus'] == 0)
//这个判断又是什么意思


2015-08-10   #6

回复#5 @简单 :

$AuthorizedUserID:额外允许进行此操作的用户的数据库自增主键ID。

$StatusRequire:账户状态要求:是否允许已封禁用户进行此操作,true表示有要求。

判断那句参照上面。

2015-08-14   #7

回复#6 @lincanbin :

<?php
if (!defined('InternalAccess')) exit('error: 403 Access Denied');
?>

这里的常量

InternalAccess

在哪里定义过呀

2015-08-14   #8

回复#7 @简单 :

config.php

2015-08-14   #9

回复#8 @lincanbin :

<form action="?" method="post">这个是注册页面的,这个action为什么是问号,顺便说一句表情泡泡加载有点慢啊

2015-08-14   #10

回复#9 @简单 :

我服务器在美国,慢也是没办法的。

?表示提交到当前页。

2015-08-14   #11

回复#10 @lincanbin :

有的topic永久删除以后对应的网址http://www.94cb.com/t/xxx  访问会出现 notfound,怎样设置不会出现这种情况呢,就是删除某个topic以后其他的topic自动补齐

2015-08-14   #12

回复#10 @lincanbin :

额,不小心回复了两次

2015-08-14   #13

回复#11 @简单 :

不行啊,你如果让一个帖子自行补上了,那么原来转发那个链接的人,看到的就是另一个帖子了。

一个URL对应的就应该是一个帖子,如果那个帖子被删除了,就该显示404,这是符合语义,也符合SEO的。

2015-08-14   #14

回复#13 @lincanbin :

有道理

2015-08-14   #15

回复#13 @lincanbin :

if ($Page <= 10) {
		$TopicsArray = $DB->query('SELECT `ID`, `Topic`, `Tags`, `UserID`, `UserName`, `LastName`, `LastTime`, `Replies` 
			FROM ' . $Prefix . 'topics force index(LastTime) 
			WHERE IsDel=0 
			ORDER BY LastTime DESC 
			LIMIT ' . ($Page - 1) * $Config['TopicsPerPage'] . ',' . $Config['TopicsPerPage']);
		if ($MCache && $Page == 1) {
			$MCache->set(MemCachePrefix . 'Homepage', $TopicsArray, 0, 600);
		}
	} else {
		$TopicsArray = $DB->query('SELECT `ID`, `Topic`, `Tags`, `UserID`, `UserName`, `LastName`, `LastTime`, `Replies` 
			FROM ' . $Prefix . 'topics force index(LastTime) 
			WHERE LastTime<=(SELECT LastTime 
					FROM ' . $Prefix . 'topics force index(LastTime) 
					WHERE IsDel=0 
					ORDER BY LastTime DESC 
					LIMIT ' . ($Page - 1) * $Config['TopicsPerPage'] . ',1) 
				and IsDel=0 
			ORDER BY LastTime DESC 
			LIMIT ' . $Config['TopicsPerPage']);
	}

index页面的,这两个怎么区分,为什么要分别写?

2015-08-15   #16

回复#15 @简单 :

1439475547242286.jpg

考虑性能啊,MySQL在分页时不这样做,会遍历之前所有页的。

2015-08-15   #17

回复#15 @简单 :

http://www.94cb.com/t/2276

我很久以前写过一个文章,你可以看看

登录后方可回帖

登 录
信息栏

Carbon Forum是一个基于话题的高性能轻型PHP论坛

下载地址:Carbon Forum v5.9.0
QQ群:12607708(QQ我不常上)

donate

手机支付宝扫描上方二维码可向本项目捐款

粤公网安备 44030602003677号
粤ICP备17135490号

Loading...