Подскажите пж, в чём проблема
[code] case 'otv':
$id = TextGuard($_POST['id']);
$opponent = mysql_fetch_assoc(mysql_query("SELECT * FROM `users` WHERE `id` = '".mysql_real_escape_string($_GET['id'])."' LIMIT 1");
$ban = mysql_query('SELECT * FROM `ban` WHERE `id_user` = "'.$myID.'" AND `last` > "'.time().'" ORDER BY `id` DESC LIMIT 1');
$ban = mysql_fetch_array($ban);
if(strlen($text) < 2 or strlen($text) > 800)$err = 'Длина сообщения должна быть в пределах 2 - 800 символов';
if($ban)$err = "На вас наложен, бан осталось ".tl($ban[last]-time());
if(!$err){
mysql_query("INSERT INTO `chat` SET `id_user` = '$user[id]', `to` = '$opponent[to]', `time` = '".time()."', `text` = '".mysql_real_escape_string($text)."'"
$_SESSION['msg'] = 'Сообщение отправлено';
header('Location: /chat');
exit();
}
echo "<div class='block'>";
echo "<form method='post' action='?text=".htmlspecialchars($opponent['to'])."'>";
echo "<form method='post' action='?text=".htmlspecialchars($opponent['to'])."'>";
echo "<input type='text' name='text' value = '$opponent[login], '>";
echo "<input type='submit' class='btn' value='Отправить'>
<a href='/chat' class='btn'>Обновить</a>
</form></div>";
break;[/code]
Так вот, $opponent[login] и $opponent[to] в форме работает, а при занисении в базу не работает, вместо id кому отвечаю пишет "0"
`to` = '$opponent[id]'
Хотя и это кривой подход.
Если не заработает, пиши завтра в лс.
Когда делаю так:
echo "<input type='text' name='text' value = '$opponent[id], '>";
То показывает id юзера которому отвечаю, а вот в самом запросе не работает:
`to` = '".$opponent['id']."'
Ага, хорошо)
JetBlue, Ты можешь попробовать примерно так хернуть
[code]
//////////////////////////////////////
case 'otv':
///////////////////Функция фильтрации, можно даже так
function filter($msg){ $msg=trim($msg); $msg=htmlspecialchars($msg); return $msg;}
///////////////////Получаем ID и проверяем, также проверяем нет ли банана
$id=intval($_GET['id']);
$opponent=mysql_fetch_assoc(mysql_query("SELECT * FROM `users` WHERE `id`= '".$id."'");
$ban=mysql_fetch_assoc(mysql_query("SELECT * FROM `ban` WHERE `id_user`='$user[id]' AND `last`>'".$time()."'");
if(!empty($ban)){$err="На вас наложен бан! До освобождения осталось: ".tl($ban[last]-time());}
///////////////////Проверка формы+запись в базу
if(isset($_REQUEST['GO'])){ $text=filter($_POST['text']);
if(strlen($text) < 2 or strlen($text) > 800){$err='Длина сообщения должна быть в пределах 2 - 800 символов';}
if(!empty($err)){mysql_query("INSERT INTO `chat` SET `id_user`='$user[id]',`to`='$opponent[to]',`time`='".time()."',`text`='".$text)."'"
$_SESSION['msg']='Сообщение отправлено'; header('Location: /chat'); exit();}}
else{$_SESSION['msg']='Сообщение не отправлено! Произошла ошибка'; header('Location: /chat'); exit();}
///////////////////Форма
echo '<div class="block"> <form method="post">
<input type="text" name="text" value="'.$opponent['login'].'">
<input type="submit" class="btn" value="Отправить" name="GO"> <a href="/chat" class="btn">Обновить</a> </form></div>';
break;
//////////////////////////////////////
[/code]
http://codepad.org/yGeh8fsS
Добавлено 06.12.16 в 21:31:26:
не, вот так http://codepad.org/XYfzKdnL пробуй
Неа Вообще ошибка) Завтра bibilink напишу