Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Funkcja przetwarzająca zmienne URLi z różnych linków
Forum PHP.pl > Forum > Przedszkole
Robert3d
Witam męczę się z tym już kilka dni było kilka diametralnie różnych wersji żadna nie działała sad.gif Próbuję zrobić funkcję odpowiedzialną za poprawne przetwarzanie zmiennych pochodzących z URL-i
np jak kliknę 10 stronę wyników i zmienie język to by było ?lang=pl&od=100
Problemy na jakie trafiam są przeróżne od zawsze aktywnego tylko jednej zmiennej przez brak zmiany tej zmiennej bo calkowite wymieszanie zmiennych aż przez wiecznie zaznaczony inny jezyk choć domyślny jest inny...

ostatniej wersji nie skończyłem bo wyczerpałem pomysły sad.gif
Ten projekt miał z założenia pobierać URL dzielić go i usuwać z niego gdyby jakaś nazwa typu 'lang' już istniała i dodawać to co ma w linku. ale już nie wiem ...
Proszę więc was o pomoc sad.gif

kawałek powinien zadziałać bo pisany osobno.
  1. <?php
  2. // do URL DOPISAŁEM KILKA PRZYKLADOWYCH ZMIENNYCH DLA TESTOW W TYM LANG=PL
  3. $ZEW = 'lang=DU'; // bedzie pochodzic od linku.
  4. $ZEW = explode('=', $ZEW);
  5. print_r($ZEW); // wypisanie czy dobrze rozdzielilo $ZEW
  6. $zmienna = explode('?', $_SERVER['REQUEST_URI']); // rozdzielanie az do = dla URLA
  7. $zmienna2 = explode('&', $zmienna[1]);
  8. $liczba = count($zmienna2);
  9. $i=0;
  10. echo '<br>';
  11. while($i < $liczba){
  12. $cos[$i] = explode('=',$zmienna2[$i++]);
  13. echo'<br>';
  14. } // koniec rozdzielania az do '=' dane w tabeli 2 wym. $cos
  15. $i=0;
  16. while(count($cos) >= $cos[$i]){ //kilka prob nieudanego przepisania do normalnej postaci url WYSIADAM... array_key_exists();:(
  17.  
  18. $i++;
  19. }
  20. print_r($cos);
  21.  
  22. echo // tu powinna pojawic sie resztka linki ?lang=10 itd
  23. ?>
mortus
Zmienne w url-ach to również te z tablicy $_GET i nie ma potrzeby rozbierać całego $_SERVER['REQUEST_URI'] na części pierwsze.
  1. // URL: <a href="http://www.moja-strona.com/index.php?lang=pl" target="_blank">http://www.moja-strona.com/index.php?lang=pl</a>
  2. // PHP:
  3. $lang = $_GET['lang'];
toaspzoo
Jak kolega wyżej, zastosuj $_GET['zmienna'] REQUEST_URI służy do czego innego.

PS. Taki post powinien iść do moderacji...
Robert3d
PS. Taki post powinien iść do moderacji... questionmark.gif dlaczego questionmark.gif

z get juz próbowałem tez mi nie wyszło ogólnie ja już kombinuję jak mogę sad.gif
konole
Kod
<?php
print_r($_GET);
?>

Po zawodach...
mortus
Naprawdę nie rozumiem w czym problem:
  1. // pobieramy przekazane wartości lub ustawiamy domyślne
  2. if(isset($_GET['lang']) && $_GET['lang'] != '') {
  3. $lang = $_GET['lang'];
  4. } else {
  5. $lang = 'pl';
  6. }
  7. if(isset($_GET['od']) && $_GET['od'] != '' && is_numeric($_GET['od'])) {
  8. $od = $_GET['od'];
  9. } else {
  10. $od = 0;
  11. }
  12.  
  13. // generowanie linków do 5 stron w aktualnym języku
  14. for($i = 0; $i < 5; $i++) {
  15. echo '<a href="?lang='.$lang.'&od='.($i*10).'>'.$i+1.'</a>;
  16. }

Z tym, że język zmienia się niezwykle rzadko i raczej nie na etapie przeglądania wyników.
Robert3d
Nie o to mi chodziło niestety
Bo nazwy zmiennych wpisane są na sztywno w link a staram się zrobić tak by generowały się dynamicznie a więc link mógł by przykładowo wyglądać tak.

  1. <a href="test3.php<?php urlGet('lang=EN') ?>">Tutaj</a >
konole
Cytat(Robert3d @ 8.06.2011, 16:59:41 ) *
Nie o to mi chodziło niestety
Bo nazwy zmiennych wpisane są na sztywno w link a staram się zrobić tak by generowały się dynamicznie a więc link mógł by przykładowo wyglądać tak.

  1. <a href="test3.php<?php urlGet('lang=EN') ?>">Tutaj</a >

No ale pokazałem ci przecież. Zmienna $_GET zwraca ci tablicę aktualnie użytych parametrów.
potreb
Zainteresuj się funkcją: parse_url. I jeszcze kod:
Pobieram adres
http://strona.pl/panel/page.php?p=home&...d=4&lang=ua
  1. unset($_GET['lang']);
  2. print_r($_GET);


No i nie mam lang.
Robert3d
Hmm troszkę porzucałem sprzętem po ścianach i jakimś nie zrozumiałym całkiem przypadkowym i niewytłumaczalnym dla ludzkiego umysłu napisałem coś takiego


  1. <?php
  2.  
  3. $_SESSION['ulre'] = array_merge( (array) $_SESSION['ulre'],$_GET);
  4. ?>
  5.  
  6. <a href="test3.php?lang=EN">Tutaj</a >
  7. <a href="test3.php?lang=PL">Tutaj</a >
  8. <a href="test3.php?I=1">Liczba</a >
  9. <a href="test3.php?I=2">Liczba</a >
  10.  
  11. <?php
  12. echo '<br>session - ';
  13. print_r($_SESSION['ulre']);
  14. echo '<br>get - ';
  15. print_r($_GET);
  16. ?>
  17.  
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.