Не запускается функция php?
У меня есть php обработка входа(рабочая 100%). Там он должен прислать уведомление в телеграм из стоки tgid, но такого не происходит. Код снизу:
<?php error_reporting(E_ALL); ini_set('display_startup_errors', 1); ini_set('display_errors', '1'); require_once __DIR__.'/boot.php'; // проверяем наличие пользователя с указанным юзернеймом $stmt = pdo()->prepare("SELECT * FROM `users` WHERE `username` = :username AND `code` = :code"); $stmt->execute(['username' => $_POST['username'], 'code' => $_POST['code']]); if (!$stmt->rowCount()) { echo('Пользователь с такими данными не зарегистрирован'); die; } $user = $stmt->fetch(PDO::FETCH_ASSOC); if($user['bv']==0){ echo('Успешно!'); $_SESSION['logged_un'] = $_POST['username']; $_SESSION['logged_id'] = $user['id']; message_to_telegram("Выполнен вход в ваш аккаунт! Если это не вы напишите в поддержку!", $user['tgid']); }else{ message_to_telegram("Код для двойной защиты:", $user['tgid']); } |
<?php error_reporting(E_ALL); ini_set('display_startup_errors', 1); ini_set('display_errors', '1'); require_once __DIR__.'/boot.php'; // проверяем наличие пользователя с указанным юзернеймом $stmt = pdo()->prepare("SELECT * FROM `users` WHERE `username` = :username AND `code` = :code"); $stmt->execute(['username' => $_POST['username'], 'code' => $_POST['code']]); if (!$stmt->rowCount()) { echo('Пользователь с такими данными не зарегистрирован'); die; } $user = $stmt->fetch(PDO::FETCH_ASSOC); if($user['bv']==0){ echo('Успешно!'); $_SESSION['logged_un'] = $_POST['username']; $_SESSION['logged_id'] = $user['id']; message_to_telegram("Выполнен вход в ваш аккаунт! Если это не вы напишите в поддержку!", $user['tgid']); }else{ message_to_telegram("Код для двойной защиты:", $user['tgid']); }
Но когда $user['tgid'] заменяю на свой, то всё работает.
Вопрос: В чём проблема?(tgid вроде int)
Дополнительно:
Проблема в том, что вы не проверяете ответ телеги.
Например, там может сообщаться, что этот пользователь на этого бота не подписан.
В опциях вызова должна быть CURLOPT_RETURNTRANSFER => TRUE, тогда curl_exec будет возвращать ответ в виде строки.
Этот ответ можно вывести из функции:
return curl_exec(/*дескриптор cURL соединения*/);
Потом как-то распарсить:
$answer = message_to_telegram(/* параметры функции отправки сообщения */ ); /* тут парсим $answer и пишем логику реакции на ответ телеги */ |
$answer = message_to_telegram(/* параметры функции отправки сообщения */ ); /* тут парсим $answer и пишем логику реакции на ответ телеги */
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Если у вас возникла проблема с тем, что функция PHP не запускается, вам следует проверить несколько важных моментов, которые могут быть причиной этой проблемы. Вот список возможных причин и способы их решения:
1. Проверьте синтаксис вашего PHP кода. Даже одна ошибка в синтаксисе может привести к тому, что функция не будет работать. Убедитесь, что все скобки, точки с запятой и другие символы используются правильно.
2. Убедитесь, что ваш файл имеет расширение ".php". Если вы используете другое расширение, сервер может не распознать его как файл PHP и функции не будут работать.
3. Проверьте конфигурацию вашего сервера. Убедитесь, что PHP установлен и правильно настроен на вашем сервере. Может потребоваться обновить версию PHP или настроить параметры запуска функций.
4. Проверьте журналы ошибок PHP. Они могут содержать информацию о том, почему ваша функция не запускается. Просмотрите журналы ошибок, чтобы найти и исправить возможные проблемы.
5. Попробуйте использовать другие функции PHP или напишите простой тестовый скрипт, чтобы убедиться, что проблема не связана с конкретной функцией. Если другие функции работают, проблема может быть именно в этой функции.
Если после выполнения всех этих шагов проблема с запуском функции PHP все еще не решена, возможно, вам стоит обратиться за помощью к специалисту по PHP или к сообществу разработчиков для получения более подробной консультации.