Здравствуйте. Подскажите, пожалуйста, как можно сделать так, чтобы при нажатии на кнопку "Отправить" на страничке oform, правильно срабатывал файл action_oform, т.е, проверял для пользователя существование значения в столбце "status" и, если оно не существует или "Отклонена", создавал значение в столбце "date"(ставил текущую дату), оставляя статус пустым, а если значение "Принята", то выводил сообщение "Заявка уже была создана и принята". Я понимаю, что в общих чертах в файле action_oform должно быть: Подключение к базе данных(есть). Проверка на то, авторизован ли пользователь(есть). Получение данных из таблицы statem(есть). Работа с данными таблицы(нет). Вот, что у меня есть: Файл connection.php: PHP: <?php $host = 'localhost'; // адрес сервера $database = 'insurance'; // имя базы данных $user = 'root'; // имя пользователя $dbpassword = ''; // пароль ?> Файл oform.php: PHP: <?php require_once 'connection/connection.php'; if(empty($_SESSION['id'])) { header("Location: http://passport/auth.php"); } else { $id = $_SESSION['id']; $conn = mysqli_connect($host, $user, $dbpassword, $database); if (!$conn) { die("Connection failed: " . mysqli_connect_error()); } $sql = "SELECT * FROM client WHERE id='$id'"; $result = mysqli_query($conn, $sql); $myrow = mysqli_fetch_array($result, MYSQLI_ASSOC); $sql = "SELECT DISTINCT District FROM localitycoef"; $districts = mysqli_query($conn, $sql); } ?> <div class="container"> <script type="text/javascript" src="js\form-disable.js"></script> <script type="text/javascript" src="js\price.js"></script> <form enctype="multipart/form-data" id="ajax_form" method="post" action="action_oform.php"> <div class="form-block"> <h3>Получатель паспорта</h3> <small>Данные можно изменить в личном кабинете</small> <ul class="input-inline"> <li><label for="surname">Фамилия:</label> <input class="form-input" name="surname" type="text" value=<?php echo $myrow['Surname'];?> disabled></li> <li><label for="name">Имя:</label> <input class="form-input" name="name" type="text" value=<?php echo $myrow['Name'];?> disabled></li> <li><label for="patr">Отчество:</label> <input class="form-input" name="patr" type="text" value=<?php echo $myrow['Patronymic'];?> disabled></li> </ul> <ul class="input-inline"> <li><label for="date">Дата рождения:</label> <input class="form-input" name="date" type="date" value=<?php echo $myrow['BirthDate'];?> disabled></li> <li><label for="passport">Номер свидетельства о рождении:</label> <input class="form-input" name="passport" type="text" value=<?php echo $myrow['Passport'];?> disabled></li> </ul> <h4>Адрес постоянной регистрации:</h4> <ul class="input-inline"> <li><label for="town">Регион:</label> <input class="form-input" name="region" type="text" value="<?php echo $myrow['Region'];?>" disabled></li> <li><label for="town">Город:</label> <input class="form-input" name="town" type="text" value=<?php echo $myrow['Town'];?> disabled></li> <li><label for="street">Улица:</label> <input class="form-input" name="street" type="text" value=<?php echo $myrow['Street'];?> disabled></li> </ul> <ul class="input-inline"> <li><label for="house">Номер дома:</label> <input class="form-input" name="house" type="text" value=<?php echo $myrow['HouseNumber'];?> disabled></li> <li><label for="corpus">Корпус:</label> <input class="form-input" name="corpus" type="text" value=<?php echo $myrow['Corpus'];?> disabled></li> <li><label for="apartm">Квартира:</label> <input class="form-input" name="apartm" type="text" value=<?php echo $myrow['Apartm'];?> disabled></li> </div> <ul class="input-inline"> <li> <input class="price-left-btn" id="payment_btn" type="submit" name="payment_btn" value="Отправить"> </li></ul> </form> </div> Файл action_oform.php с моей попыткой вывести хоть что-нибудь: PHP: <?php require_once 'connection/connection.php'; if(empty($_SESSION['id'])) { header("Location: http://passport/auth.php"); } $id = $_SESSION['id']; $conn = mysqli_connect($host, $user, $dbpassword, $database); if (!$conn) { die("Connection failed: " . mysqli_connect_error()); } $sql_state = "SELECT * FROM statem WHERE id_state='$id_state'"; $result_state = mysqli_query($conn, $sql_state); $myrow_state = mysqli_fetch_array($result_state, MYSQLI_ASSOC); if ($myrow_state['status'] == 'Принята') { echo "123"; } } ?> И запросы для таблиц базы данных(делаю в phpMyadmin) Таблица client: Код (Text): CREATE TABLE `client` ( `id` int(11) NOT NULL AUTO_INCREMENT, `Email` varchar(50) NOT NULL, `Password` varchar(255) NOT NULL, `Surname` varchar(35) NOT NULL, `Name` varchar(20) NOT NULL, `Patronymic` varchar(22) DEFAULT NULL, `Phone` varchar(11) NOT NULL, `BirthDate` date NOT NULL, `Passport` text NOT NULL, `Region` varchar(35) NOT NULL, `Town` varchar(70) NOT NULL, `Street` varchar(115) NOT NULL, `HouseNumber` int(11) NOT NULL, `Corpus` int(11) DEFAULT NULL, `Apartm` int(11) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8 Таблица statem: Код (Text): CREATE TABLE `statem` ( `id_state` int(11) NOT NULL AUTO_INCREMENT, `id` int(11) NOT NULL, `status` varchar(10) DEFAULT NULL, `date` date DEFAULT NULL, PRIMARY KEY (`id_state`), KEY `id` (`id`), CONSTRAINT `statem_ibfk_1` FOREIGN KEY (`id`) REFERENCES `client` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8
Когда я вижу плохо сочетаемые вещи без должного объяснения, я обычно пропускаю такие посты. Пример: ajax_form и header("Location: http://passport/auth.php"); – даже если у вас универсальный обработчик, перед редиректом должна быть проверка, что это не AJAX-запрос. Проставить кавычки у значения хватило сил только в одном месте. Про HTML-кодирование я уже молчу. Да, бывает, что в БД хранится уже закодированный текст, но уверен, что это не ваш случай. Короче в топку --- Добавлено --- Код (Text): <?php echo "123"; или даже Код (Text): 123
девушка изучается рнр? интересный выбор, я за два года видел только одну рнр разработчицу и она код нибарал только левой рукой и правой голову подпирала... а с чем связан ваш выбор?
У вас какая-то странная страница oform.php - обычно, на таких самописных страницах с формами идет проверка на $_POST, вида: PHP: if (!empty($_POST)) { // Дополнительная валидация данных // Обрабатываем данные из формы } А у вас там зачем-то проверка на сессию идет. При этом, если говорить об SQL - то видно только два SELECT, но ни одного INSERT (который собственно бы добавлял данные из формы в базу) Поток сознания. Или уж напишите полное ТЗ (в чем суть вообще?), или опишите именно тот пункт, который у вас не получается.