• Как лучше отправлять формы?

    @AlxMrz
    1) Отправка просто через форму перезагружает страницу. Работает в принципе во всех случаях.
    2) Отправлять форму через ajax удобно при валидации введенных полей. Однако это не сработает, если у клиента будет отключен JavaScript (такого я еще не встречал).

    Тут скорее вопрос не "Как лучше?", а "Как надо?" в контексте какой-то задачи. В целом, используйте первый вариант, потом, если будет надо, переделаете под второй.
    Ответ написан
    1 комментарий
  • Kак взять тот id где "email": "duduk1992@mail.ru"?

    @AlxMrz
    В общем виде вот так:
    <?php
    echo "<hr>";
    echo "<br>";
    $json = '{
            "Id" : {
                   "Name" : "Karen",
                    "email" : "karenshahmuradyan@gmail.com",
                    "password" : "123456"
        },
    
            "ID2" : {
                   "Name" : "Anush",
                                   "email" : "duduk1992@mail.ru",
                                   "password" : "1992120"
        }
    }';
    $decoded = json_decode($json);
    
    $expectedValue;
    foreach($decoded as $key=>$value) {
      if($value->email=='duduk1992@mail.ru') {
        $expectedValue = $key;
      }
    }
    var_dump($expectedValue);
    Ответ написан
    Комментировать
  • Почему метод post отправляет пустой arra() на phpstorm?

    @AlxMrz
    В файле check.php в самом начале до какого-либо кода пропишите:
    echo '<pre>';var_dump($_POST);echo '</pre>';exit();

    Отобразится массив, который был отправлен. Он точно у вас будет пустым?
    Ответ написан
  • Почему ajax запрос выводит undefined?

    @AlxMrz
    1) Проверьте данные, которые вы получает после ajax запроса в функции success. Сделайте в начале console.log(data). В консоли отобразятся выведенные значения.
    2) Проверьте, что в следствие запроса отправлены корректные данные на сервер. Это можно сделать через консоль разработчика(F12). В Google Chrome вкладка network в консоли.
    3) Запустите скрипт возврата данных из базы независимо от ajax запроса, чтобы убедиться, что данные возвращаются корректно. Попробуйте сделать запрос без bindValue напрямую. Уберите все лишнее для теста.
    4) Установите обработчики ошибок, чтобы при регистрации неверных данных возвращалось значение в виде Exception или любом другом, которое можно было бы отследить.
    5) Олег верно подметил, что $std->fetch(PDO::FETCH_ASSOC) возвращает значение, а сам $std будет объектом PDOStatement. Посмотрите, что вернет метод fetch.
    Ответ написан
  • Как считывать и сразу выводить что-то на той же странице исходя из введенных в форму данных?

    @AlxMrz
    Ну как-то так:
    <?php
    	session_start();
    	if(!isset($_SESSION['count'])) {
    		$_SESSION['count']=0;
    	}
    	if($_SESSION['count']>5) {
    		$_SESSION['count'] = 0;
    	}
    
    	?>
    <!DOCTYPE html>
    <html>
    <head>
    	<title>TEST</title>
    	<meta charset="utf-8" />
    </head>
    <body>
    <form class="answer-input-div" method="post" action="<?=$_SERVER['PHP_SELF']?>" <?php if($_SESSION['count']==5) echo "style='display:none;'"; ?>>
    	<input type="text" required name="answer" placeholder="Введите ответ в это поле" class="answer-input">
    	<button class="answer-button" type="submit">Проверить</button>
    </form>
    <?php
    	$answerinf   = false;
    	$answertrue  = 33;
    	$usersanswer = $_POST['answer'];
    	$istinnost   = "Нет";
    	$i = 0;
    	if ($usersanswer == $answertrue) {
    	    $answerinf = true;
    	} else {
    	    $_SESSION['count']++;
    	}
    	if ($answerinf == True) {
    	    $istinnost = "Да";
    	}
    	?>
    	<h2>Попыток: <?php echo "{$_SESSION['count']}"?>/5.</h2>
    	<h2>Решение: <?php echo "$istinnost"?>.</h2>
    
    </body>
    </html>

    Но это, конечно, грубое решение. Эту задачу можно решить и через JavaScript. Саму логику расчетов вообще лучше вынести из файла шаблона.
    Ответ написан
    3 комментария
  • Почему не работает валидация yii2?

    @AlxMrz
    Слишком мало информации. Приведите свой код из метода rules(), где задаете правила валидации, а также фрагмент кода, где выводите поле в шаблоне
    Ответ написан
  • С чего начать рефакторинг?

    @AlxMrz
    Советую прочесть книгу "Рефакторинг существующего кода" Мартина Фаулера. Там достаточно неплохо освещен этот процесс.
    Lander дал тебе неплохую ссылку. У меня самого она в закладках.
    Также прочти про антипаттерны проектирования,т.е. о том, как делать не надо. https://sourcemaking.com/antipatterns - это ресурс по антипаттернам. На русском в поиске тоже можно найти информацию об этом.
    Ну и напоследок отформатируй свой код в соответствии со стандартами твоего языка программирования. Для PHP это PSR-1 и PSR-2 (и другие PSR тоже желательно)
    Ответ написан
    4 комментария
  • Что входит в мини фреймворк php?

    @AlxMrz
    Читайте книгу Мэтта Зандстра по шаблонам и проектированию, а потом не парьтесь и берите yii2. Фреймворк относительно прост, удобен и позволяет понять шаблон MVC, который уже упоминали выше (или другой фреймворк, например Symfony, CodeIgniter и т.д.). Потом сделаете для себя что-нибудь с учетом опыта.
    Если делаете для кого-то, то берите уже готовые решения(фреймворк или CMS), пожалейте людей или себя в будущем, если поддерживать будете этот код сами.
    Ответ написан