Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как защититься от кириллицы?
 
 автор: Владимир55   (19.03.2007 в 16:54)   письмо автору
 
 

В файле $name_fale находится информация, введенная с клавиатуры. По идее, там должна быть латиница или цифры, но в жизни возможно всякое, в том числе и ошибки ввода. Как сделать так, что бы, если в тексте, содержащимся в этом файле, есть хоть один кириллический знак, то выводилось бы сообщение "Ошибка"?

   
 
 автор: mihdan   (19.03.2007 в 16:57)   письмо автору
 
   для: Владимир55   (19.03.2007 в 16:54)
 

тебе лучше в js - форум обратиться!

   
 
 автор: Valick   (19.03.2007 в 17:09)   письмо автору
 
   для: mihdan   (19.03.2007 в 16:57)
 

тебе лучше в js - форум обратиться!

Проверке данных на стороне клиента (чем и занимается js) нельзя доверять ни при каких обстоятельствах, это основы безопасности!

   
 
 автор: zerocool   (19.03.2007 в 17:02)   письмо автору
 
   для: Владимир55   (19.03.2007 в 16:54)
 

Может типа такого

<?php

$text
="gfsdgfl3454654ячс";
if(
eregi("[а-яА-Я]"$text)){
print 
"Ошибка";
}else{
print 
"Нет ошибки";
}
?>

   
 
 автор: Владимир55   (19.03.2007 в 20:50)   письмо автору
 
   для: zerocool   (19.03.2007 в 17:02)
 

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

Разумеется, в соответствуюшем разделе скрипта я ввел напоминание оператору о том, что пригодны только цифры и латиница. Но при первом же испытании человек ввел в это окно длинное предложение, породив нестираемый файл с кириллическим именем и пуктуацией. Вот так и родилась идея специального контроля, который, как мне кажется, ничем не заменить. Более того, стало ясно, что надо контролировать не только русские буквы, но и все вообще служебные знаки, которые тоже могут привести непонятно к чему. С учетом этого обстоятельства оператор контроля, как я полагаю, должен выглядеть так:

if(eregi("[а-яА-Я,!,№,;,%,:,?,*,(,),-,_,=,+,\,/,`,@,#,$,^,&,{,[,},],|,<,>,',]", $text))

Однако в таком виде он не работает.
К сожалению, в Справочнике нет функции eregi, поэтому я не знаю, как надо указывать запрещенные элементы - через запятую, как я это сделал, или просто перечислить?

И второе.

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

   
 
 автор: Владимир55   (19.03.2007 в 22:54)   письмо автору
 
   для: Владимир55   (19.03.2007 в 20:50)
 

Сообразил.

Спасибо!

   
 
 автор: mihdan   (19.03.2007 в 17:30)   письмо автору
 
   для: Владимир55   (19.03.2007 в 16:54)
 

А почему бы не перевести все русские символы в транслит например, к чему навязчивое сообщение об ошибке?

   
 
 автор: Фитч   (19.03.2007 в 17:32)   письмо автору
 
   для: mihdan   (19.03.2007 в 17:30)
 

> А почему бы не перевести все русские символы в транслит например, к чему навязчивое сообщение об ошибке?
Такое было бы очень некстати при вводе пароля)

   
 
 автор: Trianon   (19.03.2007 в 17:46)   письмо автору
 
   для: Фитч   (19.03.2007 в 17:32)
 

при вводе пароля очень некстати любое ограничение и любое преобразование, кроме хеширования.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования