За последние 24 часа нас посетили 22290 программистов и 1123 робота. Сейчас ищут 653 программиста ...

При переходе на php 7.0 ошибка

Тема в разделе "Сделайте за меня", создана пользователем Dexterio, 11 июн 2018.

Метки:
  1. Dexterio

    Dexterio Новичок

    С нами с:
    11 июн 2018
    Сообщения:
    10
    Симпатии:
    0
    Здравствуйте. На сайте есть калькулятор стабильно работает на php 5.6 но при переходе на php 7.0 и выше срабатывает ошибка, что то не так с файлом calc.php файл не большой может сможет кто то подсказать что нужно поправить ))) Сам ни бум бум в этом (( Заранее благодарен ))
    PHP:
    1. <?php
    2. include( 'reader.php' );
    3. function load_price($fname){
    4.       //if (strpos($fname,".csv")===false) return false;
    5.     $reader =& new CSVReader( new FileReader( $fname ) );
    6.     $reader->setSeparator( ';' );
    7.     $data_result=array();
    8.     $data=array();
    9.     $cell = $reader->next();  
    10.     while (false != ( $cell = $reader->next() )){
    11.         if (($cell[0]!='[DELIVERY]') && ($cell[0]!='[WORKS]')) {
    12.             $s='materials';
    13.             while(($cell[0]!="") && ($cell != false) && ($cell[0][0]!='[')){
    14.                 $data['name']=iconv('windows-1251', 'UTF-8', $cell[0]);          
    15.                 $data['units']=iconv('windows-1251', 'UTF-8', $cell[1]);
    16.                 $data['weight']=($cell[2]=="")?0:str_replace(',','.',$cell[2]);
    17.                 $data['price']=($cell[3]=="")?0:str_replace(',','.',$cell[3]);
    18.                 $data['percent']=($cell[4]=="")?0:str_replace(',','.',$cell[4]);
    19.                 $data['consumption']=str_replace(',','.',$cell[5]);
    20.                 //$data['consumption']=($cell[5]=="")?0:str_replace(',','.',$cell[5]);
    21.                 $data_result[$s][]=$data;
    22.                 $data=array();
    23.                 $cell = $reader->next();
    24.             }
    25.         }
    26.         if (($cell[0]=='[DELIVERY]') || ($cell[0]=='[WORKS]')) {
    27.             $s='delivery';
    28.             if ($cell[0]=='[WORKS]') $s='works';
    29.             $cell = $reader->next();
    30.             while(($cell[0]!="") && ($cell != false) && ($cell[0][0]!='[')){
    31.                 $data['name']=iconv('windows-1251', 'UTF-8', $cell[0]);          
    32.                 $data['price']=($cell[1]=="")?0:str_replace(',','.',$cell[1]);
    33.                 $data_result[$s][]=$data;
    34.                 $data=array();
    35.            
    36.                 $cell = $reader->next();
    37.             }
    38.         }
    39.     }          
    40.     return $data_result;
    41. }
    42. function send_mail(){
    43.         $mess = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>Заявка</title></head><body>';
    44.         $mess .= '<strong>Имя: </strong>'.$_POST['name']."<br />\r\n";
    45.         $mess .= '<strong>E-Mail: </strong>'.$_POST['email']."<br />\r\n";
    46.         $mess .= '<strong>Телефон: </strong>'.$_POST['phone']."<br />\r\n";
    47.         $mess .= '<strong>Адрес объекта: </strong>'.$_POST['address']."<br /><br />\r\n\r\n";
    48.         $str = stripslashes($_POST['data']);
    49.         $str = str_replace('script','div',$str);
    50.         $mess .= '<div>'.$str."</div><br />\r\n </body></html>";
    51.         require 'class.phpmailer.php';
    52.         ////////////
    53.         file_put_contents('_tmp.html',$mess);
    54.         ////////////
    55.         $mail = new PHPMailer();
    56.         $mail->From = 'info@styazhka-pola.ru';
    57.         $mail->FromName = 'BEST FLOORS';
    58.         //$mail->AddBCC($_POST['email'], $_POST['name']);
    59.         $mail->AddAddress($_POST['email'], $_POST['name']);    
    60.          $mail->AddAddress('email@my_site.ru','');  
    61.         $mail->AddBCC('styazhkapola@yandex.ru','');          
    62.         $mail->IsHTML(true);  
    63.         $mail->CharSet = "utf-8";
    64.         $mail->Subject = 'Спасибо. Ваш расчет c калькулятора на сайте Best Floor';
    65.         $mail->Body = $mess;
    66.         if($sendemail != 'No'){
    67.               if (!$mail->Send()) {
    68.                   $data['message']='<b>Произошла ошибка.</b> '.' Mailer Error: '.$mail->ErrorInfo;
    69.                   $data['success']=false;
    70.                   echo json_encode($data);
    71.                   die;        
    72.               }
    73.         }
    74.         header('Content-Type:text/html; charset=utf-8');
    75.         header('Access-Control-Allow-Origin: *');
    76.         $data['message']='Спасибо! <br />Ваша заявка успешно отправлена, в самое ближайшее время мы с Вами свяжемся!';
    77.         $data['success']=true;
    78.         echo json_encode($data);
    79.         die;
    80. }
    81. if (!empty($_POST['name'])) {
    82.     send_mail();
    83.     die;
    84. }
    85. $res=load_price('prices.csv');
    86. //header('Access-Control-Allow-Origin: *');
    87. echo json_encode($res);
    88. ?>
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    ошибка какая?
     
  3. Dexterio

    Dexterio Новичок

    С нами с:
    11 июн 2018
    Сообщения:
    10
    Симпатии:
    0
  4. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    http://styazhka-pola.ru/assets/new/calc/calc.php?format=json
    при запросе этого урла сервак отвечает с шибкой 500 (Internal Server Error)

    вывод: надо лезть в логи сервера и узнать, что там за внутренняя ошибка
     
  5. Dexterio

    Dexterio Новичок

    С нами с:
    11 июн 2018
    Сообщения:
    10
    Симпатии:
    0
    Лог к сожалению пустой, или к счастью)) разработчики написали что нужно править именно calc.php
     
  6. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.230
    Симпатии:
    1.715
    Адрес:
    Молдова, г.Кишинёв
    error_log от PHP?
     
  7. Dexterio

    Dexterio Новичок

    С нами с:
    11 июн 2018
    Сообщения:
    10
    Симпатии:
    0
    Не могу точно сказать... хостинг бегет - включена функция, журнал ошибок с цитированием (Журнал ошибок, возникающих при обработке и выполнении скриптов на PHP, может быть полезен для отслеживания качества работы сайта.) Или где то нужно в другом месте смотреть?
     
  8. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    Дебаж ставь exit() после каждой строчки. Рано или поздно доберешься
     
  9. Dexterio

    Dexterio Новичок

    С нами с:
    11 июн 2018
    Сообщения:
    10
    Симпатии:
    0
    Спасибо... но я писал что в этом не разбираюсь, что за дебаж и за какими символами строчки ставить тоже не понятно, и куда должен добраться )))
     
  10. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    после каждой ; ставь exit('ok'); и перезагружай страницу. если на странице написано 'ok' значит ошибка ниже. переносишь exit к следущей ; и снова проверяешь
     
  11. Dexterio

    Dexterio Новичок

    С нами с:
    11 июн 2018
    Сообщения:
    10
    Симпатии:
    0
    Что то не проходит данный метод... попробовал несколько строк никаких ok нет ))) может с первой строчки и проблема не знаю )))
     
  12. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    Значит проблема не в этом файле
    1. <?php
    2. ... тут пробовал?
    3. include( 'reader.php' );
     
  13. Dexterio

    Dexterio Новичок

    С нами с:
    11 июн 2018
    Сообщения:
    10
    Симпатии:
    0
    Да еще раз перепроверил ничего не меняется (((
     
  14. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    Не работает только этот файл или остальные тоже?
    В первом случаи ищи файл который выше проблема там
    Во втором смотри конфиги apache nginx php
     
  15. Dexterio

    Dexterio Новичок

    С нами с:
    11 июн 2018
    Сообщения:
    10
    Симпатии:
    0
    Только этот файл других ошибок не видно (jquery-2.1.4.min.js:4 GET http://styazhka-pola.ru/assets/new/calc/calc.php?format=json 500 (Internal Server Error))
     
  16. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    Ищи файл который инелюдит этот файл. Если в самом начале exit не отработал значит проблема не здесь
     
    Dexterio нравится это.
  17. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    просто заплати кому-то
     
  18. Dexterio

    Dexterio Новичок

    С нами с:
    11 июн 2018
    Сообщения:
    10
    Симпатии:
    0
    Спасибо. Уже на кворке нашел исполнителя. Просто думал пару строчек нужно поменять и все... но не тут то было )))
     
  19. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.751
    Симпатии:
    1.322
    Адрес:
    Лень
    error_reporting(-1);

    значение поменяй на E_ALL
     
    TeslaFeo нравится это.
  20. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    так надо найти их сначала
     
  21. username

    username Новичок

    С нами с:
    6 июл 2017
    Сообщения:
    225
    Симпатии:
    17
    наверное знак & лишний в 6 строке
     
    Dexterio нравится это.
  22. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    Dexterio нравится это.
  23. Dexterio

    Dexterio Новичок

    С нами с:
    11 июн 2018
    Сообщения:
    10
    Симпатии:
    0
    Ну вот как и предполагалось ошибка в одном знаке ))) все заработало ))) Спасибо Вам большое))) Зачем только кворк заказал )))