ShopForBux.com
Всё обо всём

Помощь, ПХП (PHP)

389 234
user avatar
Пользователь
На сайте 13 лет
Сообщений : 251
Репутация : 0
10 лет назад #7104
Здравствуйте дорогие форумчане. \":smile:\"

Дело такого рода, написал код (рабочий),
хотелось бы услышать, пускай это будет критика, так-как уже мы все привыкли к ней здесь, но чтобы была с разъяснениями почему и как должно быть!!!

Код проверяет и дальше после кода INSERT UPDATE и SELECT в базу

$skype = trim($_POST['skype']);
$skype = iconv('UTF-8','windows-1251',$
skype);
$skype = htmlspecialchars($skype);
$skype = mysql_escape_string($skype);
if (preg_match("/[а-я]/i", $skype)){echo 'Логин Skype не может содержать кирилицу'; exit();}
if (empty($skype)){ $skype = '';}else{
if (strlen($skype) < 6){echo 'Длина логина должна составлять от 6 до 32 символов.'; exit();}
if (strlen($skype) > 32){echo 'Длина логина должна составлять от 6 до 32 символов.'; exit();}
}
$icq = intval( ( int ) $_POST['icq']);
if (!is_numeric($icq)) {echo 'Указан неверный номер ICQ'; exit();}
if (empty($icq)) $icq = '';

$podpis = trim($_POST['podpis']);
$podpis = iconv('UTF-8','windows-1251',$
podpis);
$podpis = htmlspecialchars($podpis);
$podpis = mysql_escape_string($podpis);
if (empty($podpis)) $podpis = '';

ПС: а главный вопрос безопасно ли так!
user avatar
Администратор
На сайте 15 лет
Сообщений : 276
Репутация : 0
10 лет назад #7105
$icq = intval( ( int ) $_POST['icq']);
зачем два раза приводишь к целочисленому значению? Хватит чего то одного из этого!

mysql_escape_string($podpis);
а разве не лучше ли?
mysql_real_escape_string($podpis);
user avatar
Пользователь
На сайте 14 лет
Сообщений : 287
Репутация : 0
10 лет назад #7106
.del
user avatar
Пользователь
На сайте 13 лет
Сообщений : 251
Репутация : 0
10 лет назад #7110
ra4ok14,
ПонялNikes,
Не критика а вопрос, подпись не проверяешь?
user avatar
Пользователь
На сайте 15 лет
Сообщений : 858
Репутация : 0
10 лет назад #7111
MARIOS,
Nikes,
грамотеи, что один, что второй, разве в регулярках длина значения не указывается? а?
и зачем вам эли лишние строки:
case (strlen($skype) < 6)
case (strlen($skype) > 32)

$data = trim($data)
$data = iconv('UTF-8','windows-1251',$
data);
$data = htmlspecialchars($data);

а нельзя разве сделать $data = htmlspecialchars(trim($data));
????????

туда даже iconv можно запихнуть
не знаю зачем вы делаете лишние строки
user avatar
Пользователь
На сайте 13 лет
Сообщений : 251
Репутация : 0
10 лет назад #7112
Цитата: ByFly
грамотеи

\":wink:\"
Цитата: ByFly
разве в регулярках длина значения не указывается?

давай так ты мне регулярку а я тебе 50р., я регулярку не знаю \":fellow:\"
user avatar
Пользователь
На сайте 15 лет
Сообщений : 858
Репутация : 0
10 лет назад #7113
MARIOS, по рукам, ща, сек, накидаю быстро
user avatar
Пользователь
На сайте 13 лет
Сообщений : 1859
Репутация : 0
10 лет назад #7114
Цитата: ByFly
а нельзя разве сделать $data = htmlspecialchars(trim($data));

можно
user avatar
Пользователь
На сайте 15 лет
Сообщений : 858
Репутация : 0
10 лет назад #7115
Моя регулярка для использования логина
Правим немного под твой ник скайпа


if(!preg_match("|^[a-z0-9]{6,3
2}+$|i", $_POST['skype'])){
echo "Разрешено использовать только латинские буквы и цифры";
}
user avatar
Пользователь
На сайте 13 лет
Сообщений : 251
Репутация : 0
10 лет назад #7116
Цитата: ByFly
накидаю быстро

ток накидай нормально, а то тут срачь розведётся! \":wink:\"
user avatar
Пользователь
На сайте 15 лет
Сообщений : 858
Репутация : 0
10 лет назад #7117
Только потом, если прошел POST skype и он содержит правильные символы, делаешь остальные функции типа trim, htmlspecialchars и тд и тп, сможешь это хоть?)
user avatar
Пользователь
На сайте 13 лет
Сообщений : 251
Репутация : 0
10 лет назад #7118
Цитата: ByFly
равим немного под твой ник скайпа

вот это не понял

у меня любой юзер вбивает скайп, причём мой скайп
user avatar
Пользователь
На сайте 15 лет
Сообщений : 858
Репутация : 0
10 лет назад #7119
MARIOS, я тебе накинул регулярку и заменил длину, выставил от 6 до 32 символов, то есть проверка количества символов в самой регуляке
user avatar
Пользователь
На сайте 13 лет
Сообщений : 251
Репутация : 0
10 лет назад #7120
Цитата: ByFly
сможешь это хоть?)

сможешь, в первом посту кто писал?
user avatar
Пользователь
На сайте 15 лет
Сообщений : 858
Репутация : 0
10 лет назад #7121
Цитата: MARIOS
у меня любой юзер вбивает скайп, причём мой скайп

то есть?
допустим есть база с данными где содержится и логин скайпа, так?
ты хочешь еще сделать, чтобы если такой логин скайпа уже имелся в базе, то выдавало ошибку, так?
user avatar
Пользователь
На сайте 13 лет
Сообщений : 251
Репутация : 0
10 лет назад #7122
Цитата: ByFly
то есть?допустим есть база с данными где содержится и логин скайпа, так?ты хочешь еще сделать, чтобы если такой логин скайпа уже имелся в базе, то выдавало ошибку, так?

нет
есть база скайп юзер может записать, поменять или при отправки пустого поля удалить запись вернее записать пустую строку

Pretorian, gemiks

как регулярка?
user avatar
Пользователь
На сайте 15 лет
Сообщений : 858
Репутация : 0
10 лет назад #7123
MARIOS, регулярку я тебе сделал, что еще нужно?)
sql запрос составить? или проверки сделать?
user avatar
Пользователь
На сайте 13 лет
Сообщений : 251
Репутация : 0
10 лет назад #7124
Цитата: ByFly
выставил от 6 до 32 символов

ну а оповестить что его лог длинный или наоборот не нужно?

Цитата: ByFly
Правим немного под твой ник скайпа

здесь что ты имел в виду!?
user avatar
Пользователь
На сайте 15 лет
Сообщений : 858
Репутация : 0
10 лет назад #7125
Замени строку эту:

echo "Разрешено использовать только латинские буквы и цифры";


На вот эту:

echo "Разрешено использовать только латинские буквы и цифры, минимальная длина 6 символов, максимальная длина 32 символа!";exit();


P.S. добавил exit() \":wink:\"
user avatar
Пользователь
На сайте 13 лет
Сообщений : 251
Репутация : 0
10 лет назад #7126
Цитата: ByFly
P.S. добавил exit()

\":smile:\"
Автор темы
author avatar
MARIOS
Пользователь
На сайте 13 лет
Сообщений 251
Тем 24
Репутация 0
Теги темы
Автор не добавил тегов для этой темы
Ответить
Написал(а):