Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]zmiana adresu zmiennych
breadi
post 21.10.2016, 22:36:07
Post #1





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 9.04.2015

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


Witam na przykładowej stronie:
www.przykład.pl?magazyn
mam następujący kod
  1. <?php
  2. <form action="" method="GET">
  3. <input name="namagazynie" type="text" value="czesci"/>
  4. <input type="submit" name="wyswietl" value="Wyświetl" />
  5. </form>
  6. ?>

Po naciśnięciu "Wyświetl" przekierowuje mnie na adres:
www.przyklad.pl?magazyn?namagazynie=czesci
Jak zrobić, żeby powyższy adres był następujący:
www.przyklad.pl?magazyn&namagazynie=czesci
Go to the top of the page
+Quote Post
boro11
post 22.10.2016, 00:10:00
Post #2





Grupa: Zarejestrowani
Postów: 283
Pomógł: 11
Dołączył: 9.07.2010
Skąd: Warszawa

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


Jak w ogóle uzyskujesz taki adres www.przykład.pl?magazyn
Zrób sobie www.przyklad.pl/magazyn i wtedy Twój problem sam się rozwiąże.

Ten post edytował boro11 22.10.2016, 00:10:21
Go to the top of the page
+Quote Post
tenloginjestzaje...
post 22.10.2016, 01:26:40
Post #3





Grupa: Zarejestrowani
Postów: 358
Pomógł: 1
Dołączył: 20.07.2014

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


  1. <form method="post" action="szukaj.php">
  2. <input name="namagazynie" type="text" value="czesci"/>
  3. <input type="submit" name="wyswietl" value="Wyświetl" />
  4. </form>



W pliku szukaj.php:

  1. <?php
  2. $szukaj = $_POST['szukaj'];
  3. $find = array('?');
  4. $replace = array('&');
  5. $string = str_replace($find, $replace, $szukaj);
  6. header('Location: ./'.$string);
  7. ?>


Ps. pokaż jeszcze plik .htaccess

Ten post edytował tenloginjestzajety 22.10.2016, 02:01:12


--------------------
Nigdy nie zapominam kliknąć "pomógł". Zastosowanie na stronie [prosze nie spamuj]
Go to the top of the page
+Quote Post
breadi
post 23.10.2016, 12:51:27
Post #4





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 9.04.2015

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


Mój index.php zawiera między innymi:
  1. <a href="wszystkiemagazyny" >Wszystkie magazyny</a>
  2. <?php
  3. if(isset($_GET['wszystkiemagazyny']))
  4. {
  5. <form action="wszystkiemagazyny-" method="GET">
  6. <select name="namagazynie">
  7. <option>sprawne</option>
  8. <option>niesprawne</option>
  9. </select>
  10. <input type="submit" name="wyswietl" value="Wyświetl" />
  11. </form>
  12. if(isset($_GET['namagazynie']))
  13. {
  14. $namagazynie=$_GET['namagazynie'];
  15. $where=" WHERE namagazynie='$namagazynie'";}
  16.  
  17. $pdo->query("SELECT * FROM magazyn ".$where);
  18. foreach ($pdo as $wyniki)
  19. {
  20. echo $wyniki[0].' '.$wyniki[1].' '.$wyniki[3].'<br />';
  21. }
  22. }
  23. ?>


.htaccess:

  1. Options FollowSymLinks
  2. RewriteEngine On
  3. RewriteRule ^wszystkiemagazyny index.php?wszystkiemagazyny [L]
  4. RewriteRule ^wszystkiemagazyny-namagazynie-([^-]+)$ index.php?wszystkiemagazyny&namagazynie=$1 [L]


Problem w tym, że normalnie po naciśnięciu w wyświetl przekierowuje na adres index.php?wszystkiemagazyny?namagazynie=sprawne
a powinno być przekierowane z adresu wszystkiemagazyny-namagazynie-sprawne na index.php?wszystkiemagazyny&namagazynie=sprawne

Zrobiłem tak, do pliku index dodałem:
  1. <?php
  2. $szukaj=$_SERVER['REQUEST_URI']; //pobiera pełny adres strony
  3. $czy=strpos($szukaj, "?"); //sprawdza czy adres zawiera "?"
  4. if($czy==TRUE)
  5. {
  6. $find = array('?');
  7. $replace = array('&');
  8. $szukaj=str_replace("/logowanie/","",$szukaj); //zamiana "?" na "&"
  9. $string = str_replace($find, $replace, $szukaj);
  10. header('Location: http://przyklad.pl/'.$.../przekierowanie na nowo zamieniony adres
  11. }
  12. ?>
  13. <a href="wszystkiemagazyny" >Wszystkie magazyny</a>
  14. <?php
  15. if(isset($_GET['wszystkiemagazyny']))
  16. {
  17. <form action="wszystkiemagazyny-" method="GET">
  18. <select name="namagazynie">
  19. <option>sprawne</option>
  20. <option>niesprawne</option>
  21. </select>
  22. <input type="submit" name="wyswietl" value="Wyświetl" />
  23. </form>
  24. if(isset($_GET['namagazynie']))
  25. {
  26. $namagazynie=$_GET['namagazynie'];
  27. $where=" WHERE namagazynie='$namagazynie'";}
  28.  
  29. $pdo->query("SELECT * FROM magazyn ".$where);
  30. foreach ($pdo as $wyniki)
  31. {
  32. echo $wyniki[0].' '.$wyniki[1].' '.$wyniki[3].'<br />';
  33. }
  34. }
  35. ?>


i .htaccess:
  1. Options FollowSymLinks
  2. RewriteEngine On
  3. RewriteRule ^wszystkiemagazyny index.php?wszystkiemagazyny [L]
  4. RewriteRule ^wszystkiemagazyny([^-]+)namagazynie-([^-]+)$ index.php?wszystkiemagazyny=$1&namagazynie=$2 [L]


Jak dla mnie działa, dzieki tenloginjestzajety, pomogłeś mi.

Ten post edytował breadi 23.10.2016, 13:04:38
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 20.06.2025 - 01:08