Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Wyświetlanie dwuwyrazowe
Kaarpiik
post
Post #1





Grupa: Zarejestrowani
Postów: 59
Pomógł: 1
Dołączył: 20.01.2008
Skąd: Bełchatów

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


  1. if($_GET['users'] == 'pokaz'){
  2. baza();
  3. $query = "SELECT * FROM users ORDER BY userid";
  4. $result = mysql_query($query);
  5.  
  6. while($row=mysql_fetch_array($result)){
  7. echo '<a href="/pokoj.php?pokoj=wyswietl&login='.$row['login'].'">'.$row['login'].'</a>';
  8. echo "<br>";
  9. }
  10. }

Skrypt ten pobiera informacje z bazy danych i wyświetla zarejestrowanych użytkowników tworząc jednocześnie link do jego pokoju (panelu usera)

  1. if($_GET['pokoj'] == 'wyswietl' && ($_GET['login'])){
  2. baza();
  3. $login = $_GET['login'];
  4. $query = "SELECT * FROM users WHERE login = '$login'";
  5. $result = mysql_query($query);
  6. echo $login;

Ten natomiast wyświetla pokój tego usera. Wszystko jest pięknie i ładnie. Wyświetla także dwuwyrazowe nazwy użytkowników. W pliku .htaccess mam następujący wpis:

RewriteRule ^pokoj/([a-zA-Z]+)$ pokoj.php?pokoj=wyswietl&login=$1 [L]

Zatem url powinien wyglądać tak: localhost/pokoj/login

zamieniam w pierwszym skrypcie

  1. echo '<a href="/pokoj.php?pokoj=wyswietl&login='.$row['login'].'">'.$row['login'].'</a>';

na
  1. echo '<a href="/pokoj/'.$row['login'].'">'.$row['login'].'</a>';


I tutaj się pojawia problem. Nie wyświetla mi loginu gdy on składa się z dwóch wyrazów. Próbowałem również z urlencode:

  1. echo '<a href="/pokoj.php?pokoj=wyswietl&login='.urlencode($row['login']).'">'.$row['login'].'</a>';

RewriteRule ^pokoj/([a-zA-Z]+)$ pokoj.php?pokoj=wyswietl&login=urlencode($1) [L]

Niestety nie pomaga. Co może być przyczyną i jakie jest rozwiązanie?

Odświeżam ponieważ nie mogę ruszyć z miejsca (IMG:style_emoticons/default/smile.gif)

Cała noc bez odpowiedzi... Odświeżam

Ten post edytował Kaarpiik 28.04.2010, 18:16:21
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Cała noc bez odpowiedzi...
A ty w nocy spales czy siedziales całą noc przed kompem?

([a-zA-Z]+) - twoje wyrażenie regularne nie łyka spacji. Trudno więc by lykało login dwuwyrazowy. Chyba wiesz jak do tego dodac spacje?
Go to the top of the page
+Quote Post
Kaarpiik
post
Post #3





Grupa: Zarejestrowani
Postów: 59
Pomógł: 1
Dołączył: 20.01.2008
Skąd: Bełchatów

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


Cytat(nospor @ 29.04.2010, 08:48:50 ) *
A ty w nocy spales czy siedziales całą noc przed kompem?


Nie, poprostu całą noc nikt odpowiedzi nie dał (IMG:style_emoticons/default/smile.gif)

Cytat(nospor @ 29.04.2010, 08:48:50 ) *
([a-zA-Z]+) - twoje wyrażenie regularne nie łyka spacji. Trudno więc by lykało login dwuwyrazowy. Chyba wiesz jak do tego dodac spacje?


Właśnie o tym czytam ale nie mogę znaleść rozwiązania.

Ten post edytował Kaarpiik 29.04.2010, 08:05:06
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Nie, poprostu całą noc nikt odpowiedzi nie da
No wlasnie. Ty spales to i wiekszosc ludzi spala. trudno wiec by dali ci odpowiedź przez noc - do tego zmierzałem.

Jak juz mowilem - masz dodac spacje.
([a-zA-Z ]+)
Widzisz, dodałem spację. Tyle (IMG:style_emoticons/default/smile.gif)

ps: jakbys nie widzial: spacja jest między Z a ]
Go to the top of the page
+Quote Post
Kaarpiik
post
Post #5





Grupa: Zarejestrowani
Postów: 59
Pomógł: 1
Dołączył: 20.01.2008
Skąd: Bełchatów

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


RewriteRule ^pokoj/([a-zA-Z]+)$ pokoj.php?pokoj=wyswietl&login=$1 [L]

Próbuje na wszystkie sposoby
( [a-zA-Z]+)
([ a-zA-Z]+)
([a-z A-Z]+)
([a-zA-Z] +)

Błąd zawsze ten sam: "Wystąpił wewnętrzny błąd serwera. Prosimy później spróbować ponownie."

p.s. tak jak Ty napisałeś też próbowałem (IMG:style_emoticons/default/smile.gif)

zmieniłem kod na:
  1. while($row=mysql_fetch_array($result)){
  2. $str = strtolower($row['login']);
  3. echo '<a href="/pokoj/'.$str.'">'.$row['login'].'</a>';
  4. echo "<br>";
  5. }


Teraz w linku wyświetla tylko małe litery. Znów kombinowałem w htaccess ale bez rezultatów

RewriteRule ^pokoj/([a-z ]+)$ pokoj.php?pokoj=wyswietl&login=$1 [L]

Jednak wolałbym żeby były duże litery.

Ten post edytował Kaarpiik 29.04.2010, 08:30:54
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




([a-zA-Z\s]+)
Go to the top of the page
+Quote Post
Kaarpiik
post
Post #7





Grupa: Zarejestrowani
Postów: 59
Pomógł: 1
Dołączył: 20.01.2008
Skąd: Bełchatów

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


Dziękuje (IMG:style_emoticons/default/smile.gif)
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: 25.08.2025 - 04:14