[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Помогите с циклом
xJlaIIax
Здравствуйте, помогите решить задачу:

$result = mysql_query ("SELECT `id`,`name`,`text` FROM `data`", $db);

while ($myrow = mysql_fetch_assoc($result))
{
$id = htmlspecialchars($myrow["id"]);
echo
'
'
. htmlspecialchars($myrow["name"]) .'

/* Сюда надо вставить код */

'
. htmlspecialchars($myrow["text"]) .'
'
;
}


Код:
if (!isset($_COOKIE[$id]))
{
echo
'<ol class="info">
<li><a href="info.php?id='
. $id .'"></a></li>
</ol>'
;
}




Спустя 4 минуты, 27 секунд (10.01.2012 - 00:19) xJlaIIax написал(а):
Я сделал так:
$result = mysql_query ("SELECT `id`,`name`,`text` FROM `data`", $db);

while ($myrow = mysql_fetch_assoc($result))
{
$id = htmlspecialchars($myrow["id"]);
echo
''. htmlspecialchars($myrow["name"]) .'';

if (!isset($_COOKIE[$id]))
{
echo
'<ol class="info">
<li><a href="info.php?id='
. $id .'"></a></li>
</ol>'
;
}

echo ''. htmlspecialchars($myrow["text"]) .'';
}


Правильно или есть какой то более лучший вариант?

Спустя 49 минут, 10 секунд (10.01.2012 - 01:08) inpost написал(а):
Какой тип данных хранится в ID? Возможно ли попадание внутрь другого типа? Что делает обработка htmlspecialchars... сиди и разбирайся, а не лепи что попало!

Спустя 1 час, 11 минут, 26 секунд (10.01.2012 - 02:20) xJlaIIax написал(а):
В ID хранится только число.
Обработку htmlspecialchars применял исходя из статьи(в самом низу).

Спустя 7 часов, 55 минут, 46 секунд (10.01.2012 - 10:15) nugle написал(а):
xJlaIIax
htmlspecialchars нужно использовать при занесении в базу, а вообще читаем это
http://php.su/functions/?f=htmlspecialchars&choice=info

Спустя 4 минуты, 41 секунда (10.01.2012 - 10:20) Nikitian написал(а):
Цитата (nugle @ 10.01.2012 - 10:15)
htmlspecialchars нужно использовать при занесении в базу

Не нужно. При занесении в бд нуно использовать mysql_real_escape_string() и только.

Спустя 48 секунд (10.01.2012 - 10:21) nugle написал(а):
Nikitian
извиняюсь, перепутал

Спустя 13 часов, 13 минут, 45 секунд (10.01.2012 - 23:35) xJlaIIax написал(а):
То есть htmlspecialchars нужно везде убрать там где происходит вывод данных из базы и можно использовать например при выводе комментариев?
Но зачем тогда в той статье порекомендовали всегда использовать эту функцию при выводе данных?

Спустя 1 час, 26 минут, 27 секунд (11.01.2012 - 01:01) nugle написал(а):
Нужно использовать там, куда могут проникнуть хакеры

Спустя 2 минуты, 29 секунд (11.01.2012 - 01:04) inpost написал(а):
xJlaIIax
Давай думать начнём. ID содержит число, и только число.
Где у нас может быть вредоносный скрипт, который нужно обработать? Для примера приведу текст:
<script>alert('HAHAHA');</script>

Теперь думаем, где может вывестись этот текст, вот там и обрабатываем.
И правило №2: вывести не ты или админ, а человек из-вне.

Спустя 1 час, 45 минут, 39 секунд (11.01.2012 - 02:49) xJlaIIax написал(а):
Почему ID может содержать не только число?
Значение для переменной ID берётся из базы, а в базе хранится только число.

Этот текст может вывести при отображении комментариев, так же скрипт может попасть с адресной строки с переменными.

Я до конца так и не понял почему он этой функцией обрабатывал при выводе данных в дискрипшине, в тайтле, при выводе поля text и т.д.

Спустя 15 минут, 42 секунды (11.01.2012 - 03:05) inpost написал(а):
А ты без обработки занеси туда код следующего содержания:
"><script>alert('YO_HO_HO');</script>
И убедишься, зачем делать надо.

Спустя 1 минута, 13 секунд (11.01.2012 - 03:06) inpost написал(а):
А ещё лучше, сделай свой сайт с формой для комментариев и не обработай её htmlspecialchars, итого я тебя ОЧЕНЬ быстро научу всё же использовать её smile.gif Особенно когда на твоём сайте появится гейское порно!
П.С. Теперь нас поисковики будут находить по такому ключевому слову! )

Спустя 12 минут, 48 секунд (11.01.2012 - 03:19) xJlaIIax написал(а):
Цитата (inpost @ 11.01.2012 - 00:06)
А ещё лучше, сделай свой сайт с формой для комментариев и не обработай её htmlspecialchars, итого я тебя ОЧЕНЬ быстро научу всё же использовать её smile.gif Особенно когда на твоём сайте появится гейское порно!
П.С. Теперь нас поисковики будут находить по такому ключевому слову! )

Ну это понятно, через эту форму может попасть скрипт в таблицу comments в столбец text.

А как он попадёт допустим в тайтл?
Кроме админов туда никто текст не напишет.

Спустя 4 минуты, 36 секунд (11.01.2012 - 03:24) inpost написал(а):
xJlaIIax
Читай то, что я выше написал по этому поводу.
И админы часто сами кавычки ставят.
Напиши для тайтлов:
Фирма "Наши креведки" >>> у нас лучшие цены

Спустя 2 минуты, 59 секунд (11.01.2012 - 03:27) xJlaIIax написал(а):
inpost, из этого следует вывод, что всегда при выводе данных из базы нужно обрабатывать функцией htmlspecialchars?

Спустя 3 минуты, 57 секунд (11.01.2012 - 03:31) inpost написал(а):
Нет. Наша песня хороша, начинай сначала!
"Какой тип данных хранится в ID? Возможно ли попадание внутрь другого типа? Что делает обработка htmlspecialchars... сиди и разбирайся, а не лепи что попало!"

Спустя 11 минут, 17 секунд (11.01.2012 - 03:42) xJlaIIax написал(а):
inpost, понял. smile.gif

Обрабатывать переменную ID функцией htmlspecialchars нет смысла, так как там хранится только число и другие символы туда никак не попадут.
Потому что данные для переменной ID выбираются из таблицы data из столбца id, а у этого столбца стоит первичный ключ и автоинкремент.

Правильно?

Спустя 11 минут, 5 секунд (11.01.2012 - 03:53) inpost написал(а):
первичный ключ может стоять и текстового поля. Надо смотреть на ТИП, а у id тип: (int) <- integer <- число

Спустя 18 минут, 53 секунды (11.01.2012 - 04:12) xJlaIIax написал(а):
inpost, при выводе данных со столбцов с типом int обработку htmlspecialchars нет смысла использовать.
А вот при выводе данных например со столбцов типов varchar, text нужно использовать всегда.

Спасибо, запомню!(+)

Спустя 1 минута, 42 секунды (11.01.2012 - 04:13) inpost написал(а):
xJlaIIax
Кроме тех случаев, когда тебе не надо обрабатывать smile.gif Допустим введённая админом верстка страницы/текста/статики.

Спустя 6 минут, 55 секунд (11.01.2012 - 04:20) xJlaIIax написал(а):
inpost, да, а то код работать не будет.

Завтра во всех местах буду исправлять, убирать бессмысленную обработку числа htmlspecialchars.

Ещё раз Спасибо!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.