duanchan9354 2013-06-26 20:27
浏览 97
已采纳

无法在php上显示错误,只是白屏

I have amazon ec2 instance running Apache and running a lot of php scripts. But there is one php script that doesnt run or gives errors.

for example following code displays error:

<?php

    error_reporting(E_ALL); ini_set('display_errors', '1');
    echo "Hello world";
    owieufpowiejf

?>

Hello world Notice: Use of undefined constant owieufpowiejf - assumed 'owieufpowiejf' in /var/www/html/scripts/hello.php on line

But this script doesnt give any error or runs the code correctly, it just displays white screen

     <?php

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

    echo '<p>Hello World</p>';  

    $foo = new Foo;
    $foo->init();
    $foo->select();
    // Helper method to get a string description for an HTTP status code
// From http://www.gen-x-design.com/archives/create-a-rest-api-with-php/ 
function getStatusCodeMessage($status)
{
    // these could be stored in a .ini file and loaded
    // via parse_ini_file()... however, this will suffice
    // for an example
    $codes = Array(
        100 => 'Continue',
        101 => 'Switching Protocols',
        200 => 'OK',
        201 => 'Created',
        202 => 'Accepted',
        203 => 'Non-Authoritative Information',
        204 => 'No Content',
        205 => 'Reset Content',
        206 => 'Partial Content',
        300 => 'Multiple Choices',
        301 => 'Moved Permanently',
        302 => 'Found',
        303 => 'See Other',
        304 => 'Not Modified',
        305 => 'Use Proxy',
        306 => '(Unused)',
        307 => 'Temporary Redirect',
        400 => 'Bad Request',
        401 => 'Unauthorized',
        402 => 'Payment Required',
        403 => 'Forbidden',
        404 => 'Not Found',
        405 => 'Method Not Allowed',
        406 => 'Not Acceptable',
        407 => 'Proxy Authentication Required',
        408 => 'Request Timeout',
        409 => 'Conflict',
        410 => 'Gone',
        411 => 'Length Required',
        412 => 'Precondition Failed',
        413 => 'Request Entity Too Large',
        414 => 'Request-URI Too Long',
        415 => 'Unsupported Media Type',
        416 => 'Requested Range Not Satisfiable',
        417 => 'Expectation Failed',
        500 => 'Internal Server Error',
        501 => 'Not Implemented',
        502 => 'Bad Gateway',
        503 => 'Service Unavailable',
        504 => 'Gateway Timeout',
        505 => 'HTTP Version Not Supported'
    );

    return (isset($codes[$status])) ? $codes[$status] : '';
}

// Helper method to send a HTTP response code/message
 function sendResponse($status = 200, $body = '', $content_type = 'text/html')
{
    $status_header = 'HTTP/1.1 ' . $status . ' ' . getStatusCodeMessage($status);
    header($status_header);
    header('Content-type: ' . $content_type);
    echo $body;
}
    class Foo {

      //select email if does not exists insert
      public function select() {


        $event_id = $_POST["event_id"]; 
        $user_id = $_POST["user_id"];

        $isrecordExist=1; //true 

        //echo "variables will use in query : ", $event_id ,  $user_id "
";

        $stmt = $this->db->prepare("SELECT notification_id FROM NOTIFICATIONS WHERE user_id = ? AND event_id = ? AND (status=1 OR status=2)");
        if ( !$stmt ) {
            //echo "prepare failed
";
            //echo "error: ", $this->db->error, "
";
            sendResponse(500, $stmt->error);
            return false;
        }

        $rc = $stmt->bind_param("ss", $user_id,$event_id);
        if ( !$rc ) {
             //echo "bind_param failed
";
             //echo "error: ", $stmt->error, "
";
             sendResponse(500, $stmt->error);
             return false;
        }

        $rc=$stmt->execute();
        if ( !$rc ) {
            //echo "execute failed
";
            //echo "error: ", $stmt->error, "
";
            sendResponse(500, $stmt->error);
            return false;
        }

        $rc = $stmt->bind_result($result);
        if ( !$rc ) {
            //echo "bind_result failed
";
            //echo "error: ", $stmt->error, "
";
            sendResponse(500, $stmt->error);
            return false;
        }

        $rc = $stmt->fetch();
        if ( !$rc ) {
          //echo "no such record
";
          $isrecordExist=0; //false does not exists
        }
        else {
          //echo 'result: ', $result, "
";
          sendResponse(403, 'User Already Invited or Pending Request');
          return false;
        }
        $stmt->close();
    $this->db->close();
      }
      //connection initialize to database
      public function init() {


        $this->db = new mysqli('xxxxx', 'xxxxx', 'xxxxx', 'xxxxx');

        if ($this->db->connect_error) {
          die('connection failed: ' . $this->db->connect_error);
          sendResponse(503, 'Connection to DB Failed');
          return false;
        }

      }

        }

 ?>

I see that ;error_log = php_errors.log in php.ini file but can't find php_errors.log file

I just use a text editor to write the php code and test it on server.

Any idea why I can see any thing, even hello world output?

  • 写回答

2条回答 默认 最新

  • dongpao9165 2013-06-26 20:31
    关注

    The ; in front of that error log line is a comment. The problem is you don't have error reporting turned on in your ini, and you have a fatal parse error. PHP can't render the error with display_errors when you have a parse error. It's better to update the error reporting in the php.ini

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥30 YOLO检测微调结果p为1
  • ¥20 求快手直播间榜单匿名采集ID用户名简单能学会的
  • ¥15 DS18B20内部ADC模数转换器
  • ¥15 做个有关计算的小程序
  • ¥15 MPI读取tif文件无法正常给各进程分配路径
  • ¥15 如何用MATLAB实现以下三个公式(有相互嵌套)
  • ¥30 关于#算法#的问题:运用EViews第九版本进行一系列计量经济学的时间数列数据回归分析预测问题 求各位帮我解答一下
  • ¥15 setInterval 页面闪烁,怎么解决
  • ¥15 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题