używam darmowej wersji Quick.Cart 5.5, po wprowadzeniu danych (strony/produkty) na serwerze, chciałem skopiować cały skrypt na localhost (XAMPP) by tam dalej go konfigurować - niestety na localhost skrypt nie wczytuje danych z katalogu database (brak stron/produktów, na stronie głównej napis "Nie znaleziono danych").
Czego już próbowałem? 1. Sprawdziłem pliki w database - SĄ w nich wszystkie dane. 2. Próbowałem skopiować jeszcze raz (nawet kilka razy). 3. Utworzyłem subdomenę na localhost by uruchamiać skrypt z głównego katalogu. 4. Zmieniałem prawa wszystkich plików i katalogów (wyłączenie opcji tylko-do-odczytu). 5. Sprawdziłem wersje Apache i PHP (są odpowiednie). 6. Googlowałem w celu znalezienia rozwiązania problemu - znalazłem masę przydatnych informacji, ale problem pozostał.
Poddaje się. Czy ktoś wie co zrobić by skrypt wczytał dane z database na localhost?
Pozdrawiam, Artur
----------------------------
Hello,
I'm using free version Quick.Cart 5.5, after entering data (pages/products) on server, I wanted to copy whole script to localhost (XAMPP) so I can continue modifying there - unfortunately script on localhost don't read data from database directory (no pages/products, on main page sign "data not found").
What I have tried? 1. I've checked database directory - all data is still there. 2. I've tried copy it once again (even few times). 3. I've created subdomain on localhost to use script from main directory. 4. I've changed rights for all files and directories (turned off read-only option) 5. I've checked Apache & PHP versions (they are good). 6. I've googled for solution - have found alot of useful informations, but problem remains.
I give up. Somebody know what to do, to load this data from database directory on localhost?
Niektóre transfery danych mogą deczko namieszać. Mam nadzieję, że używasz Notepad++. Otwórz w Notepad++ jakiś plik bazy danych (xx_products.php) W menu: widok, niewidoczne/niedrukowalne znaki, kliknij na "pokaż wszystkie znaki" (używam niemieckiej wersji, więc po prostu tłumaczę z głowy to menu)
pierwsza linijka powinna wyglądać tak:
<?php exit; ?>LF
jeśli na końcu masz CR LF to pliki "ztekstowały się" przy transferze. Trzeba przy transferze załączyć tryb binarny.
A teraz jak to działa i dlaczego się wysypuje przy transferze tekstowym: Sporo klientów ftp jest ustawionych w taki sposób, że przy transferze tekstowym uzupełnia brakujący Carriage Return (CR) przy istniejącym Line Feed (LF). A czytanie bazy przez QCart/CMS "oFFS->getData" odbywa się w następujący sposób:
Czyli od szesnastego znaku w pliku (liczymy od 0, więc 15 = 16 :-) ) W normalnym przypadku będzie to: "a:..." czyli początek array'a W przypadku "ztekstowania" będzie to znak "LF" (bo CR wskoczył przed niego). A funkcja unserialize czeka na "a" na pierwszym miejscu, a tu kicha.
Przetestowałem to dzisiaj w nocy na tym samy skrypcie na tym samy serwerze i katalogu - jak wrzucamy TOTAL COMMANDEREM to się robią "KWIATUSZKI" typu "brak danych" itp itd ;) - ta sama kopia na ten sam serwer/ katalog wrzuta FILEZILLĄ i krzaków nie ma :)