2011-05-16 149 views
1

我有一个php文件,用户帐户的东西整个侦探。它纯粹用于测试功能是否正常工作。但是,脚本在输出第一个功能之前停止。我已经确定该代码在此代码的某处失败:PHP脚本过早结束

...more above... 
Authentication Form<br> 
<br> 
<?php if($this->session->userdata('authenticated')):?> 
Welcome back <?php echo $this->session->userdata('userid');?><br> 
<form action="<?php echo base_url();?>/account/logout" method="post"> 
    <input type="submit" value="Log Out"/> 
</form> 
<?php else:?> 
<form action="<?php echo base_url();?>/account/login" method="post"> 
    Username: <input type="text" name="username"/><br> 
    Password: <input type="text" name="password"/><br> 
    <input type="submit" value="Login"/> 
</form> 
<?php endif;?><br> 
...more below... 

我无法弄清楚为什么这段代码如果不执行。没有错误正在输出,我用过类似于此的代码,没有任何问题。任何帮助将不胜感激。

最后一个注释: 我正在使用xampp在我的笔记本电脑上运行并使用codeigniter。两者都是最新的。

+2

使用调试程序逐步执行步骤 – Phil 2011-05-16 22:53:33

+0

如果由于某种原因您没有调试器工具,那么可以尝试添加'flush()'语句。这会强制输出到浏览器到指定点,所以如果您将它们添加到各个位置,您将很快看到脚本死亡的位置。 – Orbling 2011-05-16 23:25:23

+0

你还检查了Apache错误日志吗?如果是这样,请检查php.ini并设置error_reporting = E_ALL | E_STRICT。 – 2011-05-16 23:28:13

回答

0

真正时髦的方法是使用Xdebug的

的蛮力方法可能是花边您的文件与

echo __FILE__, ":", __LINE__, "\n<br/>"; 

var_dump(get_defined_vars()); 

再加上也看到了有关设置的error_reporting到适当的调试级别加上PHP手册中的show_errors @ php.net