2

我有一个主要用 php 构建的网站。我遇到的问题是在顶部我有一个带有背景图像的 div。它必须在一个非常具体的地方。每次出现 PHP 错误时,div 都会向下移动,从而使页面看起来很糟糕。

我可以想到两种可能的解决方案,但我不知道如何去做,而且在网上搜索是徒劳的。

  • 做到这一点,以便 php 错误不会将 div 向下推(我试过浮动,但 div 中有其他东西需要在左侧,而图像在右侧)

  • 使 php 错误出现在别处。(我不知道该怎么做,也找不到任何东西)

我使用codeigniter。谢谢您的帮助。

4

5 回答 5

4

您使用什么平台并不重要,但来自后端的错误应始终写入日志文件而不是生产中的输出。这就是你在 PHP 中的做法:

于 2012-05-10T22:24:30.877 回答
2

答案是您永远不会在生产服务器上显示 PHP 错误。您应该只在您的实时服务器上显示它们。

因此,当您测试和构建应用程序时,错误出现在哪里并不重要。

但是在您的实时服务器上,您需要隐藏 php 错误,同时仍在记录。Codeignitier 提供了这种能力。

首先,在您的 index.php 更改

define('ENVIRONMENT', 'development');

 if ($_SERVER['SERVER_NAME'] == 'localhost')
 {
define('ENVIRONMENT', 'development');
 }
 else
 {
define('ENVIRONMENT', 'production');
 }

当您在本地主机上时,这将自动设置开发模式,并在部署时自动设置生产模式(即没有代码更改)。

现在您根据需要配置一些东西:

inside Index.php also change the error reporting to:
if (defined('ENVIRONMENT'))
{
    switch (ENVIRONMENT)
    {
        case 'development':
            error_reporting(-1);
        break;

        case 'testing':
        case 'production':
            error_reporting(0);
        break;

        default:
            exit('The application environment is not set correctly.');
    }
 }


 Config.php
 // Set logs to show Debug + Error messages on your development
 // But only error messages on your production server
 $config['log_threshold'] = (ENVIRONMENT == 'development' ? '2' : '1');


 Database.php (config)
 $active_record = TRUE;
 $active_group = (ENVIRONMENT == 'development' ? 'localdev' : 'production');
 // Now define the two different groups here, making sure production has:
 $db['production']['db_debug'] = FALSE;
于 2012-05-10T23:01:23.047 回答
2

以上所有答案都是生成 PHP CodeIgniter 代码的正确方法。

但要回答您的问题,如果您有个人偏好,您可能想在定义图像 css 时尝试使用 z-index 属性。

它不会降低您的错误,但如果您的图像的 z-index 高于包含您的错误的 div 的 z-index,您的图像将始终位于您修复的位置。

https://developer.mozilla.org/en/CSS/Understanding_z-index

于 2012-05-12T23:19:19.687 回答
1

最明显的答案是确保没有错误。如果无法做到这一点,请将以下行添加到您的 PHP 脚本中:

error_reporting ('E_NONE');
于 2012-05-10T22:23:33.733 回答
0

快速修复将在<?php开始标签下方的代码下方插入

<?php

error_reporting(0); // this will prevent the errors from showing

ini_set('log_errors', 1); // this will log the errors in the log file.

希望这可以帮助。

于 2019-06-07T17:06:02.020 回答