PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (24): В начало « ... 16 17 18 19 20 [21] 22 23 24 »

> Найдено сообщений: 359
Hapson Отправлено: 07 Июля, 2013 - 12:05:53 • Тема: Регулярные выражения • Форум: Вопросы новичков

Ответов: 20
Просмотров: 753
или htmlentities() убрать?
Hapson Отправлено: 07 Июля, 2013 - 12:04:34 • Тема: Регулярные выражения • Форум: Вопросы новичков

Ответов: 20
Просмотров: 753
Да, действительно, проверять нет смысла.
Посмотрел сейчас, md5 все что угодно принимает.

Ну еще вопрос тогда.
Имеет смысл такое:
PHP:
скопировать код в буфер обмена
  1. function form_clean($x, $y = 'db'){
  2.         switch($y){
  3.                 case 'db':
  4.                         $x = htmlentities(mysql_real_escape_string(trim(strip_tags($x))), ENT_QUOTES, "UTF-8");
  5.                         break;
  6.                 case 'file':
  7.                         $x = htmlentities(addslashes(trim(strip_tags($x))), ENT_QUOTES, "UTF-8");
  8.                         break;
  9.                 default:
  10.                         $x = htmlentities(mysql_real_escape_string(trim(strip_tags($x))), ENT_QUOTES, "UTF-8");
  11.         }
  12.         return $x;
  13. }

Функция пропускает через себя данные из формы. Если file, то это записывается в тектовый файл, а если db - в БД
Hapson Отправлено: 07 Июля, 2013 - 11:52:13 • Тема: Регулярные выражения • Форум: Вопросы новичков

Ответов: 20
Просмотров: 753
teddy пишет:
PHP:
скопировать код в буфер обмена
  1. $password = $_POST['password'];
  2.  
  3.     if(!preg_match("/^[a-zA-Z0-9\!\?\.\,\@\#\$\%\_\\\-]+$/", $password))
  4.         {
  5.         echo "Что то не так";
  6.         }
  7.  

А вообще лучше для паролей использовать md5, не хорошо ограничивать пользователей в символах для ввода пароля...

Я думаю если написать, что пароль может состоять из латинских букв, цифр и спецсимволов, то будет понятно, что кроме русских букв.
После проверки конечно MD5. А как MD5 работает с кириллицей?
Hapson Отправлено: 07 Июля, 2013 - 11:18:06 • Тема: Регулярные выражения • Форум: Вопросы новичков

Ответов: 20
Просмотров: 753
Всем привет!

Есть необходимость проверять некоторые поля на соответствие. Использую preg_match()
Вот например для пароля, который может состоять из a-z A-Z 0-9 ! ? . , @ # $ % - _
CODE (htmlphp):
скопировать код в буфер обмена
  1. $x = preg_match("/^[a-zA-Z0-9!?.,@#$%_\-]+$/", $x);

Вроде работает.
Но вот хочу уточнить. Внутри квадратных скобок нужно экранировать только \ ^ - ] правильно?
Hapson Отправлено: 07 Июля, 2013 - 01:29:45 • Тема: Архитектура БД • Форум: SQL и Архитектура БД

Ответов: 62
Просмотров: 460
armancho7777777 пишет:
Спойлер (Отобразить)

Радость
Возможно...
А возможно еще уроки посмотреть, почитать. Радость
Я над ней уже наверно больше недели сижу. Первый блин как известно будет комом, так что погляжу. Одно хорошо - таблицы создаются Радость
Hapson Отправлено: 07 Июля, 2013 - 01:03:36 • Тема: Архитектура БД • Форум: SQL и Архитектура БД

Ответов: 62
Просмотров: 460
Ну вообщем вот что получилось. Дальше голова не соображает. Вроде больше ничего не надо...
Спойлер (Отобразить)
Hapson Отправлено: 06 Июля, 2013 - 19:54:10 • Тема: Архитектура БД • Форум: SQL и Архитектура БД

Ответов: 62
Просмотров: 460
caballero пишет:
http://en.wikipedia.org/wiki/Apache_Solr

Понятно... что ничего не понятно Радость я английский не знаю. Потом поищу на русском.

Тут вот еще какой вопрос...
Вот на сайте есть статьи, категории, комменты... Здесь везде могут быть картинки. Как быть с таблицей? Я нарисовал так:

id_image
id_article
id_user
url

