Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Koszyk w php ale jak skorzystać?
Forum PHP.pl > Forum > Gotowe rozwiązania
kofaniutki_misio
Mam gotowy skrypt ale nie umiem go wykorzystać. Nie znam się na php dobrze, jestem bardzo początkujący.

Chce zrobic koszyk sklepu internetowego, znalazłem darmowy skrypt ale nie umiem go "ożywić".

Czy ktoś może napisać jak się go używa ? przykladowo jak dodac coś do koszyka, jak go wyświetlić itd.

  1. <?php
  2. /*
  3. Basket class for e-commerce purpose
  4.  
  5. Version : 0.5
  6. Type:Class
  7. Category:Shopping Carts
  8. License: GNU General Public License
  9.  
  10. Description: This class provides methods for add, remove, update and remove all 
    items
  11. from a basket. The basket works with a session cookie, saving the product ID
  12. and quantity in an array for simple accesing it.
  13. There's an example in this category... called "Basket example using basket class"
  14. */
  15.  
  16. class basket {
  17. var $items;
  18. var $empty;
  19.  
  20. function basket()
  21. {
  22.   global $cart;
  23.   if(isset($cart))
  24.   {
  25.    $this->items=unserialize(stripslashes($cart));
  26.    if ( gettype($this->items) == "array" )
  27.    {
  28.     $this->empty=false;
  29.    }
  30.    else
  31.     $this->empty=true;
  32.   }
  33.   else
  34.    $this->empty=true;
  35. }
  36.  
  37.  
  38. function additem($id, $name, $count, $prix)
  39. {
  40.  
  41. if ($this->items[$id][1] > 0 )
  42. {
  43.   $this->items[$id][1]+=$count;
  44. }
  45. else
  46. {
  47.   $this->items[$id][0]=$name;
  48.   $this->items[$id][1]=$count;
  49.   $this->items[$id][2]=$prix;
  50.   $this->items[$id][3]=stripslashes($name);
  51. }
  52. setcookie("cart",serialize($this->items),0,"/");
  53. $this->empty=false;
  54. }
  55.  
  56. function removeitem($id) {
  57. $tmp=""; // Don't forget to initialize !
  58. if(!$this->empty)  {
  59.   while(list($x,$y)=each($this->items)){
  60.    if($x!=$id) $tmp[$x]=$y;
  61.   };
  62. };
  63. $this->items=$tmp; // Or this will have no effect !
  64. setcookie("cart",serialize($this->items),0,"/");
  65. if(count($this->items)==0) $this->empty=true;
  66. }
  67.  
  68. function resetArray($basket)
  69. {
  70. reset($basket->items);
  71. }
  72.  
  73. function countItems($basket)
  74. {
  75. if(!$basket->empty)
  76. {
  77.   while ( list($x,$y,) = each($basket->items) )
  78.   {
  79.    $ant++;
  80.   }
  81. }
  82. return $ant;
  83. }
  84. function sumItems($basket)
  85. {
  86. if(!$basket->empty)
  87. {
  88.   while ( list($x,$y,) = each($basket->items) )
  89.   {
  90.    $ant = $ant + $y[1];
  91.   }
  92. }
  93. return $ant;
  94. }
  95. function printItems($b)
  96. {
  97. if(!$b->empty)
  98. {
  99.   while ( list($x,$y,) = each($b->items) )
  100.   {
  101.    echo "$x     ".$y[0]."   ".$y[1]."  <a href="$PHP_SELF?action=R&id=$x">Remove</a><br>";
  102.   }
  103. }
  104. }
  105. function updateitem($id,$count){
  106. $this->items[$id][1]=$count;
  107. setcookie("cart",serialize($this->items),0,"/");
  108. }
  109.  
  110. function removeall(){
  111. setcookie("cart",NULL,0,"/");
  112. $this->empty=true;
  113. }
  114.  
  115.  
  116. }
  117.  
  118.  
  119. ?>
  120.  
  121. </body>
  122. </html>


z góry dziękuje. Jeśli ktoś wie gdzie można sciągnać bardziej opisowy koszyk, wraż z plikami prosze o linka.
NuLL
Napewno do klasy byl dolaczony albo manual albo jakies readme.

BTW - Gratuluje nicku...

