PHP-Befehlszeilenausführung zeigt keine Fehler an

Lesezeit: 2 Minuten

Benutzeravatar von AgA
AgA

Wenn ich dieses Programm auf Centos als “php file.php” ausführe, zeigt es keine Ausgabe, aber php -l zeigt, dass es Fehler hat (; nach EOT fehlt). Wie aktiviere ich in diesem Fall die Fehlerberichterstattung?

<?php

ini_set('display_startup_errors',1);
ini_set('display_errors',1);
error_reporting(-1);
$str = $_POST['name'];

file_put_contents("out.txt",$str);

print  <<<EOT
<html><body><h1>You've entered $str</h1></body></html>
EOT

Ich bin durchgegangen: Wie erhalte ich nützliche Fehlermeldungen in PHP?

  • Wenn ein Skript Syntaxfehler aufweist, kann es nicht ausgeführt werden; Das Setzen von display_errors ist also bedeutungslos, da es nicht ausgeführt werden kann … Sie sollten tatsächlich einen Analysefehler angezeigt bekommen, wenn Sie versuchen, es auszuführen

    – Markus Bäcker

    11. Juni 2014 um 9:59 Uhr


  • Und Ihr Fehler ist ein Fehlen ; nach der Schließung EOT

    – Markus Bäcker

    11. Juni 2014 um 10:01 Uhr

Überschreiben display_errors=Off fügen Sie in php.ini a hinzu -d Flag auf der Kommandozeile:

php -d display_errors=on  script.php

Oder bearbeiten Sie einfach die ini und schalten Sie das Flag ein.

  • Ja, jetzt wird es angezeigt, aber habe ich den PHP-Code nicht bereits hinzugefügt? Ich habe auch versucht ini_set(‘display_errors’,’On’); im Code.

    – AgA

    11. Juni 2014 um 10:05 Uhr


  • @AgA: Wie Mark erklärt hat, führt PHP nicht einmal Ihren Code aus. Es trifft auf einen Parsing-Fehler und stoppt.

    – georg

    11. Juni 2014 um 10:06 Uhr

  • Sie meinen also -d display_errors=on sollte verwendet werden, wenn Sie auf der Befehlszeile ausgeführt werden?

    – AgA

    11. Juni 2014 um 10:16 Uhr

  • @AgA: Ich würde einfach die INI-Datei bearbeiten, aber wenn Sie dies nicht können, dann ja, Hinzufügen -d ist die einzige Möglichkeit.

    – georg

    11. Juni 2014 um 10:19 Uhr

Versuchen Sie, error_reporting auf E_ALL anstelle von -1 zu setzen, das hat den Trick für mich getan.

Quelle: http://www.php.net/manual/en/function.error-reporting.php#85096

Ausführen:

php -i | grep "Loaded Configuration File"

Und setze display_startup_errors und display_errors in dieser Datei.

1405920cookie-checkPHP-Befehlszeilenausführung zeigt keine Fehler an

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy