|
|
新人试用火车头,调整了一天,无论怎样都会发布失败。
用的官方资源 帝国 6.6 新闻 web 发布模块,看代码,关键部分用黑体标出:
测试的时候发布失败,错误信息:
网页源代码:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
。。。。。(中间部分省略)
<td height="25"><div align="center">信息提示</div></td>
</tr>
<tr bgcolor="#FFFFFF">
<td height="80">
<div align="center">
<br>
<b>登录成功</b>
<br>
<br><a href="admin.php">如果您的浏览器没有自动跳转,请点击这里</a>
<br><br>
</div></td>
</tr>
</table>
</body>
</html>
返回的Header:
HTTP/1.1 200 OK
Date:Thu, 27 Dec 2012 10:59:45 GMT
Server:Apache/2.0.63 (Win32) PHP/5.2.14
X-Powered-By:PHP/5.2.14
Set-Cookie:uqlnsecmsdodbdata=empirecms; path=/,jcddgcheckkey=deleted; expires=Wed, 28-Dec-2011 10:59:44 GMT; path=/,uqlnsloginuserid=1; path=/,uqlnsloginusername=admin; path=/,uqlnsloginrnd=KGPTBY4ycycp3LzxbE4v; path=/,uqlnsloginlevel=1; path=/,uqlnseloginlic=empirecmslic; path=/,uqlnsloginadminstyleid=1; path=/,uqlnsloginecmsckpass=7747074adeea3058070dde6ae7235e66; path=/,uqlnslogintime=1356605985; path=/,uqlnstruelogintime=1356605985; path=/
Content-Length:1031
Content-Type:text/html; charset=utf-8
明明登录成功,结果返回的是空白页,实际发布文章错误日志如下:
源代码:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
。。。。。。省略
<SCRIPT language=javascript>
var secs=2;//3秒
for(i=1;i<=secs;i++)
{ window.setTimeout("update(" + i + ")", i * 1000);}
function update(num)
{
if(num == secs)
{ self.location.href='index.php';; }
else
{ }
}
</SCRIPT>
。。。。。。省略
<td height="25"><div align="center">信息提示</div></td>
</tr>
<tr bgcolor="#FFFFFF">
<td height="80">
<div align="center">
<br>
<b>您还未登录</b>
<br>
<br><a href="index.php">如果您的浏览器没有自动跳转,请点击这里</a>
<br><br>
这个问题其实在于登录已经成功,但是服务器需要重写cookie,js等文件,数据库需要响应,页面也要做跳转。
从js文件看帝国需要3秒钟来跳转。
发布失败不是接口错误,而是从登录到发布时间太短,服务器来不及响应,所以会显示“您还未登录”。
在测试接口时,如果先点“登录”,再进行“测试发布”,发布就会成功,如果未先点“登录”,直接进行“测试发布”则失败。
所以:需要在发布和登录之间设定一个延迟时间,而系统没这个选项。在“发布内容间隔时间”里加长时间是没有用的。 |
|