作者hivabe (yaguchi)
看板PHP
标题Re: [问题] 限定时间过後即关闭系统的程式
时间Fri Aug 10 10:37:17 2007
※ 引述《noguchi (耶?!)》之铭言:
前删
: $sql = "SELECT * FROM setdate Where startyear = '$startyear' AND
: startmonth = '$startmonth' AND startday = '$startday' AND
: starthour = '$starthour' AND closingyear = '$closingyear'
: AND closingmonth = '$closingmonth' AND closingday = '$closingday'
: AND closinghour = '$closinghour'";
首先这段sql...
我不懂这一段是要取出什麽资料
首先这八个变数 $startyear $startmonth .....
是哪边来的? 前面也没看到你有指定
然後所以你的资料表最少也有八格罗?
: $result = mysql_query($sql, $link);
: if (!$result) die("执行 SQL 命令失败");
: if (mysql_num_rows($result) != 0)
: { mysql_free_result($result);
: $timestamp1 = mktime($starthour,0,0,$startmonth,$startday,$startyear);
: $timestamp2 = mktime($closinghour,0,0,$closingmonth,$closingday,$closingyear);
: }
然後$result也就不见了, timestamp也是直接用这八个变数产生
是在测试这八个变数跟资料库的符不符合吗?
: mysql_close($link);
: if(time()<$timestamp1) exit('尚未开放');
: else if(time()>$timestamp2) exit('期限已过');
: else {header("Location:index1.php");}
: ?>
所以如果这八个变数是空值, mktime(0,0,0,0,0,0) 出来的东西
那当然任何时间的time()都比他大, 所以期限都过了
你第一步可以先看看你sql取出来的$result是什麽东西
再来看看你两个$timestamp的值是什麽
如果是我的话会这样做
管理者那边产生timestamp 进资料库
$timestamp1=mktime(xxxx);
验证的这一端直接取timestamp来判断就好
资料表看是要设成
var start end
-----------------------------------------
timerange 118670000 118680000
或是
var value
-------------------------
start_time 118670000
end_time 118680000
这样直接去select xxx where var=xxx
大概这样吧
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.121.125.159
1F:推 noguchi:那资料型态是设成什麽呀? 08/11 23:16