Ja tylko to umieszcze na właściwszym forum
No i również dołączam do gratulacji. Taki nick chcąc nie chcąc nasuwa pewne wyobrażnie o właścicielu, ale Twój wybór
---
nospor
kofaniutki_misio
Autor tego skryptu zakładał ze osoba która go pobierze będzie potrafila się nim posłużyć. Niestety Ja niepotrafię. Zostawcie nicka w spokoju nie o niego tu chodzi. Zróbcie to dla mnie albo dajcie namiary na jakies tutoriale czy cuś zebym mogł z nich sie nauczyć rozgryść ten skrypt.
NuLL
To nie jest skrypt tylko klasa - klasy sa przygotowywane dla ludzi ktorzy umieja programowac w php i tyle. Jesli sie uczyc to najpierw proponuje poczytac tutoriale dla poczatkujacych, co niecos popisac strkturalnie a potem sie zabierac za klasy.

A do nicka zesmy sie przyczepili bo zwraca na siebie uwage.

Pozatym prosze do mnie wyslac propozycje innego nicku jakoze ten nick podchodzi pod wulgaryzm - chodzi tu o pierwsze slowo. Jesli kolego nie podesle mi propozycji zablokuje postowanie az do czasu wyslania nowego.
kofaniutki_misio
W ogóle niejesteście pomocni? Sam doszedłem jak się jej używa, TEJ klasy?!

  1. <?php
  2. $basket = new basket;
  3. $basket->additem("1", "1", "1", "1");
  4. $basket->additem("2", "1", "1", "1");
  5. $basket->printItems($basket);
  6. ?>


właściwie to juz teraz wiem, ze wystarczyło dodać $basket-> przed wybrana funkcją na chlopski rozum. Nikt z was NIC mi nie pomógł. Wielkie dzieki he
jurobg
Chetnie tez dowiedzialbym sie cos wiecej o wykorzystaniu tego koszyka. Nie wiem tez dlaczego pojawia mi sie :

Warning: Cannot modify header information - headers already sent by (output started at /home/.../koszyk.inc:117) in /home/.../koszyk.inc on line 50
dr_bonzo
ajnsztajnie: rusz glowa i wpisz komunikat bledu w wyszukiwarke.
jurobg
Mniejsza z informacją - skoro to forum liczylem ze otrzymam odpowiedz dlaczego tak sie dzieje a nie gdzie szukac tego. Przyzwyczailem sie juz raczej do tego ze zwykle ci co juz wiedza kaza szukac a jak nie wiedzieli to prosili o pomoc jak to zrobic bo znalezc nie moga. Niewazne - poradzilem sobie.

Ponawiam pytanie.
Jezeli ktos uzywal tego skryptu to czy udalo mu sie go sprawnie zastosowac ?

Mam cos takiego:

  1. $basket = new basket;
  2. switch($action){
  3. case "A":
  4. $basket->additem($id, $name, $q, $cena); //function additem($id, $name, $count, $prix)
  5. break;
  6. case "R":
  7. $basket->removeitem($id);
  8. break;
  9. case "D":
  10. $basket->removeall();
  11. break;
  12. }
  13.  
  14. ?>
  15. <body text="#000080" link="#0000FF" vlink="#800080" alink="#FF0000" bgcolor="#FFFFFF">
  16. <pre>
  17. ID Towar Cena
  18. 23 Notebook  3500 <a href="<? echo $PHP_SELF; ?>?action=A&id=23&q=1&name=Notebook&cena=3500">Dodaj</a>
  19. 10 Pad 10 <a href="<? echo $PHP_SELF; ?>?action=A&id=10&q=1&name=Pad&cena=10">Dodaj</a>
  20. <a href="<? echo $PHP_SELF; ?>?action=D">Usun wszystko</a>
  21. </pre>
  22. <pre>
  23. <?
  24.  
  25. if(!$basket->empty) {
  26. echo "Zawartosc koszyka: <br>ID ITEM Q<br>";
  27. $basket->printItems($basket);
  28. }
  29. ?></pre>


Tu czytalem ze rozwiazanie sie kreowalo ale niewiele z tego rozumiem:

http://www.prog.hu/tudastar/37693/PHP5%20basket.html
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-2024 Invision Power Services, Inc.