Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] cookies, Dodawanie, oraz usuwanie
integer000
post
Post #1





Grupa: Zarejestrowani
Postów: 129
Pomógł: 0
Dołączył: 24.09.2005

Ostrzeżenie: (30%)
XX---


Napisałem coś takiego:
  1. <?php
  2.  
  3. if(!isset($action)) {
  4. $action="koszyk";
  5. }
  6. switch ($action) {
  7. case "koszyk":
  8. $wva = $_COOKIE["TestCookie"];
  9. $data=explode("*|*", $wva);
  10.  
  11. $licz=0;
  12.  
  13. while($data[$licz]!=''){
  14.  
  15. $data2 = explode("}^{", $data[$licz]);
  16. $ccc=0;
  17. $ccc++;
  18. $idproduct = $licz + $ccc;
  19.  
  20. echo"<table border=\"1\" cellspacing=\"0\" cellpadding=\"0\" width=\"600px\">
  21. <tr>
  22. <td>$data2[0]</td> <td>$data2[1]</td> <td>$data2[2]</td>
  23. </tr>
  24. <tr>
  25. <td colspan=\"3\"><a href=\"2.php?action=del&idproduct=$idproduct\">usuń</a></td>
  26. </tr>
  27. </table>";
  28. echo '<br>';
  29.  
  30. $licz++;
  31. };
  32.  
  33. break;
  34. case"del":
  35.  
  36. //echo $idproduct;
  37.  
  38. break;
  39.  
  40.  
  41. }
  42.  
  43. echo'<br><br><br><br><br><br><br><br><br><br><br><br><br><br>';
  44. echo'<a href="1.php">____________</a>';
  45. echo 'jest '.$licz;
  46.  
  47. ?>


Na innej stronie dodaje sobie dane do COOKIE w postaci:
produkt}^{cena}^{ile*|*drugiprodukt}^{drugacena}^{ile*|*3produkt}^{3cena}^{ileto
waru*|*
Skrypt ten odczytuje te dane i umieszcza je w tabelki, tylko teraz niewiem jak mogę usunąć którąś z tabelek a wszystko pozostałe zapisać spowrotem do COOKIE.
Innymi słowy jak usunąć jeden produkt z "koszyka" a reszta zapisać spowrotem do cookie ?
W miejsca znaków zapytania trzeba stworzyć coś co brało by pod uwagę który produkt chce się usunąć ( $idproduct), i usuwało go...


Kod skryptu napisałem w tagach HTML, dlatego że w tagach php był na tyle nieczytelny że nieszło z niego nic zrobić...

Ten post edytował integer000 25.06.2006, 13:52:46
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
strife
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 605
Pomógł: 96
Dołączył: 22.10.2004
Skąd: UK

Ostrzeżenie: (0%)
-----


Heh, trochę dziwny ten Twój sposób, nie będę się zagłębiał w kod, ponieważ jest trochę nieczytelny, więc dam Ci dobrą radę, zamiast bawić się » explode" title="Zobacz w manualu php" target="_manual, trzymaj ciastka w zserializowanej tablicy » serialize" title="Zobacz w manualu php" target="_manual, wtedy usunięcie danego elementu będzie dziecinnie proste (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Jeżeli jednak się upierasz to usunąć dany element u Ciebie możesz w ten sposób, że... Przelatujesz to rozbite ciastko z jakąś petlą, i warunek, że jeżeli zmienna w pasku adresu będzie odpowiała kluczowi w tablicy to pomijasz ten element a w else tworzysz nową tablicę i zapisujesz ponownie ciastko. Taki mały zarys:
  1. <?php
  2. // .. kasowanie elementu ciastka
  3. $cookie = $_COOKIE['TestCookie'];
  4. $arrCookie = explode( '#', $cookie );
  5. foreach( $arrCookie as $key => $value )
  6. {
  7. if ( $key != $_GET['idProdukt'] )
  8. {
  9. $array[$key] = $value;
  10. }
  11. }
  12. setcookie( 'TestCookie', implode( '#', $array ), time() + 3600() );
  13. ?>


Pozdrawiam!
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 27.12.2025 - 13:39