RFpro.ru: Программирование на PHP

  Все выпуски  

RFpro.ru: Программирование на PHP


РАССЫЛКИ ПОРТАЛА RFPRO.RU

Лучшие эксперты по данной тематике

Асмик Гаряка
Статус: Советник
Рейтинг: 10654
∙ повысить рейтинг »
Коцюрбенко Алексей aka Жерар
Статус: Советник
Рейтинг: 3992
∙ повысить рейтинг »
LfiN
Статус: Специалист
Рейтинг: 706
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И СОФТ / Программирование / PHP

Номер выпуска:1277
Дата выхода:05.09.2015, 15:08
Администратор рассылки:F®ost (Администратор)
Подписчиков / экспертов:10 / 6
Вопросов / ответов:3 / 7

Консультация # 70545: Здравствуй, уважаемый All! Подскажите, пожалуйста, где можно толково почитать про безопасность в языке PHP? Про "подводные камни", различные ошибки, уязвимости, особенно при проектировании скриптов, связанных с обработкой форм и работой с БД (интересует, прежде всего, MySQL). буду благодарен за любую информацию, статьи, ссылки. Заране...


Консультация # 178434: Доброго времени суток. Уважаемые эксперты, помогите мне. Есть база данных SinSide в ней таблица Cinema, в ней пять столбцов (базу данных создавал в phpMyAdmin). Напишите пожалуйста скрипт который извлекал бы например из одной колонки последние 10 записей и выводил их в ячейки таблицы по одной строке в одну ячейку... Заранее вам благодарен! ...
Консультация # 146730: Здравствуйте, уважаемые эксперты. Есть форма, представлюющая собой поле для ввода т екста. Необходимо проверить является ли введенный текст числом. Сам проверяю следующим образом: function chislo($a) { for ($i=0;$i<=(strlen($a)-1);$i++) { if ((($a[$i]=="0")or($a[$i]=="1")or($a[$i]=="2&q...

Консультация # 70545:

Здравствуй, уважаемый All!
Подскажите, пожалуйста, где можно толково почитать про безопасность в языке PHP? Про "подводные камни", различные ошибки, уязвимости, особенно при проектировании скриптов, связанных с обработкой форм и работой с БД (интересует, прежде всего, MySQL). буду благодарен за любую информацию, статьи, ссылки. Заранее спасибо.

Дата отправки: 11.01.2007, 21:44
Вопрос задал: Porsche
Всего ответов: 3
Страница онлайн-консультации »


Консультирует Королёв Руслан:

Здравствуйте, Porsche!
Недавно читал в журнале PHP Inside http://phpinside.ru/mag/phpi18_2006_final.pdf 29 страница

Консультировал: Королёв Руслан
Дата отправки: 11.01.2007, 22:25
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Cimus:

Здравствуйте, Porsche!
Подборка статей http://phpclub.ru/detail/
http://articles.org.ru/cfaq/index.php?qid=86&catid=14
http://www.nestor.minsk.by/sr/2005/04/sr50417.html
http://www.addzone.ru/files/id/68

Консультировал: Cimus
Дата отправки: 11.01.2007, 22:54
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Бакулин Станислав Анатольевич:

Здравствуйте, Porsche!

http://phpclub.ru/detail/ - смотри раздел "Вопросы безопасности"
http://www.providerz.ru/articles/php/php-variables-security.html - Безопасность средствами суперглобальных массивов в PHP
http://www.compdoc.ru/internet/php/php_mysql_apache_secur/ - Безопасность PHP+MYSQL+Apache
http://phpsec.org/projects/guide/ - руководство по безопасности PHP

Консультировал: Бакулин Станислав Анатольевич
Дата отправки: 12.01.2007, 14:22
Рейтинг ответа:

НЕ одобряю 0 одобряю!

Консультация # 178434:

Доброго времени суток. Уважаемые эксперты, помогите мне.
Есть база данных SinSide в ней таблица Cinema, в ней пять столбцов (базу данных создавал в phpMyAdmin). Напишите пожалуйста скрипт который извлекал бы например из одной колонки последние 10 записей и выводил их в ячейки таблицы по одной строке в одну ячейку...
Заранее вам благодарен!

Дата отправки: 16.05.2010, 20:16
Вопрос задал: Уманский Денис
Всего ответов: 1
Страница онлайн-консультации »


Консультирует Примак Руслан Николаевич:

Здравствуйте, Уманский Денис.

Что касается первой части вашего вопроса, есть несколько вариантов решения для различных ситуаций:
1) Если в вашей таблице есть автоинкрементное поле (например id) вы можете выполнить следующий запрос:
SELECT mycolumn FROM cinema order by id desc LIMIT 10
Этот запрос сортирует данные в обратном порядке и выводит первые 10 записей с конца. Недостаток этого метода в том, что результирующая выборка отсортирована в обратном порядке. Исправить данную ситуацию можно частично, опять же, несколькими способами:
1.1) Выбирать не одну колонку, а вместе с автоинкрементным полем и выполнять повторную сортировку в нужном порядке:
select d.id, d.data_col from (SELECT c.id, c.data_col FROM cinema c order by c.id desc LIMIT 10) d order by d.id
1.2) Если вам необходима именно одна колонка в результирующем запросе, можно отсортировать по содержимому требуемой колонки, порядок строк результата в большинстве не будет соответствовать по рядку строк в БД, но, если у вас текстовый результат, будет лучше, если он будет отсортирован в алфавитном порядке.
select * from (SELECT c.data_col FROM cinema c order by c.id desc LIMIT 10) d order by 1
2) Наиболее универсальный метод, подходит для случая когда нет автоинкрементного поля и требуется вернуть значения только одной колонки в строго заданном в БД порядке, но и он со своим недостатком - необходимо выполнить два запроса:
Первый - определить количество записей:
select count(*) from cinema
, из полученного значения вычесть количество необходимых записей (в нашем случае 10) и полученное значение подставить вместо N во втором запросе:
SELECT data_col FROM cinema LIMIT N, 10

