Помогите доработать код: Код (Text): <?php if (isset($_POST['test'])) {$test = $_POST['test'];} ?> <?php $db = mysql_connect("Хост","Пользователь","Пароль"); if(!$db) {echo "База не подключена";} mysql_select_db("База"); mysql_query("SET NAMES 'utf8'"); mysql_query("SET CHARACTER SET 'utf8'"); mysql_query("SET SESSION collation_connection = 'utf8_general_ci'"); $result = mysql_query("INSERT INTO `userinfo` (`test`) VALUES ('$test')"); if($result == 'true') { echo "<h1>Категория добавлена успешно!</h1>"; } else { echo "<h1>Категория не добавлена!</h1>"; } ?> Что доработать: 1. Если код открыть без формы то идёт занос в базу данных пустой 2. Помогите переделать вывод ошибок и выполнение, что бы не echo "<h1>Категория добавлена успешно!</h1>"; а открывался файл "ok.php" но в него пусть строчка test передаётся: Допустим я в поле "test" напишу Привет, у меня заместо окна открылся файл ok.php и там написано Привет, Очень буду признателен
Код (Text): <?php if (isset($_POST['test'])) {$test = $_POST['test'];} // Нужно фильтровать с помощью разных функций $db = mysql_connect("Хост","Пользователь","Пароль"); if(!$db) {echo "База не подключена";} mysql_select_db("База"); mysql_query("SET NAMES 'utf8'"); mysql_query("SET CHARACTER SET 'utf8'"); mysql_query("SET SESSION collation_connection = 'utf8_general_ci'"); if(!empty($test)) $result = mysql_query("INSERT INTO `userinfo` (`test`) VALUES ('$test')"); if($result == true) // true можно без кавычек header("Location: ok.php?test={$test}"); // Редирект на страницу ok.php с передачей параметра else echo '<h1>Категория не добавлена!</h1>'; /* Если вывод echo '<h1>Категория не добавлена!</h1>'; не подходит, можно в else тоже вызвать редирект на файл с выводом ошибок или реализовать вот так: $msg = ($result == true) ? $test : '<h1>Категория не добавлена!</h1>'; header("Location: ok.php?test={$msg}"); */ ?> Добавлено спустя 11 минут 53 секунды: Еще я бы советовал, обрубать выполнение скрипта, если не пришел $_POST['test'] сразу: Код (Text): if (isset($_POST['test'])) $test = $_POST['test']; /* Данные получаемые из вне, нужно фильтровать */ else die('СТОП! Меня не обманешь!'); // или использовать редирект на страницу вывода сообщение (ok.php) Ах да, на странице ok.php параметр тест нужно ловить в $_GET['test']
Сделал вот так теперь не заносится вообще Код (Text): <?php if (isset($_POST['test'])) $test = $_POST['test']; else die('СТОП! Меня не обманешь!'); ?>
Если $_POST['test'] не передан, то PHP умрет и выведет сообщение. Сообщение вывел? Полный код файла (после изменений) и HTML формы покажите
Вот форма: Код (Text): <form method="post" action="save.php"> <input type="text" name="test" id="test" /><br> <a href="#">Ок</a> </form>
По вашему коду, форма вообще не отправляется. Код (Text): <form method="post" action="save.php"> <input type="text" name="test" id="test" /><br> <input type="submit" name="sub" value="ОК"> </form>
Знаю что не отправляется, случайно не то вставил Добавлено спустя 5 минут 15 секунд: Спасибо а подсказать можете: У меня как бы 2 формы то есть 2 файла 1. index.php 2. kld.php У меня в index.php вот такая форма Код (Text): <form method="post" action="kld.php"> <input type="site_iphone" name="test" id="test" /><br> <button>Ок</button> </form> а в kld.php у меня вот такая форма: Код (Text): <form method="post" action="save.php"> <input type="site_iphone" name="test2" id="test2" /><br> <button>Ок</button> </form> То есть как сделать что бы 2 формы сохранялись в базу в 1 строку Добавлено спустя 1 минуту 20 секунд: и подскажите я так подумал можно сделать в самой форме вывод ошибки ?!, если допустим не добавилась категория то выше написано Ошибка, а если добавилась то сделалась переадрисация на файл ok.php
Не понял, что вы хотите. Можно, нужно обработчик писать на странице с формой. До вывода HTML кода, т.е в верху страницы. Логика примерно такая: Код (Text): <?php if (isset($_POST['test'])) $test = $_POST['test']; // Фильтровать else die('СТОП! Меня не обманешь!'); $db = mysql_connect("Хост","Пользователь","Пароль"); if(!$db) {echo "База не подключена";} mysql_select_db("База"); mysql_query("SET NAMES 'utf8'"); mysql_query("SET CHARACTER SET 'utf8'"); mysql_query("SET SESSION collation_connection = 'utf8_general_ci'"); $no_error = true; // Флаг для проверки ошибок. if(!empty($test)) $result = mysql_query("INSERT INTO `userinfo` (`test`) VALUES ('$test')"); if($result == true) // true можно без кавычек header("Location: ok.php?test={$test}"); // Редирект на страницу ok.php с передачей параметра else $no_error = false; ?> <!-- HTML код --> <? if(!$no_error) echo '<h1>Категория не добавлена!</h1>'; ?> <!-- Вставить в месте, где нужно показать ошибку -->