Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » Помогите с регуляркой или не с ней

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

vacs8

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Задача такая организовать проверку имени при регистрации уже на готовом сайте. Нужные фалы нашел и начал править и по примеру в файлах и в интернете, но ничего не выходит проверяет только перый символ и все. если их больше то говорит что неправильно(
Теперь опишу структуру как я ее понял.
 
фаил который подгружает нужную библиотеку "register.php"
"
<?php
class Register extends MI_Controller {
 
  public $data=array();
  public $datar=array();
 
function __construct()
{
  parent::__construct();
}
 
function index()
{
  $this->load->library('registerl');
  $this->data['content']= $this->registerl->Regform($this->data['currsubd'],'');
  $this->load->view('main_mini.php',$this->data);
}
function ok()
{
  $this->load->library('registerl');
  $this->data['content']= $this->registerl->Regform($this->data['currsubd'],'ok');
  $this->load->view('main_mini.php',$this->data);
}
function bask()
{
  $this->load->library('registerl');
  $this->data['content']= $this->registerl->Regform($this->data['currsubd'],1);
  $this->load->view('main_mini.php',$this->data);
}
function step2($Par='')
{
  $ParP=preg_replace('/[^0-9a-z]/', '', $Par);
  if($ParP=='bask')$ParP=1;
  else $ParP='';
 
  $this->load->library('registerl');
  $this->data['content']= $this->registerl->Step2($this->data['userid'], $this->data['currsubd'],$ParP);
  $this->load->view('main_mini.php',$this->data);
}
 
}
?>
"
 
сама библиотека "registerl.php"
"<?php
if ( ! defined('BASEPATH')) exit('No direct script access allowed');  
 
class Registerl {
    public $REgdat;
    
    public function __construct()
    {
       $this->REgdat=array();
       $this->REgdat['titlepg'] = 'Тип';
       $this->REgdat['errormsg'] = '';
       $this->REgdat['mailkli'] = '';
       $this->REgdat['namekli'] = '';
       $this->REgdat['otchkli'] = '';
       $this->REgdat['famkli'] = '';
       $this->REgdat['telkli'] = '';
       $this->REgdat['jump']='';
       $this->REgdat['nameorg'] = '';
       $this->REgdat['inn'] = '';
       $this->REgdat['kpp'] = '';
       $this->REgdat['rasch'] = '';
       $this->REgdat['korsch'] = '';
       $this->REgdat['bik'] = '';
       $this->REgdat['namebank'] = '';
       $this->REgdat['uradr'] = '';
       $this->REgdat['mailadr'] = '';
       $this->REgdat['fiodreg'] = '';
    }
    function Regform($SubDom,$ParOK='')
    {
       $BsUrl=base_url();
       $BsUrlFl=$BsUrl;
       if(!empty($currsubd))
          $BsUrlFl=str_replace('www',$currsubd,$BsUrlFl);
 
       $this->REgdat['par']=$ParOK;
       $CI =& get_instance();
       $CI->load->database();
 
       $sbmReg=$CI->input->post('register');
       if(!empty($sbmReg))
       {
         $CI->load->library('fltrtxt');
         $CanOp=true;
         $GorKli='';
 
         $OblKli=trim($CI->input->post('obl'));
         $OblKli=substr($OblKli,0,254);
         $OblKli= preg_replace('/[^0-9a-z]/', '', $OblKli);
         if(empty($OblKli))
         {
            $CanOp=false;
            $this->REgdat['errormsg']='Не выбрана область';
         }
 
         $KolG=trim($CI->input->post('kolgor'));
         $KolG=substr($KolG,0,20);
         $KolG= preg_replace('/[^0-9]/', '', $KolG);
         if(!empty($KolG))
         {
            if($KolG>0)
            {
               $GorKli=trim($CI->input->post('gorod'));
               $GorKli=substr($GorKli,0,254);
               $GorKli= preg_replace('/[^0-9a-z]/', '', $GorKli);
               if(empty($GorKli))
               {
                   $CanOp=false;
                   $this->REgdat['errormsg']='Не выбран город';
               }
            }
         }
 
         $FizUr=trim($CI->input->post('fizur'));
         $FizUr=substr($FizUr,0,5);
         $FizUr=preg_replace('/[^0-9]/', '', $FizUr);
         $this->REgdat['fizur'] = $FizUr;
         if(empty($FizUr))
         {
            $FizUr=1;
         }
 
 
         $NameKli=trim($CI->input->post('your-name'));
         $NameKli=substr($NameKli,0,254);
         /*$NameKli=$CI->fltrtxt->TextFiltr($NameKli);*/
         $this->REgdat['namekli'] = $NameKli;
          
         if(empty($NameKli) && $FizUr==1)
         {
            $CanOp=false;
            $this->REgdat['errormsg']='Не задано имя';
         }
         else
            if(!preg_match("/^[а-яА-ЯёЁ]+$/i", $NameKli))
            {
               $CanOp=false;
               $NameKli='';
               $this->REgdat['errormsg']='Проверьте пожалуйста правильность написания ФИО. Они должны быть написаны с использованием русской раскладки клавиатуры, без использования цифр и спецсимволов.';
            }
"
Всю выкладывать не стал. Проблема в последней проверке.
 
 
Подсказка:
 
 $LogMail=trim($CI->input->post('f_email'));
         $LogMail=substr($LogMail,0,54);
         $LogMail=strtolower($LogMail);
         $this->REgdat['mailkli'] = $LogMail;
         if(empty($LogMail))
         {
            $CanOp=false;
            $this->REgdat['errormsg']='Необходимо задать адрес электронной почты';
         }
         else
            if(!preg_match("|^[-0-9a-z_\.]+@[-0-9a-z_^\.]+\.[a-z]{2,6}$|i", $LogMail))
            {
               $CanOp=false;
               $LogMail='';
               $this->REgdat['errormsg']='Неправильно задан адрес электронной почты';
            }
 
 
Проверка почты работает правильно.

Всего записей: 12 | Зарегистр. 04-09-2013 | Отправлено: 15:42 11-04-2014
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vacs8
пишет что и где? на что конкретно ругается?
более того
PHP: Регулярные выражения (RegExp, Regular, eregi, preg)

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 19:39 11-04-2014
vacs8

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Не вижу смысла менять тему так как сама регулярка составлена вроде правильно, я проверял ее на сервисах проверки регулярных выражений тут имнно проблема в том что работа идет только с первой буквой. Ошибку выдает могу которая в коде "'Проверьте пожалуйста правильность написания ФИО. Они должны быть написаны с использованием русской раскладки клавиатуры, без использования цифр и спецсимволов.'.

Всего записей: 12 | Зарегистр. 04-09-2013 | Отправлено: 09:13 14-04-2014
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vacs8

Цитата:
 Ошибку выдает могу которая в коде "'Проверьте пожалуйста правильность написания ФИО


Цитата:
if(!preg_match("/^[а-яА-ЯёЁ]+$/i", $NameKli))  

данные в какой кодировке? в уникоде? тогда нужен модификатор u для регулярки
если же в другой кодировке - локаль выставлена?
http://www.php.net/manual/en/function.setlocale.php
откуда ваша регулярка будет знать, какую кодировку ей смотреть.

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 09:18 14-04-2014
vacs8

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Модификатор поставил одна проблема решилась. Спасибо. А вот пробелы не проверяет почему то

Всего записей: 12 | Зарегистр. 04-09-2013 | Отправлено: 16:13 14-04-2014
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vacs8
добавить \s в [] и все вопросы о регулярках, в будущем, задавать в теме по ссылке выше

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 20:08 14-04-2014
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Интернет » Web-программирование » Помогите с регуляркой или не с ней


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru