Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]zmiana adresu zmiennych
Forum PHP.pl > Forum > Przedszkole
breadi
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
boro11
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.
tenloginjestzajety
  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
breadi
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.
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.