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?