• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Symfony 6 - problem z polskimi znakami i logowaniem na produkcji

VPS Starter Arubacloud
0 głosów
243 wizyt
pytanie zadane 26 września 2022 w PHP przez damyanchik Nowicjusz (120 p.)
edycja 26 września 2022 przez damyanchik

Czołem forumowicze!

Przygotowałem swój pierwszy projekt, wrzuciłem go na serwer home.pl (strona pod linkiem) i zainstalowałem wszystko, co niezbędne Composerem. Cały czas mam jednak problem z wyświetlaniem polskich znaków w miejscach, w których tekst jest zaciągany z bazy danych. Tekst, który jest częścią skryptu nie ma z tym problemu. Ustawienia w bazie danych sprawdzałem i są poprawne (utf8mb4). Pomoc home.pl również potwierdziła, że z bazą wszystko jest okej i kodowanie jest dobrze ustawione. Sugerują problem w skrypcie. Czy miał ktoś podobny problem i mógłby mi podpowiedzieć w jaki sposób mógłbym to rozwiązać? 

Nie wiem czy to jest związane, ale mam również problem z logowaniem. Po wpisaniu danych nie dzieje się nic. Oba problemy nie występowały, kiedy pracowałem nad skryptem na localu. Oba pojawiły się dopiero po wrzuceniu na serwer.

Odpowiedzi na ten problem odnaleźć nie mogłem. Będę ogromnie wdzięczny za pomoc!

1 odpowiedź

0 głosów
odpowiedź 26 września 2022 przez Arkadiusz Waluk Ekspert (287,550 p.)
Bez kodu ciężko stwierdzić. W przypadku problemów z polskimi znakami możesz sprawdzić czy ustawiasz charset dla połączenia, może to być w DSN (ten który pewnie masz w .env.local, np. https://www.doctrine-project.org/projects/doctrine-dbal/en/current/reference/configuration.html#connecting-using-a-url) albo w konfiguracji w yamlu np.: https://symfony.com/doc/current/reference/configuration/doctrine.html#doctrine-dbal-configuration

Na problem z logowaniem ciężko powiedzieć, nic się nie dzieje czyli? Nie zwraca żadnych błędów walidacji, sprawdzasz je? Żadnych błędów serwera? W logach nic nie ma? Dane logowania są poprawne? Może jakichś rekordów brakuje w bazie, może coś było przenoszone z lokalnego i się źle przeniosło albo może został przeniesiony wprost hash hasła a teraz automatycznie próbuje użyć innego algorytmu hashowania ze względu na niedostępność czegoś na serwerze?
komentarz 26 września 2022 przez damyanchik Nowicjusz (120 p.)
edycja 26 września 2022 przez damyanchik
return array (
  'APP_ENV' => 'prod',
  'APP_SECRET' => 'xxx',
  'MESSENGER_TRANSPORT_DSN' => 'doctrine://default?auto_setup=0',
  'DATABASE_URL' => 'mysql://35531746_proexpertagd:password@localhost/35531746_proexpertagd?charset=utf8mb4',
);

To z .env.local.php. 

doctrine:
    dbal:
        dbname: 35531746_proexpertagd
        host: localhost
        port: 443
        user: 35531746_proexpertagd
        password: xxx
        driver: pdo_mysql
        url: '%env(resolve:DATABASE_URL)%'
        server_version: 5.7
        charset: utf8mb4
        driver_class: App\DBAL\MyDatabaseDriver

        
        # IMPORTANT: You MUST configure your server version,
        # either here or in the DATABASE_URL env var (see .env file)
        #server_version: '13'
    orm:
        auto_generate_proxy_classes: true
        naming_strategy: doctrine.orm.naming_strategy.underscore_number_aware
        auto_mapping: true
        mappings:
            App:
                is_bundle: false
                dir: '%kernel.project_dir%/src/Entity'
                prefix: 'App\Entity'
                alias: App

doctrine.yaml

Czy może ja coś źle zrozumiałem i powinienem jeszcze po zmianach zastosować jakąś komendę w konsoli? Czy to co znajduje się w plikach jest niewystarczające? Już nie mam pojęcia co powinienem ruszyć.

Jeżeli chodzi o logowanie to wygląda to tak. Zarejestrować konto można, bo pojawia się nowy wiersz w tabeli. Po wpisaniu danych strona logowania odświeża się i to by było na tyle. 

Nie mogę odpalić 'dev', żeby sprawdzić co jest nie tak, ponieważ wyskakuje mi taki błąd:
Screen

 

komentarz 26 września 2022 przez Arkadiusz Waluk Ekspert (287,550 p.)
Dobrze zrozumiałeś, właśnie to miałem na myśli. A jak sobie wejdziesz do tej bazy np. przez phpmyadmin lub innego klienta niż z PHP, to tam widać normalnie polskie znaki? Może gdzieś coś było przenoszone/importowane i w bazie w ogóle jest źle zapisane? Albo jak dodawałeś jakieś rekordy z poziomu aplikacji (o ile masz taką możliwość) wpisując polskie znaki to później wyświetlając je jest tak jak pokazałeś?

Co do błędu ze screena to brzmi jakby nie mógł utworzyć jakiegoś pliku i utworzył go w katalogu tymczasowym systemu. Może brakuje uprawnień do zapisu np. na katalog var w aplikacji, tam gdzie trzyma różnego rodzaju cache?
komentarz 27 września 2022 przez damyanchik Nowicjusz (120 p.)
edycja 27 września 2022 przez damyanchik
Utworzyłem dzisiaj zupełnie nową bazę, gdzie przepisałem jej zawartość ręcznie, bez importu. Nic się nie zmieniło. Na bank problem musi leżeć po stronie aplikacji.

+ poza aplikacją Symfony litery z bazy działają normalnie. Sprawdzone
komentarz 28 września 2022 przez Arkadiusz Waluk Ekspert (287,550 p.)
To w takim razie dziwne, niezbyt mam inny pomysł obecnie szczerze mówiąc co może być nie tak

Podobne pytania

0 głosów
1 odpowiedź 285 wizyt
pytanie zadane 15 października 2016 w PHP przez Captivity Obywatel (1,030 p.)
0 głosów
2 odpowiedzi 1,829 wizyt

92,455 zapytań

141,263 odpowiedzi

319,099 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...