#631 2012.03.13 20:38

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6594
Карма: 107
Профиль Веб-сайт

Re: Общие вопросы по PHP

делать все в кодировке utf-8

Неактивен

#632 2012.03.13 20:57

wapwer
Гость

Re: Общие вопросы по PHP

что сдесь не так?
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&amp;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;

#633 2012.03.13 23:02

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6594
Карма: 107
Профиль Веб-сайт

Re: Общие вопросы по PHP

тут все не так, но проблема не тут.
посмотри в какой у тебя кодировке бд и после соединения с бд указывай кодировку utf8

Неактивен

#634 2012.03.14 01:23

tipsun
Moderator
Зарегистрирован: 2009.10.14
Сообщений: 2277
Карма: 19
Профиль

Re: Общие вопросы по PHP

Вот. Исправился.
Теперь норм?

Код:

1
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:46)

Неактивен

#635 2012.03.14 13:06

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6594
Карма: 107
Профиль Веб-сайт

Re: Общие вопросы по PHP

хз) проверь на практике)

Неактивен

#636 2012.03.14 15:02

tipsun
Moderator
Зарегистрирован: 2009.10.14
Сообщений: 2277
Карма: 19
Профиль

Re: Общие вопросы по PHP

Тестировал, ошибок не заметил.
Оптимизация подсказывает, так лучше будет.

Код:

1
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, '../')
+

Код:

1
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:14)

Неактивен

#637 2012.03.15 15:05

tipsun
Moderator
Зарегистрирован: 2009.10.14
Сообщений: 2277
Карма: 19
Профиль

Re: Общие вопросы по PHP

Это все конечно хорошо. Но по идее можно было делать так:
При указании (/url) с корня вообще не проверять на "../", "/..", а просто сносить.
При указании (url/) относительного пути рассматривать с начала строки столько "upDir" сколько есть на самом деле.
Тем более в PHP_SELF в нормальном виде. Первую не считать... Остальные "../", "/.." сносить.
- - - -
Или вообще фигней не страдать, у Akdmeh'а спросил, он ответил ничего страшного в том, что "../" будут в полном адресе перенаправления.
Да и при шаблонах можно вызвать другой шаблон, чтоб пользователь сам "push the button".

Отредактировано tipsun (2012.03.15 15:37)

Неактивен

#638 2012.03.16 13:39

ВАДИМ
Гость

Re: Общие вопросы по PHP

Столкнулся с такой проблеммой.

В магазине реализовал создание категорий и подкатегорий с неограниченым уровнем вложенности.

конечная категория содержит товар,который находится в другой таблице.

Собственно сам вопрос.

Подскажите или напишите алгоритм или код как можно например с первой категории узнать количество товаров в подкатегориях.

#639 2012.03.16 13:53

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6594
Карма: 107
Профиль Веб-сайт

Re: Общие вопросы по PHP

Я бы советовал разбить на 2 действия.
1 - вытаскиваешь все id детей нужной категории. (даже просто в php цикле несколько запросов)
2 - вытаскиваешь товары у которых категория IN (результат 1 запроса). ну в твоем случае просто COUNT(1)
Объединять в 1 запрос будет накладнее.
вот еще ссылка по теме http://habrahabr.ru/post/47280/

Неактивен

#640 2012.03.16 14:37

ВАДИМ
Гость

Re: Общие вопросы по PHP

Дело в том что это тестовый вариант,поэтому если не трудното желательно готовое решение.
Я так понял тут нужен цикл,а вот как реализовать все это не могу понять.
Циклом я смог добится чтоб шел подсчет но проблемма в том что цикл заходит только в первые категории и подкатегории,то есть если в категории тест есть подкатегории тест1 тест2 тест3 тест4 то цакл входит в тест потом в тест1 и все,а остальные не проходит и не считает там товар.

Дополнительно

forum.wapinet.ru

PunBB Mod v0.6.2
0.033 s