Подправил и немного обновил.
<?php
$dbhost = "localhost"; // адрес сервера базы данных
$dbuser = "username"; // имя пользователя для подключения к базе данных
$dbpassword = "password"; // пароль для подключения к базе данных
$dbname = "database_name"; // имя базы данных
$link = mysqli_connect($dbhost, $dbuser, $dbpassword, $dbname); // подключаемся к базе данных
if(isset($_POST['submit']) && isset($_POST['text'])) { // проверяем, была ли отправлена форма mysqli_query($link, "SET NAMES cp1251"); // устанавливаем кодировку для соединения с базой данных mysqli_query($link, "INSERT INTO chat VALUES ('', '$text', '$login', NOW( "); // вставляем новое сообщение в базу данных header("Location: chat.php"); // перенаправляем пользователя на страницу чата exit(); // завершаем выполнение скрипта }
$result = mysqli_query($link, "SELECT * FROM chat ORDER BY time DESC LIMIT 10"); // выбираем последние 10 сообщений из базы данных mysqli_query($link, "SET NAMES cp1251"); // устанавливаем кодировку для соединения с базой данных echo "{$row['time']}: {$row['login']}: {$row['text']} <br>";
}
echo "<form method='POST' action='chat.php'>
<textarea name='text'></textarea><br><br>
<input type='submit' name='submit' value='Отправить'>
</form>";
?>
Chat message insertion.
RV Kudrinskiy
if($_POST['submit'] AND $_POST['text']){
mysql_query("SET NAMES cp1251");
mysql_query("INSERT INTO caht VALUES ('','$_POST[text]','$_SESSION[login]', NOW(
");
exit(header("location: chat.php"
;
}
$rew = mysql_query("SELECT * FROM caht ORDER BY 'time' DESC LIMIT 10");
mysql_query("SET NAMES cp1251");
while($row = mysql_fetch_assoc($rew
{
echo "$row[time]:$row[login]:$row[text] <br>";
}
echo "<form method = 'POST' action='chat.php'>
<textarea name='text'></textarea><br><br>
<input type = 'submit' name = 'submit' value = 'Отправить'>
</form>";
Исправь ошибки и обнови код
Перед приведенным кодом необходимо подключиться к базе данных. Для этого необходимо использовать функцию mysql_connect() или другие альтернативные средства, такие как объекты PDO или MySQLi.
Приведенный код содержит несколько ошибок, которые необходимо исправить. Вот исправленный код:
php
Copy code
<?php
session_start(); // начинаем сессию
$dbhost = "localhost"; // адрес сервера базы данных
$dbuser = "username"; // имя пользователя для подключения к базе данных
$dbpassword = "password"; // пароль для подключения к базе данных
$dbname = "database_name"; // имя базы данных
$link = mysqli_connect($dbhost, $dbuser, $dbpassword, $dbname); // подключаемся к базе данных
if(isset($_POST['submit']) && isset($_POST['text']
{ // проверяем, была ли отправлена форма
$text = mysqli_real_escape_string($link, $_POST['text']); // экранируем специальные символы в тексте сообщения
$login = mysqli_real_escape_string($link, $_SESSION['login']); // экранируем специальные символы в имени пользователя
mysqli_query($link, "SET NAMES cp1251"); // устанавливаем кодировку для соединения с базой данных
mysqli_query($link, "INSERT INTO chat VALUES ('', '$text', '$login', NOW(
"); // вставляем новое сообщение в базу данных
header("Location: chat.php"); // перенаправляем пользователя на страницу чата
exit(); // завершаем выполнение скрипта
}
$result = mysqli_query($link, "SELECT * FROM chat ORDER BY time DESC LIMIT 10"); // выбираем последние 10 сообщений из базы данных
mysqli_query($link, "SET NAMES cp1251"); // устанавливаем кодировку для соединения с базой данных
while($row = mysqli_fetch_assoc($result
{ // выводим сообщения на страницу
echo "{$row['time']}: {$row['login']}: {$row['text']} <br>";
}
echo "<form method='POST' action='chat.php'>
<textarea name='text'></textarea><br><br>
<input type='submit' name='submit' value='Отправить'>
</form>";
mysqli_close($link); // закрываем соединение с базой данных
?>
Исправления, которые были внесены:
Использование функции mysqli_connect() вместо mysql_connect(), так как последняя устарела.
Проверка наличия параметров 'submit' и 'text' при отправке формы.
Экранирование специальных символов в тексте сообщения и имени пользователя с помощью функции mysqli_real_escape_string(), чтобы избежать возможности атаки SQL-инъекцией.
Замена запроса на выборку данных из таблицы caht на запрос на выборку данных из таблицы chat.
Исправление синтаксической ошибки в запросе на выборку данных
где база?!!!!!.952.
1. Где база? (Понимаю бред но все же.)
2. Данные вообще фильтровать не надо? Привет XSS.
3. Имя пользователя с сессии... А где у нас там сессия обьявлена, и добавлена переменная с именем пользователя???
Короче парень, иди учи.