PHP - require_once在多个页面中

时间:2012-11-22 07:21:20

标签: php require-once

我正在使用LAMP堆栈来开发PHP应用程序。我使用require_once来包含类文件。我需要在多个PHP页面中使用这些类文件中的函数。所以,我使用require_once在所有必需的PHP页面中包含这些类文件。但是,如果我将这些类文件包含在多个页面中,则PHP文件将变为空白。它什么都没显示。查看源也不显示任何内容。

文件:test.php,process.php和class.test.php

test.php有

<?php
    session_start();
    require_once 'classes/class.test.php';

    .
    Few more classes
    .
    .  


?>

<html>   
    <form name = "myForm" method="POST" action="process.php">
       <input type = "text" name="username" value=""/>
       <input type = "submit" value="Submit" />
    </form>   
</html>

process.php

<?php 
    session_start();
    require_once 'classes/class.test.php';

    $obj_test = new test();
    $obj_test->test();
?>

class.test.php

<?php
    session_start();
    require_once 'class.misc.php';
    require_once 'config.php'; //DB connection details

    function test()
    {
        $obj_misc = new misc();
        $id = $obj_misc->random_ID();
        $username = $_POST['username'];             

        $query = "INSERT INTO test_table VALUES ('$id','$username',NOW());
        mysql_query($query);
    }
?>

现在,它返回一个空白页面。如果我在process.php中注释掉require_once,test.php页面会显示表单,但在提交表单时,process.php会抛出错误“找不到类测试”。

过去两周我一直在努力解决这个问题。 :(之前工作正常。我不明白出了什么问题。请帮忙。

5 个答案:

答案 0 :(得分:5)

您在process.php的PHP代码中有错误;你错过了一个分号:

require_once 'classes/class.test.php'

应该是:

require_once 'classes/class.test.php';

如果这不能解决问题,那么代码中可能存在其他错误。如果无法访问完整的源代码,我们将无法做很多事情。

为了将来参考,如果页面变为空白,则PHP源代码通常存在问题(即某种类型的解释错误)。作为良好调试策略的一部分,请查看display_errorserror_reporting

答案 1 :(得分:3)

尝试

  

使用error_reporting(E_ALL);

答案 2 :(得分:1)

听起来您的错误报告已关闭。您应该检查错误日志,看看当它以静默方式失败时抛出的异常(这将为您提供更多的洞察力)。

此外,您可能希望在流程脚本的顶部添加它:

error_reporting(E_ALL);

答案 3 :(得分:0)

要求曾经是一个功能...

尝试添加parens ......

 require_once( 'classes/class.test.php' );    

答案 4 :(得分:0)

看起来你错过了sql查询的结束语

$query = "INSERT INTO test_table VALUES ('$id','$username',NOW());
mysql_query($query);

应该是

$query = "INSERT INTO test_table VALUES ('$id','$username',NOW())";
mysql_query($query);