Помощь, ПХП (PHP)
Цитата: MARIOS от 10.09.2016, 15:57Здравствуйте дорогие форумчане.
Дело такого рода, написал код (рабочий),
хотелось бы услышать, пускай это будет критика, так-как уже мы все привыкли к ней здесь, но чтобы была с разъяснениями почему и как должно быть!!!Код проверяет и дальше после кода 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 = '';
ПС: а главный вопрос безопасно ли так!
Здравствуйте дорогие форумчане.
Дело такого рода, написал код (рабочий),
хотелось бы услышать, пускай это будет критика, так-как уже мы все привыкли к ней здесь, но чтобы была с разъяснениями почему и как должно быть!!!
Код проверяет и дальше после кода INSERT UPDATE и SELECT в базу
$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 = '';
ПС: а главный вопрос безопасно ли так!
Цитата: WmRush от 10.09.2016, 16:25$icq = intval( ( int ) $_POST['icq']);
зачем два раза приводишь к целочисленому значению? Хватит чего то одного из этого!mysql_escape_string($podpis);
а разве не лучше ли?
mysql_real_escape_string($podpis);
$icq = intval( ( int ) $_POST['icq']);
зачем два раза приводишь к целочисленому значению? Хватит чего то одного из этого!
mysql_escape_string($podpis);
а разве не лучше ли?
mysql_real_escape_string($podpis);
Цитата: ByFly от 10.09.2016, 18:22MARIOS,
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 можно запихнуть
не знаю зачем вы делаете лишние строки
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 можно запихнуть
не знаю зачем вы делаете лишние строки
Цитата: MARIOS от 10.09.2016, 18:38Цитата: ByFlyграмотеи
Цитата: ByFlyразве в регулярках длина значения не указывается?
давай так ты мне регулярку а я тебе 50р., я регулярку не знаю
давай так ты мне регулярку а я тебе 50р., я регулярку не знаю
Цитата: ByFly от 10.09.2016, 18:48Моя регулярка для использования логина
Правим немного под твой ник скайпа
if(!preg_match("|^[a-z0-9]{6,3
2}+$|i", $_POST['skype'])){
echo "Разрешено использовать только латинские буквы и цифры";
}
Моя регулярка для использования логина
Правим немного под твой ник скайпа
if(!preg_match("|^[a-z0-9]{6,3
2}+$|i", $_POST['skype'])){
echo "Разрешено использовать только латинские буквы и цифры";
}