@Mixa

Как можно мониторить ошибки PHP на страницах с POST?

Есть у меня страница, которая работает как API. Она нужна только для того, чтобы на нее пришли POST-данные и после того сделать определенные действия.

$data = $_POST['data'];
$signature = $_POST['signature'];

$private_key = "secretkey";
$securcheck = base64_encode( sha1( $private_key . $data . $private_key, 1 ) );

if($securcheck == $signature) {

do....

}


Но я не могу отвледить корректность исполнения кода, так как мне для этого нужны POST-данные! А без них это просто пустая страница! Как быть в таких случаях? Пытался сипользовать фунцию mail но она тоже запинается, когда где-то есть ошибка, по ходу.
  • Вопрос задан
  • 129 просмотров
Пригласить эксперта
Ответы на вопрос 3
@IceJOKER
Web/Android developer
Ну так отправьте пост данные, в чем проблема?
Ну или на время поменяйте $_POST на $_GET(или $_REQUEST)
Ответ написан
Комментировать
@devian3000
Самый простой способ - мокните данные.
$data = $_POST['data'];
$signature = $_POST['signature'];

$private_key = "secretkey";

$data = 'dataValue';
$signature = 'signatureVaule';

и так далее

дальше php scriptName.php, отследите поведение, отдебажте.
Ответ написан
Комментировать
alsopub
@alsopub
Проверьте $private_key . $data . $private_key, 1
Возможно тут вместо одного $private_key должно быть что-то другое.
Возможно нужны разделители, посмотрите внимательно документацию.
Там точно base64 закондированный sha1 raw?
Может быть просто sha1 (без параметра 1).

А так, для отладки, используйте запись в файл.
Имя файла, например '/tmp/test-'.time().'-'.rand().
Туда пишите var_dump($_POST), можно дозаписать свои промежуточные результаты, например $securcheck.
Сразу увидите что с чем по формату не сходится, а если сходится по формату, то смотрите процедуру посчета контрольной суммы. Иногда бывают опечатки даже в документации, если ничего не поможет - обратитесь в службу поддержки.

Если хостинг виртуальный - то пишите туда, куда есть доступ на запись и откуда вы можете эти файлы прочитать.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы