Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Mod_rewrite jak wyświetlić linki na stronie po zmianie, ktoś odpowie ?????????
slewin
post
Post #1





Grupa: Zarejestrowani
Postów: 104
Pomógł: 7
Dołączył: 9.12.2008
Skąd: wroc

Ostrzeżenie: (0%)
-----


Chodzi o to że wyskrobie sobie skrypt typu( taki na szybko pisany)
  1. <?php
  2. if ($_GET['numer']>0) {                
  3.        $wynik = mysql_query (&#092;"SELECT * FROM informacje WHERE numer=\".$_GET['numer'].\" ;\");
  4.        if ($wynik && $rekord = mysql_fetch_assoc ($wynik)) {
  5.          foreach($r as $klucz => &$wartosc) {$wartosc = stripslashes($wartosc);}                    
  6.                                                 print $r['tytul'].&#092;"
  7. &#092;".$r['tresc'];
  8. }} $wynik = mysql_query (&#092;"SELECT * FROM informacje  ;\");
  9. while ($wynik && $rekord = mysql_fetch_array ($wynik)) {
  10.          foreach($r as $klucz => &$wartosc) {$wartosc = stripslashes($wartosc);}
  11. print ''.$r['tytul'].''; // tu wyswieltana jest lista linkow do informacji
  12. }
  13. ?>


i mam plik .htaccess a w nim reguły
Kod
RewriteEngine on
    RewriteRule ^info-numer-(.*).html  /informacje.php?numer=$2[L,NC,NS]


Oto moje pytanie : mam napisać jakiś paser aby podmienial droge linka informacje.php?numer=2 na ^info-numer-2.html czy może jakoś ładować wcześniej linki do tablicy i wtedy jakos podmieniac nazwy (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) brak koncepcji !

Jak ma się pare stron to ok ,samamu to mozna zmienic ,ale jezeli tych informacji na stronie ma byc 1000 to zmieniac zazwy 1000 linkow to droga ku męce .

Macje jakiś pomysł lub informacje na temat takiego problemu (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
(jeszcze raz piszę że jesłi był taki temat to może go nie zauwazyłem bo jest ich naprawdę bardzo duzo tu na forum i z góry przepraszam)


czy serio nikt mi nie odpowie ?


Ten post edytował slewin 20.05.2009, 17:13:01
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
Maxik
post
Post #2





Grupa: Zarejestrowani
Postów: 726
Pomógł: 129
Dołączył: 10.01.2008
Skąd: Gdańsk

Ostrzeżenie: (0%)
-----


Nie $2, a $1 to po pierwsze.

Na początku definiujesz sobie funkcję dla przykładu "ob_handler":
  1. <?php
  2. function ob_handler($buf){
  3. $buf = preg_replace("|informacje.php?numer=([0-9]*)|i", "info-numer-$1.html", $buf);
  4. return $buf;
  5. }
  6. ?>


Potem na początku swojej strony dodajesz ob_start("ob_handler"); , a na końcu ob_end_flush(); zamieni Ci to każde informacje.php?numer=<numer> na info-numer-<numer>.html
Go to the top of the page
+Quote Post
slewin
post
Post #3





Grupa: Zarejestrowani
Postów: 104
Pomógł: 7
Dołączył: 9.12.2008
Skąd: wroc

Ostrzeżenie: (0%)
-----


nie bangla ,chyba coś źle robię .
oto cały plik testowy informacje.php
  1. <?php
  2. ob_start("ob_handler");
  3. include('../config.php');
  4. function ob_handler($buf){
  5. $buf = preg_replace("|informacje.php?nr=([0-9]*)|i", "info-nr-$1.html", $buf);
  6. return $buf;
  7. }
  8. if ($_GET['nr']>0) {                 // wyświetlamy pojedynczego newsa
  9.        $wynik = mysql_query (&#092;"SELECT * FROM informacje WHERE nr=\".$_GET['nr'].\" ;\");
  10.        if ($wynik && $r = mysql_fetch_assoc ($wynik)) {
  11.          foreach($r as $klucz => &$wartosc) {$wartosc = stripslashes($wartosc);}                  
  12.                                                 print $r['tresc'];
  13. }
  14. }
  15. $wynik = mysql_query (&#092;"SELECT * FROM informacje \".
  16. while ($wynik && $r = mysql_fetch_array ($wynik)) {
  17.          foreach($r as $klucz => &$wartosc) {$wartosc = stripslashes($wartosc);}
  18. print "<A HREF=\"informacje.php?nr=".$r['nr']."\"> <h1>".$r['tytul']."</h1>";// index informacji
  19. }
  20. ?>

poprawiłem też plik .htaccess
Kod
RewriteEngine on
      RewriteRule ^info-nr-(.*).html  /informacje.php?nr=$1 [L,NC,NS]


Nie działa ta funkcja ;( może ją miałem gdzie indziej umieścić (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) [/url]

Ten post edytował slewin 21.05.2009, 15:12:00
Go to the top of the page
+Quote Post
Maxik
post
Post #4





Grupa: Zarejestrowani
Postów: 726
Pomógł: 129
Dołączył: 10.01.2008
Skąd: Gdańsk

Ostrzeżenie: (0%)
-----


Umieść ją przed ob_start (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
slewin
post
Post #5





Grupa: Zarejestrowani
Postów: 104
Pomógł: 7
Dołączył: 9.12.2008
Skąd: wroc

Ostrzeżenie: (0%)
-----


też nie działa (IMG:http://forum.php.pl/style_emoticons/default/sadsmiley02.gif)
-----------------------

A jeszcze mam pytanie tego typu . Czy zamiast $_GET['nr'] pobierac numer mogę pobierać nazwę lub tytul informacji (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
próbowałem zrobić pobobnie jak z numerem ( czyli pokaz informacje o numerze jakims tam po kliknieciu w link o numerze jakims tam ) ale po kliknieciu w link ciagle bylem na tej samej stronie . Więc nie wiem jak to zrobic ? Jakieś sugestię ?

Ten post edytował slewin 21.05.2009, 15:11:25
Go to the top of the page
+Quote Post
erix
post
Post #6





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Nie działa ta funkcja ;( może ją miałem gdzie indziej umieścić

Kropka w Twoim wyrażeniu oznacza dowolny znak, a nie kropkę. (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) backslashem ją poprzedź.


Cytat
ale po kliknieciu w link ciagle bylem na tej samej stronie . Więc nie wiem jak to zrobic ? Jakieś sugestię ?

A Waść jakiegokolwiek tutoriala o mod_rewrite przeczytał?
Go to the top of the page
+Quote Post
slewin
post
Post #7





Grupa: Zarejestrowani
Postów: 104
Pomógł: 7
Dołączył: 9.12.2008
Skąd: wroc

Ostrzeżenie: (0%)
-----


skopiowalem funkcje tak jak ją Maxik napisał . A poźniej testowalem ,wstawialem backslesha i usuwalem bo nie dzialala kombinowalem teraz juz wiem po co ten slesh byl wstawielm go ponownie (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) ) .


czytalem tego o tu (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) http://corz.org/serv/tricks/htaccess2.php

Wracajac do mojego drugiego zapytania to chciałbym uzyskac efekt taki informacje?tytul=jestem-gosc-co-zlamal-kosc . Przykład
Kod
if ($_GET['tytul']) {                 // wyświetlamy pojedyncza informacje
        $wynik = mysql_query ("SELECT * FROM informacje WHERE tytul=\".$_GET['tytyl'].\" ");
        if ($wynik && $r = mysql_fetch_assoc ($wynik)) {
          foreach($r as $klucz => &$wartosc) {$wartosc = stripslashes($wartosc);}                  
                                                 print $r['tresc'];
}
}
$wynik = mysql_query (\"SELECT * FROM informacje \");
while ($wynik && $r = mysql_fetch_array ($wynik)) {
          foreach($r as $klucz => &$wartosc) {$wartosc = stripslashes($wartosc);}
print "<A HREF=\"informacje.php?tytul=".$r['tytul']."\"> <h1>".$r['tytul']."</h1>";//
a w bazie mam tytuly z myslnikami oraz bez polskich znakow to taki skrypcik nie dziala .

Ten post edytował slewin 21.05.2009, 16:16:03
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 23:31