【问题标题】:Require PHP doesn't work要求 PHP 不起作用
【发布时间】:2015-05-01 08:20:45
【问题描述】:

我正在用 PHP 编写一个尚未完全完成的代码。当我在浏览器中打开这个register.php 脚本时,只有一个空白页,因为我无法克服require('config.php')。当我删除require('config.php') 时,所有内容都会出现在我的浏览器中。

你能帮我看看我的require有什么问题吗?

<?php

require('config.php');
if (isset($_POST['submit'])) {
} else {
    $form = <<<EOT
<form action="register.php" method="POST">
First Name: <input type="text" name="name" /> <Br/>
Last Name: <input type="text" name="lname" /> <Br/>
Username: <input type="text" name="uname" /> <Br/>
Email: <input type="text" name="email1" /> <Br/>
Email2: <input type="text" name="email2" /> <Br/>
Pass: <input type="password" name="pass1" /> <Br/>
Pass2: <input type="password" name="pass2" /> <Br/>
<input type="submit" value="register" name="submit" />      
</form>
EOT;
    echo $form;
}

【问题讨论】:

  • 在您的文件顶部添加错误报告并告诉我们您是否收到:&lt;?php ini_set("display_errors", 1); error_reporting(E_ALL); ?&gt;
  • 张贴config.php也..
  • 它给出了一个致命错误,因为路径不正确。如果您打开错误报告,您就会看到错误。
  • 您当前的工作目录可能不是您认为的那样。使用__DIR__ . '/config.php' 使用当前目录的相对路径或使用chdir 更改当前工作目录。还要启用错误报告,因为它会告诉具体的错误。

标签: php require


【解决方案1】:

这是因为require 函数将查找文件config.php。如果没有找到,它会给你一个错误。仅当您在文档中添加以下行时,此错误才会可见:

ini_set("display_errors", 1);
error_reporting(E_ALL);

取自PHP documentation

require 与 include 相同,但在失败时它也会 产生致命的 E_COMPILE_ERROR 级别错误。换句话说,它将 停止脚本,而 include 仅发出警告 (E_WARNING) 允许脚本继续。

请参阅包含文档以了解其工作原理。


如果您希望 PHP 在找不到文件时不给您错误,您可以将 require 替换为 include。这意味着当它找不到文件时,它仍然会在之后运行代码。

为了解决实际问题,您可以检查config.php 是否在正确的位置。如果不是这种情况,请在您的 register.php 所在的同一文件夹中创建一个名为 config.php 的文件。

如果您的 config.php 位于正确的位置,请检查该文件是否没有任何错误,如果有,则 require 函数将无法正常工作。

【讨论】:

  • @PeeHaa 你说得对,谢谢,它只会给你一个警告,比如include
  • 答案在哪里?如果 OP 在他的 config.php 文件中也有错误怎么办?
  • @Rizier123 最后两段?谢谢你,将其添加到我的答案中。
  • 这只是猜测!你不知道这个。也可能是他的配置文件有错误!
  • @Rizier123 你说得对,下次我要问他是否可以发布他的config 文件:)
【解决方案2】:

描述:-它的发生是因为如果你使用 require('config.php');这意味着它必须拥有文件“config.php”,如果 php 无法找到该文件,那么它会给您一个致命错误,但正如您所说,它不会在您的 php 中显示任何含义.ini 文件 display_error 已关闭或 error_reporting 未设置。

所以你需要设置 error_reporting = E_ALL 或 error_reporting = E_ALL | E_STRICT 和 display_errors = 在 php.ini 文件中打开,或者您可以在 php 代码中使用命令将其打开 ini_set("display_errors", 1);
错误报告(E_ALL);。

Require:-require 将产生一个致命错误 (E_COMPILE_ERROR) 并停止脚本。
include :-include 只会产生一个警告 (E_WARNING) 并且脚本将继续。

【讨论】:

  • 您应该添加一些空格并查看此处的代码格式化工具。
猜你喜欢
  • 2018-05-09
  • 2014-03-14
  • 2013-10-02
  • 2018-10-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-26
相关资源
最近更新 更多