За последние 24 часа нас посетили 20499 программистов и 977 роботов. Сейчас ищут 744 программиста ...

На одном хостинге скрипт работает, на другом нет.

Тема в разделе "PHP для новичков", создана пользователем dm_rut, 8 июн 2024 в 17:51.

  1. dm_rut

    dm_rut Активный пользователь

    С нами с:
    10 дек 2016
    Сообщения:
    71
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Лет 8 назад благодаря помощи этого форума удалось запустить построение графиков вот тут http://www.aie.sp.ru/Calculator_filter2.php
    Недавно завёл другой хостинг отличающийся на 1 букву: http://www.aie.spb.ru/Calculator_filter2.php, всё то же самое, просто скопировал - не работает.
    Старую тему оживить не удалось.
    Переписка с провайдером ни к чему не привела, они посоветовали обратиться к тому кто делал. Делал я и всё работает по другому адресу.
    Подскажите, пожалуйста, куда копать.
     
  2. Survivor

    Survivor Новичок

    С нами с:
    8 фев 2023
    Сообщения:
    76
    Симпатии:
    13
    и ты за 8 лет так и не смог прочитать правила и просто из уважения к другим людям, которые тратят на тебя время (включая чтение этой темы), понять очевидное, что здесь не гадалки? Зря зашел
     
    MouseZver и don.bidon нравится это.
  3. dm_rut

    dm_rut Активный пользователь

    С нами с:
    10 дек 2016
    Сообщения:
    71
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Вы только недавно на этом форуме, поэтому не в курсе.
    Была тема, где всё подробно обсуждалось, совместными усилиями получилось наладить страницу, которая с тех пор исправно работает. В моих сообщениях она есть, но не поднять её или ссылку на неё прикрепить не получается, выскакивает ошибка.
    Появился новый хостинг, где всё то же самое не работает. Ссылки для сравнения дал.
    Вопрос был в общем - куда копать? Просто не представляю как такое может быть, один и тот же скрипт тут работает уже давно, а там нет.
    Возможно Вы намекаете что нужно весь код страницы приложить. Приложил.

    Вот тема:
    https://php.ru/forum/threads/postroenie-grafika-na-rnr.61199/page-6#post-496232
    получилось открыть. Странно, когда первое сообщение писал раз 5 пытался её открыть - ничего не вышло.
     

    Вложения:

    • PHP.zip
      Размер файла:
      8,8 КБ
      Просмотров:
      5
  4. Survivor

    Survivor Новичок

    С нами с:
    8 фев 2023
    Сообщения:
    76
    Симпатии:
    13
    Возможные проблемы:
    - отсутствие на хостинге/сервере нужной версии php
    - отсутствие базы данных, если она используется
    - отсутствие различных библиотек, например GD
    Чтобы это понять, есть лог ошибок.

    Вообще достаточно забавно писать "на одном хостинге работает, а на другом нет".
    С таким успехом можно писать: почему у нас у двоих есть машина, но моя едет медленнее и мне приходиться крутить педали, к тому же у него есть кондиционер, а у меня нет.

    Ещё раз. Нужно выкладывать код, тогда и помощники найдутся.
    Не вижу смысла читать 6 страниц писанины со спорами, это ведь тебе нужно, а не мне.
     
  5. don.bidon

    don.bidon Активный пользователь

    С нами с:
    28 мар 2021
    Сообщения:
    878
    Симпатии:
    142
    Не можешь какать -- не мучай попу, найми человека, который сдюжит проблему, попрошайка.
     
  6. Евгений Владимирович

    Евгений Владимирович Активный пользователь

    С нами с:
    3 май 2009
    Сообщения:
    24
    Симпатии:
    0
    Проверьте версии php
    Что говорят журналы ошибок ??
     
  7. Aleksandr.B

    Aleksandr.B Новичок

    С нами с:
    2 фев 2023
    Сообщения:
    155
    Симпатии:
    40
    Адрес:
    Барнаул
    "Deprecated: Implicit conversion from float 111.09768186929534 to int loses precision in /var/www/u2652567/data/www/aie.spb.ru/script.php on line 282"
    В 8 версии неявная несовместимость преобразования float к int устарело.
    Из чего можно сделать вывод, что на предыдущем сервере версия php была ниже.
     
  8. Vladimir Kheifets

    Vladimir Kheifets Новичок

    С нами с:
    23 сен 2023
    Сообщения:
    291
    Симпатии:
    57
    Адрес:
    Бавария, Германия
    Добрый день!
    Вы покaзали в zip два файла:
    Calculator_filter2.php и script.php

    1. В коде Calculator_filter2.php только HTML и Native JavaScript
    Из jQuery используется только serialize().
    Вы может не грузить лишнии 30Кб убрав строку
    HTML:
    1. <script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
    По идеи, Calculator_filter2.php должен работать так:
    JavaScript function sub обрабатывает событие submit
    В Вашем случае, выбираются в переменные value полей формы и проверяеются на заполнение
    (валидацию можно из JS убрать, добавив атрибут required в поля формы).
    Затем введеные данные как GET параметры дополнются в к "script.php"
    Попробыйте изменить код так
    HTML:
    1. <form action=""> <!-- убираем onsubmit="return sub(this);" -->
    2. <table><tr><td width="685">
    3.    <table bgcolor="#d5d5d5" border="2" cellpadding="1" class="style6">
    4.      <tr><td colspan="3">
    5.             &nbsp; Редкоизменяемые данные: &nbsp; U =
    6.             <input name="U" type="text" value="8"  size="4" required/>
    7.         &nbsp;V</td></tr>
    8. <!-- далее во все тэги input нужно добавить атрибут required -->
    9. <input type=submit>
    10. </form>
    11.  
    12. <!-- выведим наш рисунок в браузер, указав желаемые размеры!-->
    13. <img id="myimg" border="0" style="width:718px; height:620px;" src="script.php" alt="" />
    14. </body>
    15. let form = document.forms[0];
    16. sub = (event) => {
    17.     event.preventDefault();
    18.     let formData = new FormData(form);
    19.     //формируем GET запрос var get
    20.     var get = new URLSearchParams(formData).toString();
    21.     // меняем src нашего рисунка тем самым делая новый запрос к скрипту script.php
    22.     document.getElementById("myimg").src = "script.php?" + get;
    23.     console.log(document.getElementById("myimg").src);
    24.     // здесь можно проверить  src, если OK, то искать ошибку в script.php
    25. };
    26. form.addEventListener("submit", sub);
    27. </html>
    Посмотрите значение в
    Код (Javascript):
    1. console.log(document.getElementById("myimg").src);
    2. Возможно у Вас проблема в script.php
    Поробуйте скопировать в адресную строку браузера url с GET параметрами,
    которые выводитcя в console.log
    domen/script.php?U=...
    Возможно на ностингах отличаются версии или конфигурации PHP.
    Из-за этого на другом ностинге возникают фатальные ошибки.

    Удачи!
     
    #8 Vladimir Kheifets, 9 июн 2024 в 12:14
    Последнее редактирование: 9 июн 2024 в 12:20
  9. dm_rut

    dm_rut Активный пользователь

    С нами с:
    10 дек 2016
    Сообщения:
    71
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Посещаю много форумов по своей специальности. Там полно тем созданных новичками задающими аналогичные вопросы типа: у друга техника отлично работает, а у меня такая же плохо, что делать. Это обычное дело, когда начинающий не понимает. Если отвечают типа: "Не можешь какать - не мучай попу" - таких обычно банят.
    Понятное дело что версии разные. Где искать журналы ошибок?

    И я догадался что на старом хостинге версия старая, а на новом новая.
    Спасибо большое. Поискал в 282-й строке - ничего не понял. Видимо не там ищу. Вообще не нашёл ни float ни int. Подскажите пожалуйста: где это? Фрагмент кода приложил.
     

    Вложения:

    #9 dm_rut, 9 июн 2024 в 12:34
    Последнее редактирование: 9 июн 2024 в 12:47
  10. dm_rut

    dm_rut Активный пользователь

    С нами с:
    10 дек 2016
    Сообщения:
    71
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Строку убрал. При нажатии "Сосчитать" появляется сетка (со строкой просто белое поле), но графики отсутствуют. Это на новом хостинге.

    На старом графики пропадают. Видимо эта строка всё-таки нужна. Как минимум для старого.
     
  11. Vladimir Kheifets

    Vladimir Kheifets Новичок

    С нами с:
    23 сен 2023
    Сообщения:
    291
    Симпатии:
    57
    Адрес:
    Бавария, Германия
    С хостингом это не связано т.к. HTML c JS работает на стороне клиента.
    Вам нужно было не только удалить строку, но и исправить HTML и JavaScript function sub .
    Покажите, пожалуйста, что выводится здесь
    Код (Text):
    1. console.log(document.getElementById("myimg").src);
    Временно, для отладки, в function sub замените
    Код (Javascript):
    1. // document.getElementById("myimg").src = "script.php?" + get;
    2. //На
    3. window.location.replace("script.php?" + get);
    Тогда Вы сможете увидеть ошибки в script.php
     
  12. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.802
    Симпатии:
    647
    Уже подсказали: наймите спеца. И я бы не ограничивался только этим калькулятором ;) Уж слишком олдскульно выглядит сайт. Это даже не 16-ый год. Кстати, сейчас с построением графиков вполне успешно справляется JS. На нем можно даже файлы формировать для сохранения.
     
  13. dm_rut

    dm_rut Активный пользователь

    С нами с:
    10 дек 2016
    Сообщения:
    71
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Это 7-ой год. И он работает, в отличии от всяких других, которые делали зумеры, поэтому постоянно отваливаются или тормозят, то в одном браузере, то в другом. Например текущая история тоже из-за попыток осовременить php.
    Буду пытаться реализовать полученные подсказки. По мере способностей, поэтому не быстро.
    Ещё бы понять: здесь - это где? Куда код вводить?
    Заменил, получил бесконечное кол-во одинаковых строчек:
    Deprecated: Implicit conversion from float 599.999999847209 to int loses precision in /var/www/u2652567/data/www/aie.spb.ru/script.php on line 321
    Строка 321 выглядит так:
    imageSetPixel($img, 20 + $x, 600 - $Yp * ($P1 + $P3 + $P2) * $SYp, $black);
    }
    Что делать с этой информацией?
    Есть подозрение что всё виснет на этапе вывода информации. Типа олдскульный код, переделывай.
     
    #13 dm_rut, 9 июн 2024 в 16:39
    Последнее редактирование: 9 июн 2024 в 16:48
  14. Aleksandr.B

    Aleksandr.B Новичок

    С нами с:
    2 фев 2023
    Сообщения:
    155
    Симпатии:
    40
    Адрес:
    Барнаул
    imageSetPixel 2, 3, 3 принимает int, соответственно нужно посмотреть какой из переданных параметров является float и привести его или их явно (int) параметр, если ошибка возникает в данной строчке.
     
  15. dm_rut

    dm_rut Активный пользователь

    С нами с:
    10 дек 2016
    Сообщения:
    71
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Какие переданные параметры смотреть?
    На сколько понимаю команда imageSetPixel из строки 321 печатает точку с координатами 20 + х и 600 - y, при этом складывает из трёх Р1 + Р2 + Р3. Какой из этих параметров смотреть? В других строчках другие такие же команды, только отдельно, без сложения. Ни одна не выводится.

    Указание на строку 321 выпало потому что галочка стояла только в одном месте: выводить общий гафик, т.е. сумму Р1 + Р2 + Р3. Если галочку поставить в другом месте указание было бы на соответствующую строку. Если поставить несколько галочек - указаний было бы более одного.
     
    #15 dm_rut, 9 июн 2024 в 18:25
    Последнее редактирование: 9 июн 2024 в 18:34
  16. Aleksandr.B

    Aleksandr.B Новичок

    С нами с:
    2 фев 2023
    Сообщения:
    155
    Симпатии:
    40
    Адрес:
    Барнаул
    Код (Text):
    1.  
    2. $x = 20 + $x;
    3. $y = 600 - $Yp * ($P1 + $P3 + $P2) * $SYp;
    4. imageSetPixel($img, (int) $x,  (int) $y,  (int) $black);
     
  17. dm_rut

    dm_rut Активный пользователь

    С нами с:
    10 дек 2016
    Сообщения:
    71
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Вместо 1-й строки написать 3? И так весь скрипт?
    Это имелось ввиду выше под олдскульным сайтом?
     
  18. dm_rut

    dm_rut Активный пользователь

    С нами с:
    10 дек 2016
    Сообщения:
    71
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Заменил строку 321 на 3. При нажатии "Сосчитать" перестала пропадать сетка. График не отображается.
    Это некоторый прогресс. Что сделать чтобы точки выводились?
    Код выглядит так:

    // Суммарная LC+LCCL+CL
    if (isset($_GET["p132"])) {
    $x = 20 + $x;
    $y = 600 - $Yp * ($P1 + $P3 + $P2) * $SYp;
    imageSetPixel($img, (int) $x, (int) $y, (int) $black);
    }
     
  19. dm_rut

    dm_rut Активный пользователь

    С нами с:
    10 дек 2016
    Сообщения:
    71
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Спасибо всем огромное за помошь.
    Решение проблемы оказалось элементарным, правда с другой стороны. Оказывается в настройках нового хостинга можно менять версию php. Посмотрел какая была на старом (5.2) и поставил такую же на новом. Просто зашёл, выбрал нужную версию и всё заработало. Буду готовиться к моменту, когда отключат пятые и заставят принудительно переходить на следующие.
     
  20. Vladimir Kheifets

    Vladimir Kheifets Новичок

    С нами с:
    23 сен 2023
    Сообщения:
    291
    Симпатии:
    57
    Адрес:
    Бавария, Германия
    Добрый день!
    Ваше элементарное решение проблемы - вернуться на 8 лет назад.
    А что Вы предполагаете делать дальше? Там и останетесь?
    Будете продолжать писать новые скрипты на PHP 5.2?
    Без обид, Ваше решение - мина замедленного действия.
    Советую Вам вернуться на актуальную версию PHP и исправить ошибки.
    Удачи!
     
  21. dm_rut

    dm_rut Активный пользователь

    С нами с:
    10 дек 2016
    Сообщения:
    71
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Вы плохо понимаете значение слова ошибки. Когда на этом форуме мне советовали как наладить работу этой страницы - никаких ошибок не было, всё прекрасно работало. С тех пор ничего на странице не изменилось (не считая мелких доработок). Если ничего не делать - ошибкам не откуда взяться. Это правило работает везде и всегда. Ещё в Германии не в курсе одной русской поговорки: работает - не трогай. Если ошибка появилась - её кто-то сделал, достаточно его вычислить и указать ему на неё. Возможно он её исправит, если она случайна или не исправит, если сделана осознанно.
    Не буду, у меня другая профессия.
    Вот я и вернулся - ошибок как не было, так и нет.
    Тут ключевое слово "осознанно". Кому-то очень надо заставить впустую поработать. Кто не сумеет сам - заплатит специалисту. Выше уже предлагали. Ошибка - это когда платить не хочет. Надо заставить.
     
  22. Vladimir Kheifets

    Vladimir Kheifets Новичок

    С нами с:
    23 сен 2023
    Сообщения:
    291
    Симпатии:
    57
    Адрес:
    Бавария, Германия
    Добрый день!
    Если вместо графика, программа выводит сетку, то она не работает.

    Есть одна русская поговорка:
    В Вашем случае, программа перестала работать на другом хостинге
    и Вы обратились за помощью.
    Я не заставлял Вас платить и абсолютно даром, исправил код и подсказал Вам как
    найти ошибки в PHP.
    Между прочим, другие коллеги тоже пытались Вам помочь.
    Оказалось, что Вам это не нужно.
    Удачи!
     
  23. dm_rut

    dm_rut Активный пользователь

    С нами с:
    10 дек 2016
    Сообщения:
    71
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Не совсем так. Не перестала работать, а сразу не работала. Потому что по умолчанию php8. Посоветовали вместо 1-й строчки сделать 3 и появилась сетка. Графика как не было, так и нет. Нет сомнений что если ещё что-то подкорректировать - всё заработает.

    Никак не мог предположить что у нового провайдера в настройках можно запросто менять версию php. Поменял на 5.2, вернул код к изначальному - работает.
    Поменять версию php - сам нашёл.
    Не я один делал страницы в php5, таких миллионы. И у всех те же проблемы при попытке запустить код на php8. Если сейчас переделать код под php8, выйдет следующая версия и опять придётся переделывать. Работа ради работы, у самурая нет цели, только путь. Или вернуться к актуальной версии.
     
  24. Vladimir Kheifets

    Vladimir Kheifets Новичок

    С нами с:
    23 сен 2023
    Сообщения:
    291
    Симпатии:
    57
    Адрес:
    Бавария, Германия
    Добрый день!

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

    Итак, почему не безопасно оставаться на PHP 5.2 и любой последущей версии, которая не поддерживается разработчиками.

    По жизни, в любой программе выявлятся проблемы.
    Если программа поддерживается, разработчики несут за это ответственность и устраняют проблемы.
    Поэтому и появляются новые релизы версий и новые версии PHP.
    Одна из наиболее опасных проблем уязвимости PHP.
    Например, здесь описаны множественных уязвимостях PHP 5.2
    https://xakep.ru/2009/02/27/47311/
    Как вы думаете, что сделать лучше - оставаться на PHP 5.2 или вернуться (на сервере) к актуальной версии PHP?
    Причём, исправить то нужно только один PHP-скрипт.

    Удачи!
     
  25. dm_rut

    dm_rut Активный пользователь

    С нами с:
    10 дек 2016
    Сообщения:
    71
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Отвечу тоже. Для тех, кто способен адеватно воспринимать действительность.
    Кто бы был против. Разработчики устраняйте.
    Почему Вы молчали, когда этот скрипт делали и обсуждали? Что помешало рассказать про уязвимости и посоветовать как сделать хорошо? Теперь не надо вставать в позу, перекладывать с больной головы на здоровую и выворачивать ситуацию наоборот: как будто я не хочу скорректировать скрипт. Хочу, но не знаю как. Поэтому тему и запостил. И тут пишут типа: ишь какой, нахаляву захотел, предложили нанять специалиста. За деньги конечно. Того самого разработчика. Схема стара как мир. Вы и сейчас ничего не советуете.
    Выше посоветовали доработать строчку вывода графика, переписать её в три, сетка стала отображаться, но график не появися. Надо ещё что-то переделать.