После сабмита "cards_frm" отправленные данные приходят из базы только после перезагрузки страницы, получается 2 перезагрузки должно произойти прежде чем данные придут, в чем может быть проблема? <?php if($_POST["cards_update"]){ $post_cards = $mysqli->query(" INSERT `members` SET `birthday`='".$_POST['birthdaycard']."', `Card`='".$_POST['numbercard']."', `CardAdd`='".$_POST['CardAdd']."' WHERE `email`='".$_SESSION['email']."' LIMIT 1; "); } $GetCards = $mysqli->query("SELECT * FROM `Cards` WHERE `Email`='".$_SESSION['email']."';"); $Cards = $GetCards->fetch_assoc(); ?> <?php if ($row_p["CardAdd"] == 'yes') : ?> <?php if (!empty($Card)) : ?> 1 исход <?php endif; ?> <?php elseif (empty($row_p["CardAdd"])) : ?> <?php if (!empty($Cards["Number"])) : ?> <form name="cards_frm" method="POST"> <input type="text" value="yes" name="CardAdd" hidden> <input type="text" value="<?php echo $Cards['Birthday']; ?>" name="birthdaycard" hidden> <input type="text" value="<?php echo $Cards['Number']; ?>" name="numbercard" hidden> <input type="submit" class="card_update" name="cards_update" value="Добавить"> </form> <?php endif; ?> <?php endif; ?> В то время, как эта форма отправляет и получает все с первого раза: <?php if($_POST["user_update"]){ $post_form = $mysqli->query(" UPDATE `members` SET `username`='".$_POST['username']."', `last_name`='".$_POST['last_name']."', `patronymic`='".$_POST['patronymic']."', `birthday`='".$_POST['birthday']."', `street`='".$_POST['street']."', `city`='".$_POST['city']."', `phone`='".$_POST['phone']."' WHERE `email`='".$_SESSION['email']."' LIMIT 1; "); } $post_form = $mysqli->query("SELECT * FROM `members` WHERE `email`='".$_SESSION['email']."';"); $row_p = $post_form->fetch_assoc(); ?> <form name="user_frm" method="POST" style=" padding: 0 2.5%; text-align: center ;"> ... <input class="p_input_sub" type="submit" value="Cохранить" name="user_update"> </form>
в кривой логики кода. Валидатор ущемлен в своих способностях так, что его и не назвать валидатором данных. а еще узнай что такое - отображение ошибок. как правильно принимать пост данные и фильтровать. --- Добавлено --- что такое сессия в пхп и как правильно ее кушать --- Добавлено --- что такое sql injection, и какие презервативы для этого нужны.
Дело в кривой логике кода, до всего остального нужно дорасти. PHP язык серверный, работает он на сервере, обрабатывает форму и возвращает html. Отправил данные, они на сервере обрабатываются, возвращается страница. Попробуй var_dump массива $_POST в разных местах своего скрипта, в конце, после формы, в начале... Да прибудет свет во тьме... Тут, кстати, про презервативы, чет читал, запретили так говорить, ган-ны вроде тоже нельзя, как дальше жить будем, товарищи??
Извиняюсь, менял и забыл исправить, код такой: PHP: <?php if($_POST["cards_update"]){ $post_cards = $mysqli->query(" UPDATE `members` SET `birthday`='".$_POST['birthdaycard']."', `Card`='".$_POST['numbercard']."', `CardAdd`='".$_POST['CardAdd']."' WHERE `email`='".$_SESSION['email']."' LIMIT 1; "); } $GetCards = $mysqli->query("SELECT * FROM `Cards` WHERE `Email`='".$_SESSION['email']."';"); $Cards = $GetCards->fetch_assoc(); ?> <?php if ($row_p["CardAdd"] == 'yes') : ?> <?php if (!empty($Card)) : ?> 1 исход <?php endif; ?> <?php else : ?> <?php if (!empty($Cards["Number"])) : ?> <form name="cards_frm" method="POST"> <input type="text" value="yes" name="CardAdd" hidden> <input type="text" value="<?php echo $Cards['Birthday']; ?>" name="birthdaycard" hidden> <input type="text" value="<?php echo $Cards['Number']; ?>" name="numbercard" hidden> <input type="submit" class="card_update" name="cards_update" value="Добавить"> </form> <?php endif; ?> <?php endif; ?> Что не так, можно конкретнее, и по существу. Что именно в данном коде влияет на ошибку, которую я описал, про резинки я не спрашивал
Никто не знает? Выводил форму отдельно, удалял другую, которая работала, форму и php от нее - все также --- Добавлено --- Короче помогла только задержка. Код (Text): <script> function refr() {setTimeout("document.location.reload()", 1000); } </script> <form onsubmit="refr();">
Позвольте полюбопытствовать, это что за сайт, что за эльдорадо такое с номерами карт, я надеюсь банковских, можно ссылку?
А вот чтобы интерес такой пропал не только у меня но и у всех окружающих и мимо проходящих, запомните на всегда, что ВСЕ ДАННЫЕ приходящие от посетителей вашего WEB-приложения категорически НЕОБХОДИМО ОБРАБАТЫВАТЬ, начиная с удаления лишних пробелов по краям.... почитайте про SQL-инъекции.