Что-же касается второй части вашего вопроса, то как правильно заметили на мини-форуме вашего вопроса - все зависит от языка реализации отображения. Для Delphi я рекомендовал бы использовать бесплатные компоненты http://zeos.firmos.at/ для работы с любым движком БД. Либо использовать компоненты ADO из поставки Delphi, но для этого Вам потребуется установить ODBC драйвер на компьютере клиента: http://www.mysql.com/downloads/connector/odbc/
Для отображения данных из колонки вам необходимо разместить на форме компонеты TZConnection, TZQuery, TDataSource, TDBGrid для компонентов Zeos, либо TADOConnection, TADOQuery, TDataSource, TDBGrid для комнонент ADO. Query необходимо привязать к Connection, DataSource к Query, а DBGrid к DataSource.



Консультировал: Примак Руслан Николаевич
Дата отправки: 17.05.2010, 16:15

5
Спасибо. Но я в этом деле совсем новичек... Если не трудо - можете как бы полный код написать (html -> php)...
Заранее благодарен.

-----
Дата оценки: 18.05.2010, 14:04

Рейтинг ответа:

НЕ одобряю 0 одобряю!

Консультация # 146730:

Здравствуйте, уважаемые эксперты.

Есть форма, представлюющая собой поле для ввода текста. Необходимо проверить является ли введенный текст числом. Сам проверяю следующим образом:

function chislo($a)
{
for ($i=0;$i<=(strlen($a)-1);$i++)
{
if ((($a[$i]=="0")or($a[$i]=="1")or($a[$i]=="2")or($a[$i]=="3")or($a[$i]=="4")or($a[$i]=="5")or($a[$i]=="6")or($a[$i]=="7")or($a[$i]=="8")or($a[$i]=="9"))!=true)
{
echo $a." - не число!"."<br>";
$n=0;
return;

}
}
}


Вопрос: Существует ли в PHP более короткий способ проверки является ли строка числом. Если возможно - приведите, пожалуйста пример.

Дата отправки: 10.10.2008, 16:43
Вопрос задал: Ihar13
Всего ответов: 3
Страница онлайн-консультации »


Консультирует Селев Валерий:

Здравствуйте, Ihar13!

Почитайте про регулярные выражения

Приложение:

Консультировал: Селев Валерий
Дата отправки: 10.10.2008, 16:49
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Vasylega:

Здравствуйте, Ihar13!
1. Можно использовать функции, напр.
if (!is_numeric($a)) echo $a." - не число!"."<br>";
2. Можно использовать регулярные выражения, напр.
if (!preg_match("/^[0-9]*$/i",$a)) echo $a." - не число!"."<br>"

Консультировал: Vasylega
Дата отправки: 10.10.2008, 17:11
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Wsoul:

Здравствуйте, Ihar13!
для целых чисел:
bool ctype_digit ( string $text ) - для проверки, являются ли все символы в строке $text цифрами.
если хотите проверить не является ли 1-я цифра нолем, то допишите условие $text[0]=="0"
результат (ctype_digit($text) && $text[0]!="0")
можете еще добавить проверку на "минус", если нужно.

для действительных чисел и не только можете попробовать
bool is_numeric ( mixed $var )
можно в комбинации с некоторыми функциями для допонительных условий.

Консультировал: Wsoul
Дата отправки: 10.10.2008, 17:12
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Оценить выпуск | Задать вопрос экспертам

главная страница  |  стать участником  |  получить консультацию
техническая поддержка  |  восстановить логин/пароль

Дорогой читатель!
Команда портала RFPRO.RU благодарит Вас за то, что Вы пользуетесь нашими услугами. Вы только что прочли очередной выпуск рассылки. Мы старались. Пожалуйста, оцените его. Если совет помог Вам, если Вам понравился ответ, Вы можете поблагодарить автора - для этого в каждом ответе есть специальные ссылки. Вы можете оставить отзыв о работе портале. Нам очень важно знать Ваше мнение. Вы можете поближе познакомиться с жизнью портала, посетив наш форум, почитав журнал, который издают наши эксперты. Если у Вас есть желание помочь людям, поделиться своими знаниями, Вы можете зарегистрироваться экспертом. Заходите - у нас интересно!
МЫ РАБОТАЕМ ДЛЯ ВАС!


© 2001-2015, Портал RFPRO.RU, Россия
Авторское право: ООО "Мастер-Эксперт Про"
Калашников О.А. | Гладенюк А.Г.
Версия системы: 2011.6.36 от 26.01.2012

В избранное