Bahakz, Смотри, я тебе немного переписал блок case 'ok': дописал обработку ошибок, если они есть, то выводим их, если нет - пишем в базу.
Отрывок из твоего кода (+/-)
case 'ok':
$error = array();
if (empty($name)) {
$error[] = '<b>Введите имя!</b>';
}
if (empty($text)) {
$error[] = '<b>Введите текст сообщения!</b>';
}
if (!empty($error)) {
echo implode($error) .'<br />';
} else {
$name = mysql_real_escape_string($name);
$text = mysql_real_escape_string($text);
$query = mysql_query('INSERT INTO `chat` SET `name`='. $name .', `text`='. $text .', `time`='. time());
if(isset($query)) {
echo 'Сообщение отправлено';
} else {
echo 'Ощибка'. mysql_error();
}
}
break;
Дописал фильтры перед записью в бд
А если запутаешься, что и куда вставлять, то вот полный изменённый вариант:
* (+/-)
require_once '../sys/head.php';
require_once '../sys/db.php';
$act = trim(strip_tags($_POST['act']));
switch($act) {
default:
echo '<form action="../chat/index.php?act=ok" method="post">'.
'Ваше имя:<br /><input type="text" name="name" size="12" />'.
'Сообщение:<br /><input type="text" name="text" />'.
'<input type="submit" value="Отправить" />'.
'</form>';
break;
case 'ok':
$error = array();
if (empty($name)) {
$error[] = '<b>Введите имя!</b>';
}
if (empty($text)) {
$error[] = '<b>Введите текст сообщения!</b>';
}
if (!empty($error)) {
echo implode($error) .'<br />';
} else {
$name = mysql_real_escape_string($name);
$text = mysql_real_escape_string($text);
$query = mysql_query('INSERT INTO `chat` SET `name`='. $name .', `text`='. $text .', `time`='. time());
if(isset($query)) {
echo 'Сообщение отправлено';
} else {
echo 'Ощибка'. mysql_error();
}
}
break;
}
require_once '../sys/end.php';
И ещё была ошибка: ты в форме отправлял параметры методом
post, а в скрипте принимал методом
get.
Я только что исправил
# Bahakz (20.12.2015 / 18:03)
Неа я не об этом. Когда нажмешь на "отправить" уже следующей странице вылетает все данные
Какие данные и откуда вылетают?
# ДоХтор (20.12.2015 / 18:11)
Bahakz, Смотри, я тебе немного переписал блок case 'ok': дописал обработку ошибок, если они есть, то выводим их, если нет - пишем в базу. case 'ok':
$error = array();
if (empty($
Спасибо. Этого
`time`='. time());
кажется должно быть так `time`='. time() .'');
# Bahakz (20.12.2015 / 18:26)
Спасибо. Этого `time`='. time());кажется должно быть так `time`='. time() .'');
Я же написал тебе код выше. Копируй и без ошибок вставляй куда надо.
Bahakz, На счёт кодировки - в папке с твоим чатом создай файл .htaccess и укажи кодировку, написав в этом файле строку:
AddDefaultCharset UTF-8
ДоХтор, Посмотри чат, что-то не так.
Вот, теперь с кодировкой всё ок )
# Bahakz (20.12.2015 / 18:34)
ДоХтор, Посмотри чат, что-то не так.
Сейчас допишу то, чего не хватает )
# ДоХтор (20.12.2015 / 18:34)
Вот, теперь с кодировкой всё ок )
Попробуй вводит что-нибудь в чат
Bahakz, Пробуй этот вариант
* (+/-)
<?php
require_once '../sys/head.php';
require_once '../sys/db.php';
if (isset($_GET['act']) && $_GET['act'] == 'ok') {
$name = (!empty($_POST['name']) ? trim(strip_tags($_POST['name'])) : '');
$text = (!empty($_POST['text']) ? trim(strip_tags($_POST['text'])) : '');
$error = array();
if (empty($name)) {
$error[] = '<b>Введите имя!</b>';
}
if (empty($text)) {
$error[] = '<b>Введите текст сообщения!</b>';
}
if (!empty($error)) {
echo implode('<br />', $error);
} else {
$name = mysql_real_escape_string($name);
$text = mysql_real_escape_string($text);
$query = mysql_query('INSERT INTO `chat` SET `name`='. $name .', `text`='. $text .', `time`='. time());
if ($query) {
header('Refresh:1; url=index.php');
echo '<b>Сообщение отправлено!</b>';
} else {
echo 'Ощибка'. mysql_error();
}
}
} else {
echo '<form action="../chat/index.php?act=ok" method="post">'.
'Ваше имя:<br /><input type="text" name="name" size="12" />'.
'Сообщение:<br /><input type="text" name="text" />'.
'<input type="submit" value="Отправить" />'.
'</form>';
}
require_once '../sys/end.php';
Протестил этот вариант на локалке, всё ок ))