Задать вопрос
@aspirantes

Почему не игнорирует функцию foreach?

Присвоил форме номер, по вар дампу отрабатывает, но функция не игнорируется.
<?php

session_start ();
$mysqli = new mysqli('127.0.0.1', 'root', '', 'bdb');
$sql_users = $mysqli->query('SELECT * FROM users');

if (isset($_SESSION['login']) == FALSE) {$_SESSION['login'] = 'Гость';}
//if (isset($_POST) == FALSE) {$_POST = [];}
if (isset($idformold) == FALSE) {$idformold = 0;};
if (isset($_POST['idform']) == FALSE) {$_POST['idform'] = 0;};
if ($_POST['idform'] != $idformold) {
     foreach ($sql_users as $log) {
          if ($_POST['login'] == $log['login'] && $_POST['password'] == $log['password']) {
               $_SESSION['login'] = $_POST['login'];
               echo 'Вы вошли как ', $_SESSION['login'], '<br/>';}
          }        
               unset($log);
               echo 'log clear <br/>';
               $idformold = $_POST['idform'];
     };


<input type="hidden" name="idform" value=<?php echo $_POST['idform']+1;?> required>


Знаю что форма отправляется повторно, предыдущая, но в скрытом инпуте, вроде как заранее пост№+1. По вар дампу индексы равны, но функция foreach выполняется при обновлении. По идее formidold должен находится только на сервере.
  • Вопрос задан
  • 109 просмотров
Подписаться 1 Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 1
v3shin
@v3shin
Веб-шаман
if (isset($idformold) == FALSE) {$idformold = 0;};
$idformold становится 0. Если ли вы отправляете какое-то значение в $_POST['idform'] кроме 0 или '', условие $_POST['idform'] != $idformold выполнится .

П.С.:
if (isset(...) == FALSE) {...}; // не надо так
if (!isset(...)) {...} // лучше так
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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