Это бот VK. Код должен работать так: Я отправляю ему "1", он делает &flag = true и отправляет мне сообщение "Введите новую строку". После, я ввожу сообщение, бот записывает его в базу данных, отправляет мне сообщение "Строка записана" и делает $flag = false, чтобы мои сообщения больше не записывались.
Но проблема в том, что условие 2 не работает, как надо. Хоть я и поставил, чтобы body не было равно "1", условие все равно выполняется, и единица заносится в базу. (см. картинку ниже).
Что мне сделать, чтобы этот код работал, как я описал выше?
if ($data->object->body == 1) //условие 1
{
$flag = true;
$request_params = array(
'message' => "Введите новую строку",
'user_id' => $user_id,
'access_token'=> getenv('VK_TOKEN'),
'v' => '5.69' );
}
if ($flag && $data->object->body != 1) // условие 2
{
$qer = $data->object->body;
$request_params = array(
'message' => "Строка записана: '$qer'",
'user_id' => $user_id,
'access_token'=> getenv('VK_TOKEN'),
'v' => '5.69' );
$query = "INSERT INTO test_table VALUES (NULL, '$qer');";
$result = mysqli_query($dbcon, $query);
$flag = false;
}
Скорее всего, это происходит из-за того, что в строке if ($data->object->body == 1) вы проверяете данные на равенство, а в строке if ($flag && $data->object->body !== 1) на идентичность. Данные в $data->object->body приходят в строковом формате, а вы проверяете $data->object->body !== (integer)1.
Попробуйте сделать во втором варианте проверку на равенство (!=).
Сборка персонального компьютера от Artline: умный выбор для современных пользователей