![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 1 Dołączył: 7.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Mam bazę danych z kolumnami (aliasID,query,keyword). W 'query' zapisuje się zapytanie, np. 'index.php?strona=oferta', a keyword klucz - w tym przypadku 'oferta'. W pliku index.php jest taki kod:
W .htaccess mam wpis:
Chodzi o to, że teraz po wywaołaniu adresu http://www.strona.pl/oferta jeśli w bazie znajdzie alias o takim kluczu (oferta) miałaby się wyświetlić strona z adresu zgodnego z tym co jest w kolumnie 'query', czyli: http://www.strona.pl/index.php?strona=oferta jednak include wyświetla zawartość poprawnie tylko jeśli adres jest bez zmiennej - ze zmienną wyświetla się pusta strona Jakim sposobem poprawnie wyświetlić zawartość wybranej podstrony za pomocą danych z tabeli MySQL, z aliasami tych podstron? Chciałbym stworzyć najprostszy system SEO. Ten post edytował wbeatn 28.10.2014, 08:24:37 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 4 291 Pomógł: 829 Dołączył: 14.02.2009 Skąd: łódź Ostrzeżenie: (0%) ![]() ![]() |
Jak wywala Ci pustą stronę to najprawdopodobniej include wywala błąd, a masz wyłączone raportowanie błędów. Wniosek - włacz raportowanie błędów error_reporting
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 1 Dołączył: 7.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Warning: include(index.php?strona=oferta) [function.include]: failed to open stream: No such file or directory in /index.php on line 14 Jednak kiedy wywołuje ją z pasku adresu to się wczytuje. W index.php coś takiego:
Ten post edytował wbeatn 28.10.2014, 08:48:37 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
No przeciez widac, ze zamiast
include(oferta) robi ci include(index.php?strona=oferta) .... Tak ma byc: RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^([a-z]+)?$ index.php?key=$1 [L] -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 4 291 Pomógł: 829 Dołączył: 14.02.2009 Skąd: łódź Ostrzeżenie: (0%) ![]() ![]() |
Z jakiej racji includujesz plik index.php?strona=oferta ?
To kompletnie nie tak ma działać. W bazie masz np strukturę key | plik oferta | oferta.php Reguła to Kod RewriteEngine On RewriteRule ^([a-z]+)?$ index.php?key=$1 [L] I teraz pobierasz z bazy `plik` dla key = $_GET['key'] i includujesz plik |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 675 Pomógł: 58 Dołączył: 17.12.2013 Ostrzeżenie: (10%) ![]() ![]() |
Tu masz najlepszy poradnik jak to zrobić:
poradnik seo i php |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 1 Dołączył: 7.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 4 291 Pomógł: 829 Dołączył: 14.02.2009 Skąd: łódź Ostrzeżenie: (0%) ![]() ![]() |
Zrozum, że PHP szuka pliku o nazwie index.php?strona=oferta a nie oferta.php
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 1 Dołączył: 7.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
Zrozum, że PHP szuka pliku o nazwie index.php?strona=oferta a nie oferta.php Ale nie istnieje u mnie plik oferta.php. Przeczytaj jeszcze raz pierwszy post dokładnie. Nie chce by wyświetlało zawartośc pliku, a zawartość którą wywołuje użycie adresu ze zmienną. W tym przypadku dokładnie to samo, co wyświetla się po ręcznym wpisaniu 'http://www.strona.pl/index.php?strona=oferta' w pasku adresu przeglądarki Ten post edytował wbeatn 28.10.2014, 09:00:23 |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 4 291 Pomógł: 829 Dołączył: 14.02.2009 Skąd: łódź Ostrzeżenie: (0%) ![]() ![]() |
A jaki plik istnieje który odpowiada za treść oferty?
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 1 Dołączył: 7.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
Po kolei
index.php służy tylko i wylacznie do pobrania wartosci zmiennej "key" z adresu
a więc wywołuję w pasku adresu stronę www.strona.pl/index.php?key=(*) [(*) - obojętnie co] teraz wewnątrz index.php najpierw skrypt sprawdza czy w bazie istnieje rekord, w którym kolumna "keyword" jest równa temu czym jest (*) .. (nie ważne czy "oferta", czy np. "kontakt" .... jak "kontakt", to sprawdza czy jest rekord, w którym kolumna "keyword" równa się "kontakt" Jak nie znajdzie ma wyświetlić 404 jeśli znajdzie, to ma wyświetlić zawartość z adresu, który zapisany jest w kolumnie "query" dla tego rekordu ||-------------query-------------||-keyword-|| -------------------------------------------------- || _index.php?strona=oferta || oferta || -------------------------------------------------- || _index.php?strona=kontakt || kontakt || -------------------------------------------------- Chodzi o to, że w kolumnie query zapisane są adresy, które prawidlowo wyświetlają stronę do której się odwołują _index.php?strona=oferta wyświetla pięknie podstronę z ofertą, _index.php?strona=kontakt z kontaktem ale jeśli próbuję zaincludować przez funkcję include taki adres, to wyświetla, że wywołana scieżka nieprawidłowa, czyli Cytat Warning: include(_index.php?strona=oferta) [function.include]: failed to open stream: No such file or directory in /index.php on line 14 Rozumiem, że funkcja inlude nie wyświetli zawartości podstrony zgodnej z tym co jest w zmiennych, że słuzy tylko do wyświetlenia zawartości pliku bez użycia zmiennych Ja szukam rozwiązania, które spowoduje, że skrypt wczyta mi to samo, co wyświetla się po wpisaniu w pasku adresu dokładnie tego, co jest w kolumnie query Ten post edytował wbeatn 28.10.2014, 09:26:01 |
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 4 291 Pomógł: 829 Dołączył: 14.02.2009 Skąd: łódź Ostrzeżenie: (0%) ![]() ![]() |
W poście #5 napisałem jak to powinno wyglądać. Trzymanie w bazie index.php?strona=oferta jako aliasu jest słabe.
W tabeli masz trzymać alias (keyword) i nazwę/ścieżkę pliku, który ma być wczytany i tylko to, czyli np. keyword | filename oferta | pliki/something/oferta.html
Ten post edytował Turson 28.10.2014, 09:53:56 |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 1 Dołączył: 7.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
Od początku piszę, że podstrony wczytywane są przez definiowanie w adresie zmiennych, a ty mi dajesz rozwiązanie, które opiera się na plikach.
Co z tego, że sobie wgram plik " pliki/something/oferta.php " jak potrzebuje wgrac zawartość " pliki/something/oferta.php?zmienna1=wartosc&zmienna2=wartosc " etc., przez użycie danego aliasa z tabeli? To o czym piszesz zupełnie nie ma sie jakkolwiek do tego czego potrzebuje... to że include mi wgra zawartość wywoływanej sciezki, ale do pliku, nie adresu ze zmiennymi, to wiedziałem przed przyjsciem tutaj Ten post edytował wbeatn 28.10.2014, 10:35:52 |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 467 Pomógł: 77 Dołączył: 6.09.2008 Skąd: Miechów / Kraków Ostrzeżenie: (0%) ![]() ![]() |
Sam to napisałeś, czy poprawiasz po kimś? Jeśli sam, to zrobiłeś to źle i lepiej przeprojektuj to na nowo.
Co do Twojego pytania jedyne co mi przychodzi do głowy to coś takiego:
-------------------- Niemożliwym jest stworzenie czegokolwiek idiotoodpornego, ponieważ idioci są wyjątkowo pomysłowi.
https://www.aroch.pl https://themeforest.net/user/aroch https://www.astroblog.aroch.pl https://www.4geeks.pl |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 10.07.2025 - 07:56 |