Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem 3 różne odsłony graficzne strony.
Forum PHP.pl > Forum > PHP
Kryszic
Witam mam strone sklepu która otwiera się w różnych odsłonach graficznych które przełączamny sobie przyciskami na strone. Jest to strona sklepu. Każda z tych odsłon przeładowuje mi inny adres np. przyciski na stronie: biały zielony niebieski i po wciśnięciu danego laduje mi się bialy.pl lub zielony.pl lub niebieski.pl na stronie zmienia sie grafika strony dane sa te same i tresci. I teraz na stronie posiadam koszyk zakupów. Jeśli jestem na odsłonie np bialej i dodam do koszyka produkty to normalnie się dodają. Jeśli podczas zapełnionego koszyka przeje na druga odsłone np zielony to wówczas koszyk jest pusty a powinien być zapełniony tymi produktami które zapełniłem na odsłonei białej. Jeśli spowrotem wróce na odsłone białą to w koszyku są te produkty. Plik odpowiedzialny za przełączanie odpowiednich odsłon strony wygląda następująco:
  1. <?
  2. $host=$_SERVER['HTTP_HOST'];
  3. if (strpos($host, 'bialy') === 0) $wer=1;
  4. if (strpos($host, 'www.bialy') === 0) $wer=1;
  5. if (strpos($host, 'zielony') === 0) $wer=2;
  6. if (strpos($host, 'www.zielony') === 0) $wer=2;
  7. if (strpos($host, 'niebieski') === 0) $wer=3;
  8. if (strpos($host, 'www.niebieski') === 0) $wer=3;
  9.  
  10.  
  11. if ($wer==2) //if ($host=='zielony.com.pl')
  12. {
  13.  ?>
  14.  <link rel="stylesheet" href="dane/fe/style.css" type="text/css">
  15.  <?
  16.  $dlink='dane/fe/';
  17.  $warunek="zielony='1'";
  18. }
  19. elseif($wer==3) //elseif($host=='niebieski.pl')
  20. {
  21.  ?>
  22.  <link rel="stylesheet" href="dane/gu/style.css" type="text/css">
  23.  <?
  24.  $dlink='dane/gu/';
  25.  $warunek="niebieski='1'";
  26. }
  27. else
  28. {
  29.  ?>
  30.  <link rel="stylesheet" href="dane/ve/style.css" type="text/css">
  31.  <?
  32.  $dlink='dane/ve/';
  33.  $warunek="bialy='1'";
  34. }
  35.  
  36. ?>



fragmenty koszsyka z pliku index.php:

  1. <?php
  2. function get_request_variable($name, $default_value)
  3. {
  4.  
  5. if (!isset($_REQUEST[$name])) return $default_value;
  6. return $_REQUEST[$name];
  7. }
  8.  
  9. $id = get_request_variable('id', 0);
  10. $idp = get_request_variable('idp', 0);
  11. $status = get_request_variable('status', 0);
  12. $kategoria = get_request_variable('kategoria', 0);
  13. $podkat = get_request_variable('podkat', 0);
  14. $slowo = get_request_variable('slowo', 0);
  15. $producent = get_request_variable('producent', 0);
  16.  
  17. $dodaj = get_request_variable('dodaj', 0);
  18. $usun = get_request_variable('usun', 0);
  19. $zmien = get_request_variable('zmien', 0);
  20. $first = get_request_variable('first', 0);
  21.  
  22. $rozmiar = get_request_variable('rozmiar', 0);
  23. $kolor = get_request_variable('kolor', 0);
  24. $val = get_request_variable('val', 1);
  25.  
  26. $koszyk=$_SESSION['koszyk'];
  27.  
  28. class koszyk 
  29. { 
  30. /* tablica asocjacyjna zawierajaca stan koszyka */ 
  31. /* klucz, to wartosc id produktu, wartosc to ilosc elementow */ 
  32. var $zawartosc; 
  33.  
  34. function dodaj($element, $ilosc) 
  35. { 
  36. $this->zawartosc[$element] += $ilosc; 
  37. } 
  38.  
  39. function usun($element, $ilosc) 
  40. { 
  41. if ($this->zawartosc[$element] > $ilosc) 
  42. $this->zawartosc[$element] -= $ilosc; 
  43. else 
  44. unset($this->zawartosc[$element]); 
  45. } 
  46.  
  47. function zmien($element, $ilosc) 
  48. { 
  49. $this->zawartosc[$element] = $ilosc; 
  50. } 
  51.  
  52. function stan() 
  53. { 
  54. return $this->zawartosc; 
  55. } 
  56. } 
  57.  
  58. if (!$koszyk) 
  59. $koszyk = new koszyk; 
  60.  
  61. $dodaj1=$dodaj;
  62. $dodaj1.='_'.$kolor;
  63. $dodaj1.='_'.$rozmiar;
  64.  
  65. if ($dodaj) 
  66. $koszyk->dodaj($dodaj1, 1); //dodaj($element, $ilosc) - dodaje $ilosc $elementow do koszyka
  67.  
  68. $usun1=$usun;
  69. $usun1.='_'.$kolor;
  70. $usun1.='_'.$rozmiar;
  71.  
  72. if ($usun) 
  73. $koszyk->usun($usun1, $val); //usun($element, $ilosc) - usuwa $ilosc $elementow z koszyka
  74.  
  75. $zmien1=$zmien;
  76. $zmien1.='_'.$kolor;
  77. $zmien1.='_'.$rozmiar;
  78.  
  79. if ($zmien) 
  80. $koszyk->zmien($zmien1, $val); //usun($element, $ilosc) - usuwa $ilosc $elementow z koszyka
  81.  
  82. //session_register("koszyk");
  83. $_SESSION['koszyk'] = $koszyk;
  84. $stan = $koszyk->stan(); //zwraca zawartosc w postaci hasza
  85.  
  86. ?>


Z góry dziękuję za wszystkie wskazówki. Po mojemy to chodzi o sesje ze nie przekazują się między przeładowaniami odsłon.
kosmowariat
koszyk jest przechowywany w sesji. powiedzmy że jesteś na stronie bialy.pl i zapełniasz koszyk -> zapisujesz jako zmienna sesji. przechodzisz na niebieski.pl i juz tam nie masz dostępu do tych zmiennych sesji więc koszyk jest pusty biggrin.gif

sugestie :
- korzystamy z szablonów (np ze smarty)
lub
- tworzymy na zasadzie strona.pl/kolor/
lub
- zapisujemy koszyk do bazy zamiast do sesji
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.