Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Problem z odczytem $_GET ?
Forum PHP.pl > Forum > Przedszkole
shpaque
Witam mam coś takiego, co przenosi dane GETEM do następnej strony:

  1. <?
  2. if ($_SERVER['REQUEST_METHOD'] == 'POST')
  3. {
  4. $action = isset($_POST['action']) ? $_POST['action'] : '';
  5. if ($action == 'search')
  6. {
  7. $fromcountry = $_POST['from-country'];
  8. $fromland = $_POST['from-land'];
  9. $tocountry = $_POST['to-country'];
  10. $toland = $_POST['to-land'];
  11. $fromday = $_POST['from-day'];
  12. $frompowiat = $_POST['from-powiat-'.$fromland.''];
  13. $topowiat = $_POST['to-powiat-'.$toland.''];
  14.  
  15. if (($fromcountry == 'PL') || ($tocountry == 'PL'))
  16. {
  17. header('Location: ./search.php?from='.$fromcountry.'+'.$fromland.'+'.$frompowiat.'&to='.$tocountry.'+'.$toland.'+'.$topowiat.'&day='.$fromday.'');
  18. }
  19. else
  20. {
  21. header('Location: ./search.php?from='.$fromcountry.'&to='.$tocountry.'&day='.$fromday.'');
  22. }
  23. }
  24. }
  25. ?>


na kolejnej stronie "search.php" wszystko jest odczytywane ok niby, bo:

  1. <?
  2.  
  3. $from = $_GET['from'];
  4. $to = $_GET['to'];
  5. $day = $_GET['day'];
  6.  
  7. list($fromcountry, $fromland, $fromcity) = split(' ', $from);
  8. list($tocountry, $toland, $tocity) = split(' ', $to);
  9.  
  10. if ($fromcountry == 'PL') {$fromcountry = 'Polski';}
  11. else if ($fromcountry == 'DE') {$fromcountry = 'Niemiec';}
  12. else if ($fromcountry == 'BE') {$fromcountry = 'Belgii';}
  13. else if ($fromcountry == 'NL') {$fromcountry = 'Holandii';}
  14. else if ($fromcountry == 'DK') {$fromcountry = 'Danii';}
  15. else if ($fromcountry == 'CH') {$fromcountry = 'Szwajcarii';}
  16.  
  17. if ($tocountry == 'PL') {$tocountry = 'Polski';}
  18. else if ($tocountry == 'DE') {$tocountry = 'Niemiec';}
  19. else if ($tocountry == 'BE') {$tocountry = 'Belgii';}
  20. else if ($tocountry == 'NL') {$tocountry = 'Holandii';}
  21. else if ($tocountry == 'DK') {$tocountry = 'Danii';}
  22. else if ($tocountry == 'CH') {$tocountry = 'Szwajcarii';}
  23.  
  24. if ($day == 'MON') {$day = 'poniedziałek';}
  25. else if ($day == 'TUE') {$day = 'wtorek';}
  26. else if ($day == 'WED') {$day = 'środę';}
  27. else if ($day == 'THU') {$day = 'czwartek';}
  28. else if ($day == 'FRI') {$day = 'piątek';}
  29. else if ($day == 'SAT') {$day = 'sobotę';}
  30. else if ($day == 'SUN') {$day = 'niedzielę';}
  31. ?>


i niżej:

  1. <table style="width:940px;">
  2. <td align="center">
  3. <span style="color:#C0C0C0;font-size:22px;font-family:EtelkaLig;font-weight:normal;font-style:normal;text-decoration:none;">
  4. Przejazd z:
  5. </span>
  6. <span style="color:#FFFFFF;font-size:22px;font-family:EtelkaReg;font-weight:normal;font-style:normal;text-decoration:none;">
  7. <?
  8. echo $fromcountry;
  9. if ($fromcountry == "PL")
  10. {
  11. echo " ($fromcity / $fromland)";
  12. }
  13. ?>
  14. </span>
  15. <span style="color:#C0C0C0;font-size:22px;font-family:EtelkaLig;font-weight:normal;font-style:normal;text-decoration:none;">
  16. do:
  17. </span>
  18. <span style="color:#FFFFFF;font-size:22px;font-family:EtelkaReg;font-weight:normal;font-style:normal;text-decoration:none;">
  19. <?
  20. echo $tocountry;
  21. if ($tocountry == "PL")
  22. {
  23. echo " ($tocity / $toland)";
  24. }
  25. ?>
  26. </span>
  27. <span style="color:#C0C0C0;font-size:22px;font-family:EtelkaLig;font-weight:normal;font-style:normal;text-decoration:none;">
  28. <?
  29. if ($day == 'wtorek') {echo "we";}
  30. else {echo "w";}
  31. ?>
  32. </span>
  33. <span style="color:#FFFFFF;font-size:22px;font-family:EtelkaReg;font-weight:normal;font-style:normal;text-decoration:none;">
  34. <? echo " $day"; ?>
  35. </span>
  36. </td>
  37. </table>


problem polega na tym, że jeśli w powyższym warunku if $tocountry lub $fromcountry wystąpi PL - wtedy dodawać ma kolejny wyraz powiatu i wojewodztwa - w innym przypadku nie,
i teraz jak dam ...== "PL", wtedy nie pokazuje nic, jak dam ="PL" pokazują mi się ZAWSZE nawiasy - kiedy nie ma PL to puste...
nospor
Cytat
jak dam ="PL" pokazują mi się ZAWSZE nawiasy

Bo = to jest przypisanie a nie porownanie.... Powinienies takie rzeczy już znać.

Ciezko dac przed IFem:
var_dump($tocountry);
by sprawdzic co DOKLADNIE zawiera ta zmienna? Smiem twierdzic, ze jest to szybsze niz zakladanie tematu na forum
shpaque
to może tak - i jeszcze szybciej będzie

http://www.eprzejazdy.pl/

bo to co widzę w pasku, czyli GET - wysyła dobrze wszystko, to co widzę w wynikach wyszukiwania w pasku kontrolnym - też jest ok, to co nie działa jako jedyne to własnie opcja przy PL
nospor
A teraz skup sie jeszcze raz i sprobuj przeczytac to co ponizej ze zrozumieniem. Wiem, ze to jest trudne, nie kazde dziecko da rade, ale sprobuj:
Cytat
Ciezko dac przed IFem:
var_dump($tocountry);
by sprawdzic co DOKLADNIE zawiera ta zmienna?
shpaque
@edit

ok już wiem co było nie tak - nie zauważyłem, że zmienna z PL zmieni wartość na "Polski"
nospor
Zauwazylbys, jakbys zrobil od razu var_dump jak prosilem. Tyle czasu na forum, bierzesz sie za pisanie jakis tam aplikacji, to tak banalne rzeczy jak proste debugowaie kodu powinienes już znac od 10 lat.
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.