То есть id картинки, id статьи, id пользователя и адрес картинки. А для картинок в категориях и комментах делать отдельные таблицы? Или в эту таблицу добавить id коммента, id категории и убрать с них not null? А если еще и альбомы пользователей..?
(Добавление)
А может ли внешний ключ быть NULL?
Если в таблице картинок будут хранится id на статью, категорю и коммент. Но картинка может быть только в статье, категории или комменте. То есть два id будут NULL.
Так можно?
Hapson Отправлено: 06 Июля, 2013 - 19:13:35 • Тема: Архитектура БД • Форум: SQL и Архитектура БД

Ответов: 62
Просмотров: 460
caballero пишет:
мне кажется SOLR популярнее.

А это что?
caballero пишет:
не совсем верное мнение. Лично мне для разработки myisam удобнее. например есть возможно переноса Бд прямым копированием файлов.

Ну это вообще незначительный момент. Одно дело разработка, а другое дело работающее приложение. А на хостинге возможность копирования файлов БД навряд ли пригодится.
Hapson Отправлено: 06 Июля, 2013 - 16:00:21 • Тема: Архитектура БД • Форум: SQL и Архитектура БД

Ответов: 62
Просмотров: 460
Саныч пишет:
Hapson пишет:
У myisam вроде как нет внешних ключей... А как же тогда выборки с объединением таблиц? Или я что-то не так понял?
Нет, не правильно поняли... На выборках из нескольких таблиц это никак не отображается. Просто внешние ключи накладывают некоторые ограничения. К примеру, вставляете вы данные в таблицу, а в ней есть столбец (ну скажем cat_id) связаный с другой таблицей. А вы взяли и указали cat_id которго нет. MyISAM эту запись спокойно вставит, а вот InnoDB этого сделать не даст. Целостность данных однако...
Другой пример, удаляете запись из таблицы, а с ней связаны записи в другой/других таблицах. MyISAM спокойно ее удалит и все связанные с ней данные превратяться в мусор. А вот InnoDB сначало проверит, есть ли связанные данные и если есть, то удалит их тоже, либо вобще не даст вам удалить строку, либо заменет на NULL, это уже зависит от того, что вы укажете делать.

InnoDB более продвинутый движек, я всегда выбираю его и другим советую.
Тем более полнотекстовый поиск InnoDB уже тоже поддерживает, правда не помню с какой версии, недавно начал.
Даже если вы делаете для более старых версий, вынесите свои тексты в отдельную таблицу в MyISAM-е и будет вам поиск.

Советую InnoDB.

Да да, вспомнил. Теперь понял.
По поводу удаления нужно поэкспериментировать. По-моему InnoDB удалит запись, у которой есть связанная запись в другой таблице. Но можно сделать каскадное удаление, то есть конкретную запись и все связанные. Как-то так...

Поиск теперь есть в InnoDB, но когда хостеры будут обновлять серверы?
(Добавление)
Jlblcblu пишет:
Hapson пишет:
Сфинкс еще не смотрел, но отзывы о нем не самые положительные.

Дайте ссылочку почитать отзывы.
Есть несколько проектов по 600 000 уников. сфинкс сбоев не дает.

Нет ссылок. Я только мельком просматривал. Мнения людей делятся. Впрочем как всегда.
Hapson Отправлено: 06 Июля, 2013 - 15:32:59 • Тема: Архитектура БД • Форум: SQL и Архитектура БД

Ответов: 62
Просмотров: 460
Jlblcblu пишет:

Мое мнение - забыть про myisam. Использовать innodb. В любом случае вам понадобится выполнить несколько запросов одновременно и вам придется использовать транзакцию. Про полнотекстовый поиск в mysql забудьте, посмотрите в сторону sphinx

Сфинкс еще не смотрел, но отзывы о нем не самые положительные.
В принципе, поиск к блогу можно прикрутить и от гугла.
Hapson Отправлено: 06 Июля, 2013 - 15:20:42 • Тема: Архитектура БД • Форум: SQL и Архитектура БД

Ответов: 62
Просмотров: 460
Всем привет, это снова я.
Вообщем прослушал курсы специалиста по mysql.
Понятно, что ничего не понятно... Не понял Радость
Короче myisam поддерживает поиск, быстро делает insert и у него есть блокировки.
У innodb усть транзакции, хранимые процедуры, блокировка на уровне строк и быстрые выборки.

У myisam вроде как нет внешних ключей... А как же тогда выборки с объединением таблиц? Или я что-то не так понял?

Что же выбрать для блога? Если инсертов мало, нужен поиск и быстрые выборки. В расчет беру MySQL 5.1, так как хостеры наверно не будут спешить обновляться. Полнотекстовый поиск станет обычным делом для innodb наверное через N-ное кол-во лет.
Hapson Отправлено: 28 Июня, 2013 - 21:43:14 • Тема: Архитектура БД • Форум: SQL и Архитектура БД

Ответов: 62
Просмотров: 460
caballero
Будет так:
Статья - у нее есть рейтинг. Ее личный рейтинг. Не нужно знать кто поставил +/-1. Нужно просто выводить общий рейтинг статьи.
Комменты.
Комменту можно поставить +1 и -1. Нужно будеть выводить или +/- или общий рейтинг коммента. Плюсы и минусы коммента формируют рейтинг пользователя.

Сейчас посмотрел как это сделано в Jcomment (компонент Joomla). В таблице коментов там id коммента, id статьи, id пользователя, положительный рейтинг, отрицательный рейтинг, дата, имя и маил пользователя, IP пользователя и сам коммент.
В таблице рейтинга следующие поля: id записи, id коммента, id пользователя, IP пользователя, дата (когда поставил + или -), значение (что поставил 1 или -1)
(Добавление)
PS
то есть каждый голос добавляет запись в табличку рейтинга
(Добавление)
Короче надо начинать писать. А там уже само все выплывет.
Который день уже сижу планирую базу, а толку.
Hapson Отправлено: 28 Июня, 2013 - 21:01:53 • Тема: Архитектура БД • Форум: SQL и Архитектура БД

Ответов: 62
Просмотров: 460
И еще наверно нужно IP пользователей хранить...
Но IP ведь может меняться...
Hapson Отправлено: 28 Июня, 2013 - 20:55:39 • Тема: Архитектура БД • Форум: SQL и Архитектура БД

Ответов: 62
Просмотров: 460
vanicon пишет:
Hapson пишет:
Ну то есть так, таблица комментов:

Может быть полезно также сделать поле типа кол-во проголосовавших, если надо, что бы не считать по таблице рейтингов, а в таблице рейтингов хранить пользователей конкретно кто проголосовал, но тогда нужно будет при голосовании делать транзакцию, на добавление в таблицу рейтингов и обновления поля в комменте...

Касательно моего случая, то нужно что...
Пользователь оставил пост. Кто-то поставил +1 этому посту - у автора поста в профиле поднялся рейтинг. А кто за что голосовал думаю совсем не нужно.
(Добавление)
caballero пишет:
Цитата:
А нужно ли делать таблицу с данными незарегистрированных пользователей. Хранить там их емейлы и имена?

не нужно

Цитата:
4. имя пользователя (незарегистрированного)
5. email пользователя (незарегистрированного)


всех пользователей

Ага,теперь понял. Собственно кроме имени и email больше ничего и не нужно.
Hapson Отправлено: 28 Июня, 2013 - 20:39:46 • Тема: Архитектура БД • Форум: SQL и Архитектура БД

Ответов: 62
Просмотров: 460
Вообщем понятно.
Если без деления никак, то делить. А если можно без деления, то не делить.
(Добавление)
caballero пишет:
зависит от того нужно ли что то узнавать. О незареганом пользователе вы все равно узнать ничего не можете. Возможно и о зареганом ничего кроме емейла и ника ничего в данном конткесте знать не надо (или надо в очень редких случаях).
тогда просто скопировать его емейл и ник в таблицу комента и все дела

это и есть пример денормализации

Ну то есть так, таблица комментов:
1. id коммента
2. id статьи
3. id пользователя
4. имя пользователя (незарегистрированного)
5. email пользователя (незарегистрированного)
6. коммент
7. статус

А рейтинг комментов уже отдельно
(Добавление)
А нужно ли делать таблицу с данными незарегистрированных пользователей. Хранить там их емейлы и имена?

И еще такой момент.
Есть таблица с категориями. Есть поле для описания - char(255). Есть 10 строк, но в описаниях NULL. Вот эти NULL будут занимать место на диске?

Страниц (24): В начало « ... 16 17 18 19 20 [21] 22 23 24 »
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB