Вы не зашли.
делать все в кодировке utf-8
#632.
wapwer
Гость
2012.03.13 20:08
что сдесь не так?
if ($_REQUEST['ok']) {
if ($_POST['title'] and $_POST['text']) {
$title = check($_POST['title']);
$text = check($_POST['text']);
$closed = abs(intval($_POST['closed']));
mysql_query("INSERT INTO `news` SET `title` = '$title', `text` = '$text', `time` = '".time()."', `closed` = '$closed', `mas` = '$id'");
echo "<div
class=\"title\"><center>Добавить новость</center></div>";
echo 'Новость успешно добавлена!<br/>';
echo '<a href="?mod=news&act=manage">К новостям</a><br />';
} else {
error('Вы не заполнили важные поля.');
nav('?mod=news&act=add');
}
} else {
echo "<div
class=\"title\"><center>Добавить новость</center></div>";
echo '<form action="?mod=news&act=add&ok=1" method="post">
Название(max100):<br /><input name="title" type="text" maxlength="100" /><br />
Текст:<br /><textarea cols="35" rows="7" name="text" cols="" rows="5"></textarea><br />
<input name="closed" type="checkbox" value="1" /> закрыть комментирование<br />
<input name="submit" type="submit" value="Добавить" />
</form>';
echo '<a href="?mod=news&act=bbcode">Теги (bb-code)</a><br />';
echo '<a href="?mod=news&act=manage">К новостям</a><br />';
}
break;
тут все не так, но проблема не тут.
посмотри в какой у тебя кодировке бд и после соединения с бд указывай кодировку utf8
Вот. Исправился.
Теперь норм?
Код:
span style="color: #0000BB"><?phpfunction redirect ($value=''){ $url = ''; $ds = '/'; if (0 === $value or $value) { if ($ds == $value{0}) { $url = subStr($value, 1); } else { $url = dirName($_SERVER['PHP_SELF']) . $ds . $value; } $old = preg_split('#\/+#', $url); $new = array(); $key = 0; foreach ($old as $value) { if ('..' == $value) { $key -= (0 < $key) ? 1 : 0; unSet($new[$key]); continue; } if ('' <> $value) { $new[$key] = $value; $key += 1; } } if (array() <> $new) { $url = rawUrlDecode(implode($ds, $new)); } else { $url = ''; } } //header('Location: http://' . $_SERVER['HTTP_HOST'] . $ds . $url, true, 301); //exit(); exit('Location: http://' . $_SERVER['HTTP_HOST'] . $ds . $url);} |
Отредактировано tipsun (2012.03.14 01:01)
Тестировал, ошибок не заметил.
Оптимизация подсказывает, так лучше будет.
Код:
span style="color: #0000BB"><?php// foreach if ('..' == $value) { if (0 < $key) { $key -= 1; unSet($new[$key]); //or //unSet($new[--$key]); } continue; } if ('' <> $value) { $new[$key] = $value; $key += 1; //or //$new[$key++] = $value; } |
+
+
Еще можно перед разбивкой попробовать проверить strPos($url, '../')
+
Код:
span style="color: #0000BB"><?phpfunction redirect ($value=''){ $url = ''; $ds = '/'; if (0 === $value or $value) { if ($ds == $value{0}) { $url = subStr($value, 1); } else { $url = dirName($_SERVER['PHP_SELF']) . $ds . $value; } $url = trim($url, $ds); if (false !== strPos($url . $ds, '../')) { $old = preg_split('#\/+#', $url); $new = array(); $key = 0; foreach ($old as $value) { if ('..' == $value) { if (0 < $key) { $key -= 1; unSet($new[$key]); //or //unSet($new[--$key]); } continue; } if ('' <> $value) { $new[$key] = $value; $key += 1; //or //$new[$key++] = $value; } } if (array() <> $new) { $url = implode($ds, $new); } else { $url = ''; } } $url = ($url) ? rawUrlDecode($url) : ''; } //header('Location: http://' . $_SERVER['HTTP_HOST'] . $ds . $url, true, 301); //exit(); exit('Location: http://' . $_SERVER['HTTP_HOST'] . $ds . $url);} |
Отредактировано tipsun (2012.03.14 16:04)
Это все конечно хорошо. Но по идее можно было делать так:
При указании (/url) с корня вообще не проверять на "../", "/..", а просто сносить.
При указании (url/) относительного пути рассматривать с начала строки столько "upDir" сколько есть на самом деле.
Тем более в PHP_SELF в нормальном виде. Первую не считать... Остальные "../", "/.." сносить.
- - - -
Или вообще фигней не страдать, у Akdmeh'а спросил, он ответил ничего страшного в том, что "../" будут в полном адресе перенаправления.
Да и при шаблонах можно вызвать другой шаблон, чтоб пользователь сам "push the button".
Отредактировано tipsun (2012.03.15 15:03)
#638.
ВАДИМ
Гость
2012.03.16 13:01
Столкнулся с такой проблеммой.
В магазине реализовал создание категорий и подкатегорий с неограниченым уровнем вложенности.
конечная категория содержит товар,который находится в другой таблице.
Собственно сам вопрос.
Подскажите или напишите алгоритм или код как можно например с первой категории узнать количество товаров в подкатегориях.
Я бы советовал разбить на 2 действия.
1 - вытаскиваешь все id детей нужной категории. (даже просто в php цикле несколько запросов)
2 - вытаскиваешь товары у которых категория IN (результат 1 запроса). ну в твоем случае просто COUNT(1)
Объединять в 1 запрос будет накладнее.
вот еще ссылка по теме
http://habrahabr.ru/post/47280/
#640.
ВАДИМ
Гость
2012.03.16 14:02
Дело в том что это тестовый вариант,поэтому если не трудното желательно готовое решение.
Я так понял тут нужен цикл,а вот как реализовать все это не могу понять.
Циклом я смог добится чтоб шел подсчет но проблемма в том что цикл заходит только в первые категории и подкатегории,то есть если в категории тест есть подкатегории тест1 тест2 тест3 тест4 то цакл входит в тест потом в тест1 и все,а остальные не проходит и не считает там товар.