Добрый день ребяра у меня скрипт под версию php 5.4 что нужно сделать и как для его корректной работе не Апаче php 7.0?(((
включаешь пхп 7.1 отображаешь все ошибки, чтобы в браузере видно было все нотисы варнинги и т.д. и фиксишь, по списку кропотливо фиксишь каждый нюанс твоих дыр в скрипте.
У меня всё, что я писал на 5.4 на семёрке запускается. Другое дело, что расширение mysql я не использовал и на 5.4
Ну я бы рекомендовал в любом случае знакомиться с миграциями.Допустим в 7 изменили конструкцию list(). Ошибки ты не получишь,но результат будет другой: PHP: <?php list($a[], $a[], $a[]) = [1, 2, 3]; var_dump($a); php5.x Код (Text): array(3) { [0]=> int(3) [1]=> int(2) [2]=> int(1) } php7.x Код (Text): array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3) }
Нет,я так не писал Просто пример привел того,что некоторые встроенные конструкции,в том числе foreach,list имеют различия между версиями php и желательно всегда быть в курсе всех новых изменений,потому что некоторые из них не бросят ошибок и исключений,но результат будет отличаться от ожидаемого и такие ошибки без чтения тех же миграций отследить будет очень сложно.
Один раз у меня было нечто подобное, когда я подрался с foreach а ошибок то не было. Благо, я начал делать отладку и она показала, что foreach в 7-ой версии работает иначе, только потом я решил заглянуть в доку
добрый вечер вот ешё столкнулся с проблемой на выполняется код одной страницы( просто белая) прописал error_reporting(E_ALL); ini_set('display_errors', 1); ?> Выдало такую ерунду в чем косяк(((, Код (Text): require_once "include/include.php"; require_once "../classes/mail_templates.php"; global $db; global $lng; $smarty = new Smarty; $smarty = common($smarty); $mail_templates=new mail_templates(); if(isset($_GET['template'])) { $template_code = escape($_GET['template']); $crt_template=$mail_templates->getRegLang($template_code); } else { $template_code=$mail_templates->getFirst(); $crt_template = $mail_templates->getRegLang($template_code); } $smarty->assign("tab","templates"); $smarty->assign("lng",$lng); $array_templates=$mail_templates->getAll(); $smarty->assign("array_templates",$array_templates); if(isset($_POST['Save'])) { $mail_templates->edit($template_code); $crt_template=$mail_templates->getRegLang($template_code); } $smarty->assign("crt_template",$crt_template); $smarty->assign("template_code",$template_code); $db->close(); if($db->error!='') { $db_error = $db->getError(); $smarty->assign('db_error',$db_error); } $smarty->display('mail_templates.html'); close(); ?>
Давайте так вот ошибка с сервера Код (Text): 6.204442 2017] [cgi:error] [pid 739032] [client 80.84.181.212:44755] AH01215: PHP Notice: Undefined variable: domain_only in /var/www/nsk/data/www/ukrceny.com.ua/include/form.php on line 764 а вот сама переменная $main_domain = $domain_only[0]; return $main_domain;
Из-за того что переменную не определили. Ваш капитан очевидность. Тебя уже просили полный код предоставить. Ты этого еще не осилил. А по представленному фрагменту кода и по представленной записи из журнала ошибок всем понятно что ты пытаешься почитать нулевой индекс из значения необъявленной переменной. Всем да не всем.
по самообучению - копируешь PHP Notice: Undefined variable: и идешь в гугл, там 100500 решений - но тебе не дано. Нужно учить азбуку пхп все с начала
в том уг переписывать смысл всей функции нужно тупо: PHP: $main_domain = $domain_only[0]; return $main_domain; PHP: return ( $domain_only[0] ?? 'Пусто, выросла капуста' );
@lopster уууу... я бы на твоем месте выкинул этот треш... например, в той функции которая тебя беспокоит: PHP: $composed_tlds = "co.uk|co.za|com.ua|com.au|com.tw|com.mx|com.br|co.sw|co.nz|com.de|com.ng|com.ph"; - вот тут каждая точка означает вообще любой символ. com1ua cojuk com1ng - всё попадает под паттерн а вот проблемный блок: PHP: if(preg_match($tld_pattern2, $dstr) ) preg_match ("/([A-Za-z0-9.-]+(\.))?[A-Za-z0-9-]+(\.)(".$composed_tlds.")/", $dstr, $domain_only); else if(preg_match($tld_pattern1, $dstr) ) preg_match ("/([A-Za-z0-9.-]+(\.))?([A-Za-z0-9-])+(\.)[A-Za-z]{2,3}/", $dstr, $domain_only); else if(preg_match($ip_pattern, $dstr) ) preg_match ("/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/", $dstr, $domain_only); else if(preg_match($localhost_pattern, $dstr) ) { $domain_only = array(0=>"localhost"); } $main_domain = $domain_only[0]; домейн_онли появляется только как переменная, в которую будет поскладирован результат применения регулярки, но где-то что-то идет не так и переменная не объявляется, но используется.
ой боже, ты просто копипастишь с инета скрипты но нифига не программируешь ? --- Добавлено --- оставляю помидор
нет отдали движок вот мучаюсь( --- Добавлено --- Главное апачи 7 понимает а 5.6 не выводит но на апаче другие не стыковки вылазят
хорошо перейду на пхп 7 там страница открывается работает, помогите хотя бы решить проблему в этом же файле строки 757 генерация емейл сообщений реги и востановления пароля что не совместимо с 7 это вылазит только на 7 вместо ссылей приходят тупо пустые письма.((((( в этой переменой не понимает 7.