Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wyświetlanie wyników z MySQL a la Wordpress
Forum PHP.pl > Forum > PHP
FlashSplash
Witam serdecznie!
Mam nadzieję, że temat nadaje się do tego działu i tych konkretnych pytań jeszcze razem nie było.

Potrzebuję osiągnąć taki efekt jaki mogę osiągnąć poprzez używanie platformy Wordpress'a (która nie spełnia wszystkich moich potrzeb). Chodzi mi o wyświetlanie wyników z bazy i ładne adresu URL.

Zależy mi na tym, by nie było tak że każdy artykuł czy film ma osobny plik php z osobnym id, tylko na tym by był jeden plik który wyświetla wynik z bazy danych na podstawie klikniętego wcześniej linku kierującego do strony oraz by adres nie wyglądał typu http://www.strona.pl/articles.php?article_id=23 tylko by coś zamieniało tytuł artykułu na uproszczone znaki (tj. zamieniało wszystkie litery na a-z, zamieniało spacje na "-" i usuwało znaki specjalne), za co zapewne w większej części odpowiedzialny jest plik .htaccess.

Mam nadzieję, że w miarę klarownie się wyraziłem. To jest to na czym mi najbardziej zależy: by były ładne adresy wspomagające SEO oraz poprawiające estetykę strony, oraz by nie było 100 plików, tylko w razie potrzeby bym musiał zmienić dane w jednym pliku odpowiedzialnym za wyświetlanie danych z MySQL.

Jeśli nie chce się wam pomóc a widzieliście artykuły tego dotyczące gdzieś indziej - proszę zalinkujcie. Za każdą pomoc serdecznie dziękuję, nawet nie zdajecie sobie sprawy jak istotne jest to dla mnie. Jeśli ktoś chciałby się ze mną skontaktować to proponuję e-mail (flashasplash@gmail.com) lub gadu-gadu (10837825).

Pozdrawiam,
Splash
hind
reguły w htaccess
w bazie kolumna alias
CuteOne
Ładne adresy:: google -> mode_rewrite, krótkie adresy
Podmiany liter/znaków specjalnych:: google -> preg_replace, str_replace
Jeden plik do wszystkiego:: google -> include, require

Jak to wszystko razem działa podpatrz w WP
FlashSplash
Znalazłem coś takiego: http://www.php.rk.edu.pl/w/p/modrewrite-krotkie-urle/
Ale to nie do końca jest to co chciałbym. Wg. tego mogę zamienić wyświetlaną nazwę (np. article.php?id=2234) na cokolwiek chcę, ale muszę ręcznie wpisywać to do .htaccess. A jeśli chciałbym żeby strona.pl/article.php?id=$id zamieniało automatycznie na strona.pl/$short-url ?

Mam pytanie dt. zabezpieczenia funkcji "echo $_GET['id'];" jeśli miałbym np. article.php?id=$id - w jaki sposób tutaj zastosować htmlspecialchars ?
Oraz bardzo ważne - czy jeśli zostanie wpisany adres article.php?id=$id to czy dałoby radę automatycznie zmienić ten adres na krótki url?

Ogromne dzięki za pomoc! smile.gif
CuteOne
1. Poczytaj więcej artów na temat krótkich url'i i zacznij kombinować [zobacz na .htaccess w WP]
2. htmlspecialchars dodajesz tylko wtedy gdy chcesz wyświetlić coś pobranego np. z bazy danych. Do filtracji $_GET['id'] służą inne funkcje np. mysql_real_escape_string();
3. Poczytaj o routingu i jego zastosowaniach
4. Jeżeli ktoś wejdzie przez adres typu article.php?id=$id, możesz dodać regułkę do .htaccess, która przekieruje użyszkodnika na właściwy adres

ps. posiedź trochę nad lekturą zobacz jak rozwiązują takie problemy gotowe serwisy i sam kombinuj
FlashSplash
Udało mi się dotrzeć do wyświetlania /article.php?id=25 jeśli użytkownik wpisze article/25/ ale nie jestem w stanie zrobić w jakikolwiek sposób tego tak jakbym mimo wszystko tego chciał, tak jak jest to w Wordpress'ie.

Czy jest jakakolwiek funkcja która pozwoliłaby na to, by użytkownik wchodząc na podany URL /article/some-article/ widział zawartość article.php?id=25 ? W najgorszym wypadku niech to będzie /article/$id/some-article/.

Oraz pytanie - czy jeśli udałoby się to zrobić, to czy jest to zgodne z SEO? Który adres będzie się powtarzał - ładny czy pierwotny?

Oto co uzyskałem do tej pory:
Kod
Options +FollowSymLinks

RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d  
RewriteCond %{SCRIPT_FILENAME} !-f  
RewriteRule ^article/([0-9]+)/$ index.php?id=$1


Dzięki za pomoc winksmiley.jpg
CuteOne
Używasz mode_rewrite a nie doczytałeś na jakiej zasadzie działa?

/article/some-article/
po przepisaniu wygląda tak:
article.php?id=some-article

teraz wystarczy wyciągnąć z bazy treść arta, którego alias = id
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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.