3

我正在使用 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>

进程.php

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

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

类.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 会抛出错误“找不到类测试”。

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

4

5 回答 5

5

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

require_once 'classes/class.test.php'

应该:

require_once 'classes/class.test.php';

如果这不能解决它,那么您的代码中可能存在其他一些错误。如果无法访问完整的源代码,我们将无能为力。

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

于 2012-11-22T07:28:28.573 回答
3

试试看

错误报告(E_ALL);

于 2012-11-22T07:28:15.073 回答
1

听起来您的错误报告已关闭。你应该检查你的错误日志,看看当它静默失败时抛出了什么异常(这会给你更多的洞察力)。

此外,您可能希望在流程脚本的顶部添加以下内容:

error_reporting(E_ALL);
于 2012-11-22T07:27:28.247 回答
0

looks like you are missing a closing qoute on the sql query

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

should be

$query = "INSERT INTO test_table VALUES ('$id','$username',NOW())";
mysql_query($query);
于 2012-11-22T08:09:07.530 回答
0

要求一次是一个函数......

尝试添加括号...

 require_once( 'classes/class.test.php' );    
于 2012-11-22T07:29:57.497 回答