Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ PHP _ Przerobienie skryptu na potrzeby nowszej wersji php

Napisany przez: Jump0ncash 10.04.2024, 15:01:30

Posiadam stronę od kilku ładnych lat działała poprawnie na wersji PHP 7.3
Hosting na którym jest strona pozbył się wersji 7.3 i zastąpił ją wersją 7.4 i w związku z tym pojawiły się krzaczki sad.gif

Nie jestem znawcą PHP zatem gotowca tutaj nie dostanę dlatego chętnie zapłacę blik na telefon i po sprawie.

Jest to skrypt który korzysta z API googlemaps - liczy kilometry z punktu a do b następnie coś tam mnoży i dzieli w wyniku wyświetla cenę z transprotem

  1. $cities = '';
  2. $result = eco_db_query("SELECT * FROM `-data-cities-province-poland` WHERE province = '" . eco_db_str($_GET['woj']) . "' ORDER BY city ASC");
  3. while($row = eco_db_fetch_array($result)) :
  4. if ($row['city'] != $miasto):
  5. $cities .= '<a href="/szamba-betonowe/' . eco_db_str($_GET['woj']) . '/' . eco_alias($row['city']) . '">' . $row['city'] . '</a>, ';
  6. endif;
  7. endwhile;
  8. $cities = http://www.php.net/trim($cities,", ");
  9.  
  10.  
  11. $details = "https://maps.googleapis.com/maps/api/distancematrix/json?origins=51.470937,21.121377&destinations=" . http://www.php.net/str_replace(" ","-",$miasto) . "," . $_GET['woj'] . "&mode=driving&sensor=false&key=***********************************";
  12. $json = http://www.php.net/file_get_contents($details);
  13. $details = json_decode($json, TRUE);
  14. $distance = $details['rows'][0]['elements'][0]['distance']['text'];
  15. $distance_raw = http://www.php.net/trim($distance," km");
  16. $distance_raw = http://www.php.net/str_replace(",","",$distance_raw);
  17. $transport_price = ($distance_raw * 9) / 3;
  18. if ($distance_raw < 100) { $transport_price = $transport_price + 150;}
  19. $transport_price = eco_money(http://www.php.net/floor($transport_price)) . 'PLN';
  20.  
  21.  
  22. $output = content(43, 78);
  23. $output = http://www.php.net/str_replace("{TRANSPORT:DYSTANS}",$distance,$output);
  24. $output = http://www.php.net/str_replace("{TRANSPORT:KOSZT}",$transport_price,$output);
  25. $output = http://www.php.net/str_replace("{WOJEWODZTWO}",http://www.php.net/ucfirst($_GET['woj']),$output);
  26. $output = http://www.php.net/str_replace("{MIASTA}",http://www.php.net/ucfirst($cities),$output);
  27. $output = http://www.php.net/str_replace("{MIASTO}",$miasto,$output);
  28.  
  29. http://www.php.net/echo $output;
  30.  
  31.  


  1. https://abcszamba.pl/szamba-betonowe/wielkopolskie/krzywin

Podaje linka co by pokazać jakie błędy się wyśietlają
W celu dogadania się itp podaje numer lub email 690 493 500 jump0ncash@gmail.com

Napisany przez: Tomplus 12.04.2024, 10:58:01

Te błędy były wcześniej, teraz masz włączoną konfigurację w kodzie:

  1. http://www.php.net/error_reporting(E_ALL);


zamiast
  1. http://www.php.net/error_reporting(E_ALL & ~E_NOTICE);


oraz o
  1. display_errors(False);



a co do błędu:

  1. $details = "https://...";
  2. $json = http://www.php.net/file_get_contents($details);

Zamień https na http - powinno przepuścić.

lub dodać powyżej:
  1. http://www.php.net/ini_set("allow_url_fopen", true);


bo nie ma dodanego modułu fopen do PHP.

Napisany przez: Jump0ncash 12.04.2024, 13:56:41

Niestety nie pomogło

Napisany przez: Malinaa 15.04.2024, 22:41:22

Cytat(Jump0ncash @ 10.04.2024, 16:01:30 ) *
Podaje linka co by pokazać jakie błędy się wyśietlają


Pod linkiem masz błędy:
Notice: Undefined offset: 0 in /home/seodir2/domains/abcszamba.pl/public_html/pages/seo-pages/miasto.php on line 65

a pokazujesz inny kod nie związany z błędem, w tym kodzie nie ma linii 65, więc na tę chwilę rzecz wygląda jak "mydlenie" oczu.

Tomplus skąd Ty to wszystko wziąłeś (te poprawki błędów), czytasz z gwiazd, bo nie widać związku jednego z drugim?

Napisany przez: Tomplus 16.04.2024, 08:49:15

@Malinaa
Zgaduje jak jest, jak widać nie trafiłem z rozwiązaniem.

Jakby się zainteresował, to przynajmniej dałby feedback, co się się zmieniło. Sam mógłby zmienić parametry.

Napisany przez: Salvation 18.04.2024, 16:49:17

Cytat(Malinaa @ 15.04.2024, 23:41:22 ) *
a pokazujesz inny kod nie związany z błędem, w tym kodzie nie ma linii 65, więc na tę chwilę rzecz wygląda jak "mydlenie" oczu.

Wklejony kod akurat jest dobry. To jest wycinek całego pliku. Nie poinformował o tym autor, ale czytając treść błędu i patrząc na kod wzrok mogła przykuć tylko linijka 14... :oneeyedsmiley02:

Pomogłem użytkownikowi na priv, ale skoro nie wziąłem za to pieniędzy, to wrzucam rozwiązanie poniżej:
  1. $distance = $details['rows'][0]['elements'][0]['distance']['text'] ?? '0 km';

Nie zmienia to faktu, że klucz API, z którego korzysta autor posta jest invalid lub restricted. Treść błędu:
Kod
This IP, site or mobile application is not authorized to use this API key

Przekierowałem go do firmy, która robiła mu stronę. Niech się tym zajmą.

Napisany przez: Malinaa 3.05.2024, 10:19:52

Cytat(Tomplus @ 16.04.2024, 09:49:15 ) *
@Malinaa
Zgaduje jak jest, jak widać nie trafiłem z rozwiązaniem.

Jakby się zainteresował, to przynajmniej dałby feedback, co się się zmieniło. Sam mógłby zmienić parametry.


Można i tak, albo kiedy jest się młodym, niestety nie mam czasu na zgadywanie smile.gif

No i brak zainteresowania kodowaniem w PHP, czyli Jump0ncash chciał aby go skasować za gotowca, którego za darmo nie dostanie bez własnego zaangażowania,
więc Salvation stracił swoją okazje finansową wykonując poprawkę za free, na domiar jak pisze proste zadanie przekierowuje do firmy, która...

Cytat
Wklejony kod akurat jest dobry. To jest wycinek całego pliku.

Widziałeś cały kod i Kozak jesteś smile.gif Poza tym generalnie przeszło przez myśl co dobrego w kodzie, który pokazuje błędy i dalej poprawnie nie działa, ale jeżeli pomogło to też coś.

Napisany przez: Salvation 3.05.2024, 14:26:00

Cytat(Malinaa @ 3.05.2024, 11:19:52 ) *
Salvation stracił swoją okazje finansową wykonując poprawkę za free

No nie do końca "stracił"... Zrezygnowałem z wystawienia faktury po prostu, bo zajęło mi to minutę.
I tak, przekierowałem go do firmy, co robiła mu stronę. Nie rozumiem co w tym "złego". Jeżeli tamci nie chcieliby mu pomóc, to wróciłby do mnie smile.gif
Na tamtą chwilę nie miałem czasu na wgryzanie się w kod customowego frameworka i ciśnięcie klienta na poprawki u mnie.

Autor oferował pieniądze. Tutaj, na forum, czy podczas rozmowy na mailu. A poniżej to co napisał w pierwszym swoim poście.
Cytat(Jump0ncash @ 10.04.2024, 16:01:30 ) *
Nie jestem znawcą PHP zatem gotowca tutaj nie dostanę dlatego chętnie zapłacę blik na telefon i po sprawie.

Napisany przez: Malinaa 3.05.2024, 17:27:58

Ok, jasne.

Cytat(Salvation @ 3.05.2024, 15:26:00 ) *
Na tamtą chwilę nie miałem czasu na wgryzanie się w kod customowego frameworka i ciśnięcie klienta na poprawki u mnie.


Natomiast z powyższym to nie tak jak myślisz. Frameworka napisałem z ciekawości czy potrafię i teraz ciekaw jestem, czy może być tak prosty, że Zielony też sobie poradzi.
Wygląda na to, że niestety nie jestem tak sprytny jak myślisz i nie mam firmy, może dlatego ciągle usiłuję przetrwać na etacie.
Mądrze prawisz o ile miałeś dobry zamiar zachęcić mnie do rzeczy większych smile.gif

Napisany przez: Salvation 6.05.2024, 13:04:34

Cytat(Malinaa @ 3.05.2024, 18:27:58 ) *
Natomiast z powyższym to nie tak jak myślisz. Frameworka napisałem z ciekawości czy potrafię i teraz ciekaw jestem, czy może być tak prosty, że Zielony też sobie poradzi.

Ale ja przecież nie pisałem o twoim fw.
Custom fw - o ile nie pracuje nad nim zespół, który wytworzy pewny standard i/lub schematy - to każdy będzie mieć mniejszy lub większy próg wejścia. Na każdego też będzie trzeba trochę czasu poświęcić by złapać logiki twórcy.

Cytat(Malinaa @ 3.05.2024, 18:27:58 ) *
Wygląda na to, że niestety nie jestem tak sprytny jak myślisz i nie mam firmy, może dlatego ciągle usiłuję przetrwać na etacie.

A tej części wypowiedzi nie zrozumiałem. Nie miałem zamiaru kogokolwiek obrazić czy urazić.

Cytat(Malinaa @ 3.05.2024, 18:27:58 ) *
Mądrze prawisz o ile miałeś dobry zamiar zachęcić mnie do rzeczy większych smile.gif

Nie wiem czy miałem zamiar biggrin.gif ale cieszę się, że rozumiesz ideę ciągłego uczenia się.

Napisany przez: Malinaa 13.05.2024, 22:41:39

Z ideą ciągłego uczenia się to jest tak, że wspominałeś o testach, które powinienem wykonać do napisanego FW, ale jakoś w zeszłym miesiącu do tego zajrzałem i w ogóle nie oświeciło mnie, a głową muru nie przebije sciana.gif
Może dałbyś się namówić na DatabaseTest {} o którym to pisałem w temacie http://forum.php.pl/index.php?showtopic=271157&pid=1262571&st=80&#entry1262571


Napisany przez: gino 14.05.2024, 06:14:56

https://www.freecodecamp.org/news/test-php-code-with-phpunit/
Zacznij od tego, jeśli z angielskim sobie nie radzisz, zainstaluj rozszerzenie do przeglądarki np. Translate Web Pages i zobacz przykład od zainstalowania PHPUnit do pierwszych testów.

Napisany przez: Malinaa 14.05.2024, 19:57:15

Cytat(gino @ 14.05.2024, 07:14:56 ) *
https://www.freecodecamp.org/news/test-php-code-with-phpunit/
Zacznij od tego, jeśli z angielskim sobie nie radzisz, zainstaluj rozszerzenie do przeglądarki np. Translate Web Pages i zobacz przykład od zainstalowania PHPUnit do pierwszych testów.

Stronę pod linkiem można przeczytać, ale jej zawartość nie za bardzo jest pomocna.
Z angielskim sobie radzę, ale z tłumaczem to Lux Panie.

Jakiś miesiąc temu zajrzałem do testów, w tym czasie już dodałem PHPUnit do mojego Frameworka i jest Git, bo działa bez problemu.

Przykładowa klasa testowa: https://github.com/artimman/dbmframework/blob/main/tests/ExampleTest.php
wykonuje polecenie: ./vendor/bin/phpunit tests
i mam odpowiedź: OK (1 tests, 1 assertions) wszystko gra,
ale jak przetestować poszczególne elementu, np. przetestować połączenie z bazą danych i wszystkie metody związane z zapytaniami do bazy, albo logowanie, rejestracje użytkowników, gdzie jest też PHPMailer itd. to nie za bardzo wiedziałem... co dalej?

Dla https://github.com/artimman/dbmframework/blob/main/application/classes/Database.php utworze np.
DatabaseTest
{
// Jak dotychczas to tylko jakiś zabawny test był, a jak tu wykonać sensowne testy?
}

Napisany przez: Salvation 15.05.2024, 07:58:05

To, o czym piszesz, to różne testy. Można wycielić trzy takie obszary (obrazek poniżej). A tutaj art. do przeczytania: https://testcase.pl/aktualnosci/piramida-testow


Proponuję zakupić sobie ten kurs: https://eduweb.pl/full-stack-i-programowanie/php/test-driven-development-testy-jednostkowe-php to poznasz lepiej testy jednostkowe.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)