Mephis
16.11.2014, 04:15:00
Witam.
Korzystam z takiego czegoś:
Logowanie za pomocą PHP oraz AJAX – dynamiczny skrypt.
Czy ktoś mógłby mi powiedzieć, dlaczego w części PHP (checker.php) nie mogę dołączyć żadnego innego pliku? Każda próba samego dołączenia pliku powoduje brak odpowiedzi ze strony ajaxa.
Turson
16.11.2014, 12:51:38
Podejrzewam, ze dolaczasz plik ze zla sciezka w konsekwencji czego wystepuje blad PHP i nie widzisz odpowiedzi ajax. Żeby się upewnić odpal przeglądarkę w konsoli i zobacz co przesyłasz przez ajaxa i co odbierasz
Mephis
16.11.2014, 15:58:20
Ścieżka jest poprawna, ponieważ jeśli odpalę ten skrypt wpisując jego adres w pasku, dołączane pliki działają poprawnie.
Jednak jeśli odpalę go przez ajax - nic się nie dzieję. Gdy usunę tylko linijkę z includem/requirem, skrypt powraca do działania.
Tylko co mi z tego, jak w demie tego skryptu dane loginu i hasła ustalone są na sztywno w skrypcie, a ja potrzebuję w tym celu skorzystać z plików bazowych witryny i użyć do tego odpowiednich klas i funkcji, z których korzystałem w przypadku wcześniejszego, statycznego logowania.
Turson
16.11.2014, 16:00:14
Tak jak powiedziałem wejdz w konsole przegladarkową i obserwuj co wysyłasz do ajaxa i co on zwraca. Tylko tam sie upewnisz. Jezeli nie masz wlaczonego pelnego raportowania bledow, zrob to.
Mephis
16.11.2014, 19:34:28
Kiedy dołączę do pliku PHP include, skrypt JS zatrzymuje się przy: "var array = $.parseJSON(html);"
Turson
16.11.2014, 19:51:33
A include zawiera jakieś echo w sobie? Jeżeli tak, to ajax również to łapie i to wtedy nie jest jsonem
Mephis
16.11.2014, 21:24:18
Ano właśnie nie. Nawet, jeśli zaraz po include wstawię "die(json_encode($tablica));" zaiste uprzednio wypełniając tablice danymi, to choć gdy wchodzę do skryptu ręcznie, wyświetlają mi się owe dane w formacie JSON (bez żadnych spacji przed, jak i po cIliągu znaków).
Ajax jednak ma problemy z problemy. Pytanie na jakiej podstawie?
Jaką różnicę robi to, że wcześniej dołączam jakiś plik, skoro dla Ajaxa liczą się dane wyjściowe w postaci stringa zapisanego w formacie JSON?
Edit:
Zagadka rozwiązana... Problemem było dołączenie klas i tworzenie obiektów w pliku bazowym. Kiedy wyłączyłem z kodu parę linijek, zadziałało. Zastanawiałem się, czy być może któraś z dołączanych klas nie wyświetla jakiś znaków, czy tez nie powoduje jakiś błedów, jednak nic takiego nie zauważyłem... Okazało się, że problem tkwił w samych ścieżkach do plików. Nie rozumiem tego do końca. Normalnie, gdy dołączam plik bazowy do stron, a jest on w tym samym folderze co klasy, to ścieżką do tych plików jest ich sama nazwa. Jednak, gdy dołączam plik bazowy do tego logowania, to muszę w pliku bazowym zmienić ścieżki do klas, wpisując wcześniej nazwy folderów w którym się znajdują. Ale skoro mam plik, w którym ładuję inne pliki z tego samego folderu to nie powinienem musieć tego robić? To wygląda tak, jakby na czas tego skryptu plik bazowy zmieniał ścieżkę do folderu gdzie znajduje się ten skrypt logowania.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.