ОБСУЖДЕНИЕ

Ошибка в запросе

13 сообщений1 просмотровОткрыта
#1
может кто сможет подсказать где сдесь ошибка, а точнее в запросе:
$url = xss($_GET['url']);

$query = mysql_query("SELECT * FROM `site` WHERE `url` = '$url'"); $sql_count++;

if(mysql_num_rows($query) == TRUE)
{
if(isset($_POST['ban']))
{
if(empty($_POST['text'])){error('Введите причину бана'); $error = TRUE;}

if($error == FALSE)
{
$text = esc($_POST['text']);
$time = time();
mysql_query("INSERT INTO `banlist` (`id_site`, `about`, `time`) VALUES ('$id', '$text', '$time')"); $sql_count++;
mysql_query("UPDATE `site` SET `ban` = '1' WHERE `url` = '$url'");
header('Location: /site/'.$url.'');
}
}
это кусок кода для добавления сайта в бан. Бан работает но в бан листе отображается только название сайта и адрес. а время добавления и причина с ошибкой. В базе проверял запись идёт но ид сайта не записывает. я как только в базе выставляют ид то все в норму становится.
вот в этом запросе где-то ошибка
#2
id_site то где
#3
DEN35, В каком куске кода записывается в бан-лист название сайта и адрес?
#4
Netc, адрес писать сдесь не буду он вм хоть и тестовый пока. вот полностью код бана
et($_GET['url'])){header('Location: /');}

$config['title'] = 'Бан сайта';
require '../System/header.php';

$url = xss($_GET['url']);

$query = mysql_query("SELECT * FROM `site` WHERE `url` = '$url'"); $sql_count++;

if(mysql_num_rows($query) == TRUE)
{
if(isset($_POST['ban']))
{
if(empty($_POST['text'])){error('Введите причину бана'); $error = TRUE;}

if($error == FALSE)
{
$text = esc($_POST['text']);
$time = time();
mysql_query("INSERT INTO `banlist` (`id_site`, `about`, `time`) VALUES ('$id', '$text', '$time')"); $sql_count++;
mysql_query("UPDATE `site` SET `ban` = '1' WHERE `url` = '$url'");
header('Location: /site/'.$url.'');
}
}
?>
<form class="text" action="" method="POST">
Причина бана<small>(max: 240)</small><br />
<textarea name="text"></textarea><br />

<input type="submit" name="ban" value="Забанить">
</form>
<div class
вот как раз в id_site запись не идет
#5
DEN35, Потому что в форме нет отправки id_site, только причина.
#6
DEN35, И ещё, ты полученный пост-запрос сохраняешь в переменную $id_site = esc($_POST['id_site']);
а в бан-лист пишешь переменную $id
#7
Netc, тоя я менял. там вот это стоит
$text = esc($_POST['text']);
#8
DEN35, Понятно, тогда откуда берётся переменная $id ?
#9
Netc, сам не знаю. вот хочу разобраться. как только код не перебирал чтобы запись шла и не чего не выходит
#10
вот только этот кусок кода отвечает за бан.
#11
DEN35, С таблицы `site` бери id сайта и в форму добавляй
<input type="hidden" name="id" value="'.$id.'" />
#12
DEN35,
вот только этот кусок кода отвечает за бан.

у тебя в форме нет отпавки id сайта. Поэтому причина бана без адресата записывается в таблицу `banlist`
#13
Netc, все сработало спасибо!