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

Форум PHP

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

 

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

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

тема: Безопасны ли подчеркивания и тире?
 
 автор: Shorr Kan   (04.02.2005 в 16:42)   письмо автору
 
 

Я пишу историю входов в аккаунты в файлы с именами пользователей... Если имя пользователя будет "_" или "-" - нормально ли все будет? А то меня смущает реакция на файл _.txt или -.txt ....
Далее, нормально ли это будет для базы?

Может быть лучше срезать подчеркивания и тире, если они в самом начале или конце логина (в середине они обязательно должны быть)? Но как это делать?

   
 
 автор: cheops   (04.02.2005 в 21:03)   письмо автору
 
   для: Shorr Kan   (04.02.2005 в 16:42)
 

Хм вообще говоря не очень опасны, но можно подстраховаться, например вообще ввести ограничение, согласно которому можно будет вводить только символы и цифры. Ну точку ввести - бывает нужна.
<?php 
  $test 
"nick"
  
$patern "|^[\w\.]+$|i"
  if(
preg_match($patern$test)) 
  { 
    echo 
"Выражение введено правильно"
  } 
  else 
  { 
    echo 
"Выражение введено неправильно"
  } 
?> 

   
 
 автор: Shorr Kan   (05.02.2005 в 02:43)   письмо автору
 
   для: cheops   (04.02.2005 в 21:03)
 

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

   
 
 автор: Sfinks   (05.02.2005 в 07:19)   письмо автору
 
   для: Shorr Kan   (05.02.2005 в 02:43)
 

Вот так можно.....
<?php
  $nick 
"_sakldfjs_aksld.asdf.";
  if(
$nick[0] == "_" || $nick[0] == ".")
    
$nick substr($nick,1);
  
$lastpos strlen($nick)-1;
  if(
$nick[$lastpos] == "_" || $nick[$lastpos] == ".")
    
$nick substr($nick,0,$lastpos);
  echo 
$nick;
?>

Результат:
sakldfjs_aksld.asdf

   
 
 автор: Sfinks   (05.02.2005 в 07:24)   письмо автору
 
   для: Shorr Kan   (05.02.2005 в 02:43)
 

Хотя так если в начале или в конце их будет несколько, то обрежется только по одному, поэтому лучше так....
<?php
  $nick 
"_._._sakldfjs_aksld.asdf._._.";
  while(
$nick[0] == "_" || $nick[0] == ".")
    
$nick substr($nick,1);
  
$lastpos strlen($nick)-1;
  while(
$nick[$lastpos] == "_" || $nick[$lastpos] == ".")
  { 
$nick substr($nick,0,$lastpos);
    
$lastpos strlen($nick)-1;
  }
  echo 
$nick;
?>

Результат тотже.

   
Rambler's Top100
вверх

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