Подскажите пожалуйста как решить вот такую проблемку: Имеется скрипит который записывает в базу данных (MySQL) информацию в веденную в текстовом окне но если обновить страничку скрипт записывает пустую строку в базу данных. То есть я нечего не написал в текстовом окне страничку обновил и в базу данных записалась пустая строка!
Вот код. Проблема я думаю в том что запись сохраняются в $_POST['text_message'] и скрипт работает по кругу, и как эту проблему решить не знаю!!!!!!!!!! :?: :?: :?: :?: :?: :?: :?: PHP: <? session_start(); $host = "localhost"; $user = "root"; $database = "subjects"; $tables = "test"; $connect = mysql_connect($host, $user); mysql_select_db($database); $user = $_SESSION['name']; $text_message = $_POST['text_message']; if ($text_message != $text_message) { if (!empty ($text_message) && !empty ($user)) { mysql_query("INSERT INTO $tables VALUES ('$user', '$text_message')"); echo "соощение добавлено"; } else { echo "вы нечего не ввели"; } } mysql_close($connect); ?>
Чтобы при обновлении страницы не происходило повторного добавления камента в самом начале скрипта напиши: if(isset($_POST['message'])) header('Location: http://домен.ру/index.php');
Да, наверно перенаправление спасет, только думаю. нужно делать это в конце, после топравки данных в базу
PHP: <?php if( isset($_POST['text_message']) && strlen($_POST['text_message'])) { session_start(); @mysql_pconnect('localhost', 'root', 'password') or die( mysql_error()); @mysql_select_db('subjects') or die( mysql_error()); @mysql_query('INSERT INTO ' .$tables .'VALUES ("' .mysql_real_escape_string($_SESSION['name']) .'", "' .mysql_real_escape_string($text_message) .'")') or die( mysql_error()); echo 'Сообщение добавлено!'; } else echo 'Вы ничего не ввели!'; ?>
А можно с коментаричми! Может что то я не так делаю. Соединил коды: PHP: <? session_start(); $host = "localhost"; $user = "root"; $database = "subjects"; $tables = "test"; $connect = mysql_connect($host, $user); mysql_select_db($database); $user = $_SESSION['name']; $text_message = $_POST['text_message']; if( isset($_POST['text_message']) && strlen($_POST['text_message'])) { session_start(); @mysql_pconnect('localhost', 'root', 'password') or die( mysql_error()); @mysql_select_db('subjects') or die( mysql_error()); @mysql_query('INSERT INTO ' .$tables .'VALUES ("' .mysql_real_escape_string($_SESSION['name']) .'", "' .mysql_real_escape_string($text_message) .'")') or die( mysql_error()); echo 'Сообщение добавлено!'; } else echo 'Вы ничего не ввели!'; ?> и стала выдовать ошибку: Warning: session_start() [function.session-start]: open(c:/Program Files/WEB Server/PHP5/tmp\sess_f53e7813aa3fbf47bc817641ff649034, O_RDWR) failed: No such file or directory (2) in D:\WEB_Server\host\lexx.com\php skript\4.php on line 2 Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at D:\WEB_Server\host\lexx.com\php skript\4.php:2) in D:\WEB_Server\host\lexx.com\php skript\4.php on line 2 Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at D:\WEB_Server\host\lexx.com\php skript\4.php:2) in D:\WEB_Server\host\lexx.com\php skript\4.php on line 2 Вы ничего не ввели! Warning: Unknown: open(c:/Program Files/WEB Server/PHP5/tmp\sess_f53e7813aa3fbf47bc817641ff649034, O_RDWR) failed: No such file or directory (2) in Unknown on line 0 Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (c:/Program Files/WEB Server/PHP5/tmp) in Unknown on line 0
ООООООООООООО!!!!!!!!!!!!!!!!!!! ступил только сечас заметил . Спасибо всем за помощь! Все разобрался! Заработало!