Автор Тема: Вопрос Ошибка при регистрации нового пользователя  (Прочитано 811 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Orochimaru2503Автор темы

  • *
  • Оффлайн
  • Награды На форуме более 1 года
  • Дата регистрации: Ноя 2016
  • Возраст: 25
  • Сообщений: 4
  • Страна: ru
  • Репутация +0/-0
  • Пол: Мужской
  • Дата рождения:1992-03-25
  • Рефералов 0
    • Награды
Здравствуйте. Не получается разобраться с регистрацией в ФФ, 3 фермы уже попробовал, результат один и тот же. В общем после заполнения всех полей появляется вот такая ошибка:
Fatal error: Uncaught Error: Call to undefined function ereg() in X:\domains\randm.local\classes\_class.func.php:54 Stack trace: #0 X:\domains\randm.local\pages\_signup.php(31): func->IsLogin('test') #1 X:\domains\randm.local\index.php(84): include('X:\\domains\\rand...') #2 {main} thrown in X:\domains\randm.local\classes\_class.func.php on line 54
По строкам в файлах посмотрел, так и не смог разобраться в чем проблема.
_signup.php
$login = $func->IsLogin($_POST["login"]);
В index.php на 84 ссылается на _signup.php
_class.func.php
return (is_array($login)) ? false : (ereg("{$mask}{$len}$", $login)) ? $login : false;
Предполагаю, что проблема возможно как то связана с id, то ли с БД что-то, может я не прав.
Подскажите в общем куда копать, заранее спасибо.
 

kvozimir

  • снова в skype --> kvozimir
  • *
  • *
  • Оффлайн
  • Награды Более 50 созданных тем Благодарность от форума Репутация более 10 Более 1000 сообщений На форуме более 1 года За помощь пользователям За время в онлайне на форуме
  • Дата регистрации: Фев 2016
  • Возраст: 25
  • Сообщений: 1370
  • Страна: ru
  • Поблагодарили: 101 раз(а)
  • Репутация +12/-0
  • Пол: Мужской
  • telegram --> @kvozimir
  • Дата рождения:1992-04-18
  • Рефералов 0
    • Награды
  • Социальные сети:
    ВКонтакте
Ошибка при регистрации нового пользователя
« Ответ #1 : 12 Сентябрь 2017, 13:59:31 »
для начала я бы посоветовал перевести что написано в ошибке,ну и просто заменить все что в файле _class.func.php на то что ниже
<?PHP
class func{

   public $UserIP = "Undefined"; # IP пользователя
   public $UserCode = "Undefined"; # Код от IP
   public $TableID = -1; # ID таблицы
   public $UserAgent = "Undefined"; // Браузер пользователя

   /*======================================================================*\
   Function:   __construct
   Output:      Нет
   Descriiption: Выполняется при создании экземпляра класса
   \*======================================================================*/
   public function __construct(){
      $this->UserIP = $this->GetUserIp();
      $this->UserCode = $this->IpCode();
      $this->UserAgent = $this->UserAgent();
   }

   /*======================================================================*\
   Function:   __destruct
   Output:      Нет
   Descriiption: Уничтожение объекта
   \*======================================================================*/
   public function __destruct(){

   }



   /*======================================================================*\
   Function:   IpToLong
   Descriiption: Преобразует IP в целочисленное
   \*======================================================================*/
   public function IpToInt($ip){

      $ip = ip2long($ip);
      ($ip < 0) ? $ip+=4294967296 : true;
      return $ip;
   }


   /*======================================================================*\
   Function:   IpToLong
   Descriiption: Преобразует целочисленное в IP
   \*======================================================================*/
   public function IntToIP($int){
        return long2ip($int);
   }


   /*======================================================================*\
   Function:   GetUserIp
   Output:      UserIp
   Descriiption: Определяет IP пользователя
   \*======================================================================*/
   public function GetUserIp(){

      if($this->UserIP == "Undefined"){

         if(isset($_SERVER['HTTP_X_FORWARDED_FOR']) AND !empty($_SERVER['HTTP_X_FORWARDED_FOR']))
            {

         $client_ip = ( !empty($_SERVER['REMOTE_ADDR']) ) ? $_SERVER['REMOTE_ADDR'] : ( ( !empty($_ENV['REMOTE_ADDR']) ) ? $_ENV['REMOTE_ADDR'] : "unknown" );
            $entries = split('[, ]', $_SERVER['HTTP_X_FORWARDED_FOR']);

            reset($entries);

            while (list(, $entry) = each($entries))
            {
            $entry = trim($entry);
               if ( preg_match("/^([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)/", $entry, $ip_list) )
                {

               $private_ip = array(
                    '/^0\./',
                    '/^127\.0\.0\.1/',
                    '/^192\.168\..*/',
                    '/^172\.((1[6-9])|(2[0-9])|(3[0-1]))\..*/',
                    '/^10\..*/');

                  $found_ip = preg_replace($private_ip, $client_ip, $ip_list[1]);

                  if ($client_ip != $found_ip)
                  {
                     $client_ip = $found_ip;
                     break;
                  }

               }

            }

         $this->UserIP = $client_ip;
         return $client_ip;

         }else return ( !empty($_SERVER['REMOTE_ADDR']) ) ? $_SERVER['REMOTE_ADDR'] : ( ( !empty($_ENV['REMOTE_ADDR']) ) ? $_ENV['REMOTE_ADDR'] : "unknown" );

      }else return $this->UserIP;

   }


   /*======================================================================*\
   Function:   IsLogin
   Output:      True / False
   Input:      Строка логина, Маска, Длина ("10, 25") && ("10")
   Descriiption: Проверяет правильность ввода логина
   \*======================================================================*/
   public function IsLogin($login, $mask = "^[a-zA-Z0-9]", $len = "{4,10}"){

      return (is_array($login)) ? false : (preg_match("/{$mask}{$len}$/", $login)) ? $login : false;

   }

   /*======================================================================*\
   Function:   IsPassword
   Output:      True / False
   Input:      Строка пароля, Маска, Длина ("10, 25") && ("10")
   Descriiption: Проверяет правильность ввода пароля
   \*======================================================================*/
   public function IsPassword($password, $mask = "^[a-zA-Z0-9]", $len = "{4,20}"){

      return (is_array($password)) ? false : (preg_match("/{$mask}{$len}$/", $password)) ? $password : false;

   }


   /*======================================================================*\
   Function:   IsWM
   Output:      True / False
   Input:      Реквизит, TYPE: 0 - WMID, 1 - WMR, 2 - WMZ, 3 - WME, 4 - WMU
   Descriiption: Проверяет правильность ввода пароля
   \*======================================================================*/
   public function IsWM($data, $type = 0){

      $FirstChar = array( 1 => "R",
                     2 => "Z",
                     3 => "E",
                     4 => "U");

      if(strlen($data) < 12 && strlen($data) > 12 && $type < 0 && $type > count($FirstChar)) return false;
         if($type == 0) return (is_array($data)) ? false : ( preg_match("^[0-9]{12}$", $data) ? $data : false );
            if( substr(strtoupper($data),0,1) != $FirstChar[$type] or !preg_match("^[0-9]{12}", substr($data,1)) ) return false;

         return $data;
   }

   /*======================================================================*\
   Function:   IsMail
   Output:      True / False
   Input:      Email
   Descriiption: Проверяет правильность ввода email адреса
   \*======================================================================*/
   public function IsMail($mail){

      if(is_array($mail) && empty($mail) && strlen($mail) > 255 && strpos($mail,'@') > 64) return false;
         return ( ! preg_match("/^([a-z0-9\+_\-]+)(\.[a-z0-9\+_\-]+)*@([a-z0-9\-]+\.)+[a-z]{2,6}$/ix", $mail)) ? false : strtolower($mail);

   }

   /*======================================================================*\
   Function:   IpCode
   Output:      String, Example 255025502550255
   Input:      -
   Descriiption: Возвращает IP с замененными знаками "." на "0"
   \*======================================================================*/
   public function IpCode(){

      $arr_mask = explode(".",$this->GetUserIp());
      return $arr_mask[0].".".$arr_mask[1].".".$arr_mask[2].".0";

   }

   /*======================================================================*\
   Function:   GetTime
   Descriiption: Возвращаер дату
   \*======================================================================*/
   public function GetTime($tis = 0, $unix = true, $template = "d.m.Y H:i:s"){

      if($tis == 0){
         return ($unix) ? time() : date($template,time());
      }else return date($template,$unix);
   }

   /*======================================================================*\
   Function:   UserAgent
   Descriiption: Возвращает браузер пользователя
   \*======================================================================*/
   public function UserAgent(){

      return $this->TextClean($_SERVER['HTTP_USER_AGENT']);

   }

   /*======================================================================*\
   Function:   TextClean
   Descriiption: Очистка текста
   \*======================================================================*/
   public function TextClean($text){

      $array_find = array("`", "<", ">", "^", '"', "~", "\\");
      $array_replace = array("`", "&lt;", "&gt;", "&circ;", "&quot;", "&tilde;", "");



      return str_replace($array_find, $array_replace, $text);

   }

   /*======================================================================*\
   Function:   ShowError
   Descriiption: Выводит список ошибок строкой
   \*======================================================================*/
   public function ShowError($errorArray = array(), $title = "Исправьте следующие ошибки"){

      if(count($errorArray) > 0){

      $string_a = "<div class='Error'><div class='ErrorTitle'>".$title."</div><ul>";

         foreach($errorArray as $number => $value){

            $string_a .= "<li>".($number+1)." - ".$value."</li>";

         }

      $string_a .= "</ul></div><BR />";
      return $string_a;
      }else return "Неизвестная ошибка :(";

   }


   /*======================================================================*\
   Function:   ComissionWm
   Descriiption: Возвращает комиссию WM
   \*======================================================================*/
   public function ComissionWm($sum, $com_payee, $com_payysys){

      $a = ceil(ceil($sum * $com_payee * 100) / 10000*100) / 100;
      $b = ceil(ceil($sum * str_replace("%","",$com_payysys) * 100) / 10000*100) / 100;
      return $a+$b;
   }

   /*======================================================================*\
   Function:   md5Password
   Descriiption: Возвращает md5_пароля
   \*======================================================================*/
   public function md5Password($pass){
      $pass = strtolower($pass);
      return md5("shark_md5"."-".$pass);

   }



   /*======================================================================*\
   Function:   ControlCode
   Descriiption: Возвращает контрольное число
   \*======================================================================*/
   public function ControlCode($time = 0){

      return ($time > 0) ? date("Ymd", $time) : date("Ymd");

   }


   /*======================================================================*\
   Function:   SumCalc
   Descriiption: Возвращает сумму овощей
   \*======================================================================*/
   public function SumCalc($per_h, $sum_tree, $last_sbor){

      if($last_sbor > 0){

         if($sum_tree > 0 AND $per_h > 0){

            $last_sbor = ($last_sbor < time()) ? (time() - $last_sbor) : 0;

            $per_sec = $per_h / 3600;

            return round( ($per_sec * $sum_tree) * $last_sbor);

         }else return 0;

      }else return 0;

   }


   /*======================================================================*\
   Function:   SellItems
   Descriiption: Выводит сумму и остаток
   \*======================================================================*/
   public function SellItems($all_items, $for_one_coin){

      if($all_items <= 0 OR $for_one_coin <= 0) return 0;

      return sprintf("%.2f", ($all_items / $for_one_coin));

   }



}
?>

 
Пользователи, которые поблагодарили этот пост: Orochimaru2503, GameRussia

Orochimaru2503Автор темы

  • *
  • Оффлайн
  • Награды На форуме более 1 года
  • Дата регистрации: Ноя 2016
  • Возраст: 25
  • Сообщений: 4
  • Страна: ru
  • Репутация +0/-0
  • Пол: Мужской
  • Дата рождения:1992-03-25
  • Рефералов 0
    • Награды
Ошибка при регистрации нового пользователя
« Ответ #2 : 12 Сентябрь 2017, 16:39:22 »
kvozimir, спасибо, работает. А можете разъяснить в чем проблема была, чтобы знать на будущее.
 

kvozimir

  • снова в skype --> kvozimir
  • *
  • *
  • Оффлайн
  • Награды Более 50 созданных тем Благодарность от форума Репутация более 10 Более 1000 сообщений На форуме более 1 года За помощь пользователям За время в онлайне на форуме
  • Дата регистрации: Фев 2016
  • Возраст: 25
  • Сообщений: 1370
  • Страна: ru
  • Поблагодарили: 101 раз(а)
  • Репутация +12/-0
  • Пол: Мужской
  • telegram --> @kvozimir
  • Дата рождения:1992-04-18
  • Рефералов 0
    • Награды
  • Социальные сети:
    ВКонтакте
Ошибка при регистрации нового пользователя
« Ответ #3 : 12 Сентябрь 2017, 16:48:03 »
функция ereg() уже давно считается устаревшей,ее заменяют функцией preg_match ()

более подробнее https://php.ru/manual/function.ereg.html
 
Пользователи, которые поблагодарили этот пост: APTEMOH, Orochimaru2503

romcka8

  • *
  • Оффлайн
  • Награды Более 500 сообщений На форуме более 1 года Более 10 созданных тем
  • Дата регистрации: Фев 2016
  • Сообщений: 609
  • Страна: 00
  • Поблагодарили: 12 раз(а)
  • Репутация +1/-0
  • Пол: Мужской
  • Рефералов 0
    • Награды
Ошибка при регистрации нового пользователя
« Ответ #4 : 13 Сентябрь 2017, 05:10:25 »
Можно свои регулярки дописать, если нужно.
 

Vorsing

  • *
  • *
  • Оффлайн
  • Награды Более 50 сообщений
  • Дата регистрации: Май 2017
  • Расположение: Камчатка, Вилючинск
  • Возраст: 34
  • Сообщений: 58
  • Страна: ru
  • Поблагодарили: 4 раз(а)
  • Репутация +1/-0
  • Пол: Мужской
  • Дата рождения:1983-03-20
  • Рефералов 0
    • Награды
Ошибка при регистрации нового пользователя
« Ответ #5 : 23 Сентябрь 2017, 23:45:08 »
функция ereg() уже давно считается устаревшей,ее заменяют функцией preg_match ()

более подробнее https://php.ru/manual/function.ereg.html
После замены, далее в скобках / дописать еще и нет ошибки
 
Теги:
 

Имя пользователя:
Пароль:
Session: