Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.07.2011, 14:52   #1
serg-php
Пользователь
 
Регистрация: 14.01.2008
Сообщений: 13
По умолчанию Запрос к базе

Есть такой запрос к базе

PHP код:
$numrows $db->one_data('SELECT COUNT(*) FROM '.TАBLЕ_USERS
               
" WHERE deactivated='0' AND (status LIKE '[Gold%' OR status LIKE '[Silver%' OR status LIKE '[Pro%') 
                 AND logo!=''"

Есть поле userlogin в TАBLЕ_USERS, в котором есть значения с некорректными символами типа "-,_".
Можно ли добавить условие в запрос, чтобы такие заначения пропускались?

Или проще скриптом откорректировать значеня в userlogin ?

Последний раз редактировалось serg-php; 23.07.2011 в 14:57.
serg-php вне форума Ответить с цитированием
Старый 23.07.2011, 15:09   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Как вариант:
Код:
WHERE... and (not TАBLЕ_USERS like '-') and (not TАBLЕ_USERS like '_')
Но еще лучше просто не допускать создания таких записей.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 23.07.2011, 15:32   #3
serg-php
Пользователь
 
Регистрация: 14.01.2008
Сообщений: 13
По умолчанию

Stilet,

Цитата:
Но еще лучше просто не допускать создания таких записей.
Согласен на все 100%.
Проверку перед регистрацией думаю сделать через ява-скрип.

А как вот быть с существующими? Тупо убрать все левые символы?

Или оставить такой запрос с этим условием, только боюсь - присутствие такого условия в запросе будет создавать большую нугрузку, чем без него.
serg-php вне форума Ответить с цитированием
Старый 23.07.2011, 16:08   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
присутствие такого условия в запросе будет создавать большую нугрузку
Вот вот... Разве что сделать индексировку по функции, если мускул твой такое поддерживает.
Цитата:
Тупо убрать все левые символы?
Я бы так и сделал, и уведомил пользователей тех о необходимости перерегистрации.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 23.07.2011, 16:33   #5
serg-php
Пользователь
 
Регистрация: 14.01.2008
Сообщений: 13
По умолчанию

1. Первым делом прикручу ява-скрип.
(проверка на символы и регистр).

Вариант интересный такого скрипа случайно не попадался под руку?

2. Потом напишу скриптец, который отредактирует все логины.
serg-php вне форума Ответить с цитированием
Старый 24.07.2011, 01:00   #6
MrJenika
Форумчанин
 
Аватар для MrJenika
 
Регистрация: 07.09.2009
Сообщений: 361
По умолчанию

Цитата:
1. Первым делом прикручу ява-скрип.
(проверка на символы и регистр).
Не забудьте и перед записью в БД всё это дело проверить.
MrJenika вне форума Ответить с цитированием
Старый 24.07.2011, 09:49   #7
serg-php
Пользователь
 
Регистрация: 14.01.2008
Сообщений: 13
По умолчанию

Цитата:
Не забудьте и перед записью в БД всё это дело проверить.
Не спец-символы там средствами пхп экранируются при регистрации, мне нужно, чтобы юзеры не совали в логин точки и нижнее подчеркиваниет - поддомены не будут работать.
serg-php вне форума Ответить с цитированием
Старый 24.07.2011, 14:15   #8
Anubys
Форумчанин
 
Регистрация: 08.05.2010
Сообщений: 177
По умолчанию

serg-php
str_replace вам в помощь эта функция как раз то делает что вы говорите

str_replace ("_","",$ login)
1 параметр - что нужно поменять
2 параметр - на что заменить
3 параметр - где ищем символы

Последний раз редактировалось Anubys; 24.07.2011 в 14:19.
Anubys вне форума Ответить с цитированием
Старый 24.07.2011, 16:56   #9
serg-php
Пользователь
 
Регистрация: 14.01.2008
Сообщений: 13
По умолчанию

Anubys,

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

Использую jquery-validation-1.8.1.

Модифицировал такой вариант, _http://stackoverflow.com/questions/2476378/jquery-validate-plugin-accept-letters-only

Есть такой вариант _http://stackoverflow.com/questions/2794162/jquery-validation-plugin-accept-only-alphabetical-characters
_http://stackoverflow.com/questions/2794162/jquery-validation-plugin-accept-only-alphabetical-characters

У меня так получилось


Код:
username: {
   required: true,
   minlength: 3,
   accept: "^[0-9a-z]+$"
	   },

Проверка мыла при вводе и копипасте срабатывает, а вот логина при копипасте - нет!

Может быть правило не правильное?

Последний раз редактировалось serg-php; 24.07.2011 в 17:04.
serg-php вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
SQL - запрос к базе Джиган PHP 2 03.06.2011 17:08
Запрос к базе данных rikomono Microsoft Office Word 13 02.06.2011 20:49
Запрос к базе данных nec117 PHP 0 09.03.2011 17:40
sql запрос к базе sashonk SQL, базы данных 8 01.09.2010 11:11
Запрос к базе даных mysql Sound PHP 1 15.08.2009 12:14