Категории

[FAQ] Часто задаваемые вопросы и ответы

Проблемы и решения

Ошибки и исправления

Общие вопросы

Расширения

Установка и обновление

Модули

Шаблоны

Локализация интерфейса

Коммерческие предложения

Учимся бизнесу

Бизнес книги

Поисковая оптимизация (SEO)

Магазины на ShopOS

Хостинг для ShopOS

Предложения и пожелания

Курилка

Ошибка в админке при обновлении инфы покупателя

попытался в админке подредактировать данные админа. Ну переписать гордые строчки "Ваше имя", "Ваша Фамилия" на свое, но тутже повалили ошибки

Warning: file(includes/tld.txt) : failed to open stream: No such file or directory in /sata1/home/users/sportive/www/www.sportmarket.net.ua/includes/core.include_admin.php on line 1408

Warning: Variable passed to each() is not an array or object in /sata1/home/users/sportive/www/www.sportmarket.net.ua/includes/core.include_admin.php on line 1409

Warning: eregi() : REG_EMPTY in /sata1/home/users/sportive/www/www.sportmarket.net.ua/includes/core.include_admin.php on line 1417


Нужно просто добавить файл tld.txt в папку admin/includes/ и в includes/


http://www.shopos.ru/forum/index.php?topic=336.0



http://www.shopos.ru/forum/index.php?topic=336.0
сори как то ннашел топик :(


кстати а что за зоны перечислены в этом файле, точнее зачем они там? какова их суть?


кстати а что за зоны перечислены в этом файле, точнее зачем они там? какова их суть?


необходимо для проверки на валидность email.


тоесть если данной зоны в этом файле нету то имейл не валидный?


Не знаю как там точно работает. В наследство от вамшопа осталось.

Вот функция.


function os_validate_email($email)
{
    $valid_address = true;

    $mail_pat = '^(.+)@(.+)$';
    $valid_chars = " \(\)<>@,;:\.\\\"\[]";
    $atom = "$valid_chars+";
    $quoted_user='(\"*\")';
    $word = "($atom|$quoted_user)";
    $user_pat = "^$word(\.$word)*$";
    $ip_domain_pat='^\{1,3})\.({1,3})\.({1,3})\.({1,3})\]$';
    $domain_pat = "^$atom(\.$atom)*$";

    if (eregi($mail_pat, $email, $components)) {
      $user = $components;
      $domain = $components;
      if (eregi($user_pat, $user)) {
        if (eregi($ip_domain_pat, $domain, $ip_components)) {
        for ($i=1;$i<=4;$i++) {
          if ($ip_components > 255) {
            $valid_address = false;
            break;
          }
          }
        } else {
          if (eregi($domain_pat, $domain)) {
            $domain_components = explode(".", $domain);
            if (sizeof($domain_components) < 2) {
              $valid_address = false;
            } else {
              $top_level_domain = strtolower($domain_components);
              if (eregi('^$', $top_level_domain) != 1) {
                $tld_pattern = '';
                $tlds = file(DIR_WS_INCLUDES.'tld.txt');
                while (list(,$line) = each($tlds)) {
                  $words = explode('#', $line);
                  $tld = trim($words);
                  if (eregi('^{3,}$', $tld) == 1) {
                    $tld_pattern .= '^' . $tld . '$|';
                  }
                }
                $tld_pattern = substr($tld_pattern, 0, -1);
                if (eregi("$tld_pattern", $top_level_domain) == 0) {
                    $valid_address = false;
                }
              }
            }
          } else {
          $valid_address = false;
        }
      }
      } else {
        $valid_address = false;
      }
    } else {
      $valid_address = false;
    }
    if ($valid_address && ENTRY_EMAIL_ADDRESS_CHECK == 'true') {
      if (!checkdnsrr($domain, "MX") && !checkdnsrr($domain, "A")) {
        $valid_address = false;
      }
    }
    return $valid_address;
  }
 


ну так и есть

if (eregi("$tld_pattern", $top_level_domain) == 0) {
                    $valid_address = false;
                }



не оч понимаю в выражениях но походу тут мы выделяем именно доменную зону юзера и сравниваем с списком tld файла  и если равно нулю, значит в файле записи нету и если нету то БОЛТ а не валидация мыла - так что если кто переживает за мейл ру то редактируйте TLD


Так mail.ru проходит :)


тогда нефига не шарю :D


не знаю, грузил этот tld.txt регистрировался с мылом от inbox.ru, на gmail.com, ua, приходят, кроме inbox.ru  >:(


Редактирую в админке свои данные, нажимаю "Добавить" - вылазит ошибка:

Fatal error: Call to undefined function os_date_raw() in W:\home\test2.loc\www\shop2\admin\customers.php on line 146


Указанный выше файлик на месте. Дистрибутив скачан буквально вчера, гоняю на Денвере.


Обновился до новой версии. Проблема не исчезла. Только переместилась на другую строчку в коде:

Fatal error: Call to undefined function os_date_raw() in W:\home\test2.loc\www\shop2\admin\customers.php on line 149


Может кто-нибудь всё-таки подскажет, в чём проблема? :(


При редактировании что то не получается вызвать ошибку.

но нашел ошибку при создании клиента.

http://code.google.com/p/shopos/source/diff?spec=svn155&r=155&format=side&path=/trunk/admin/create_account.php

на 309 строчке


Все. нашел. Выскакивает только если включить отображения поля 'дата рождение'.

http://code.google.com/p/shopos/source/diff?spec=svn157&r=157&format=side&path=/trunk/admin/langs/ru/lang.php

в файл admin/langs/ru/lang.php добавить:

function os_date_long_translate($date_string)
{
  $eng = array("Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
  $loc = array("Понедельник", "Вторник", "Среда", "Четверг", "Пятница", "Суббота", "Воскресенье", "Января", "Февраля", "Марта", "Апреля", "Мая", "Июня", "Июля", "Августа", "Сентября", "Октября", "Ноября", "Декабря");
  return str_replace($eng, $loc, $date_string);
}

function os_date_raw($date, $reverse = false)
{
  if ($reverse)
  {
      return substr($date, 3, 2) . substr($date, 0, 2) . substr($date, 6, 4);
  }
  else
  {
      return substr($date, 6, 4) . substr($date, 3, 2) . substr($date, 0, 2);
  }
}


Источник



Copyright ShopOS