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%)
-----


Ale żeś się uparł na to » explode" title="Zobacz w manualu php" target="_manual (IMG:http://forum.php.pl/style_emoticons/default/laugh.gif) Ja cały czas będę przy swoim, czyli użyj zserializowanej tablicy (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) No, ale jak już wiercisz ten temat to postaram Ci pomóc tak jak to sobie wymyśliłeś, więc:

  1. <?php
  2. while($data[$licz]!=''){
  3. ?>

Heh, że niby co chcesz w ten sposób sprawdzić czy dany element tablicy nie jest pusty tak? Poczytaj o » empty" title="Zobacz w manualu php" target="_manual.

Bardzo zagmatwałeś sprawę ostatnim postem, więc postanowiłem napisać to po swojemu (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

  1. <?php
  2. case 'del':
  3.  
  4. $arrCookies = explode( '*|*', $_COOKIE['TestCookie'] );
  5. array_pop( $arrCookies );
  6.  
  7. foreach( $arrCookies as $key => $value )
  8. {
  9. $arrDetails = explode( '}^{', $value );
  10.  
  11. if ( $key != $_GET['idProdukt'] )
  12. {
  13. $newDetails[] .= $value;
  14. }
  15.  
  16. }
  17.  
  18. $rebuildCookies = implode( '*|*', $newDetails );
  19.  
  20. // set new cookie
  21. setcookie( 'TestCookie', $rebuildCookies, time() + 3600 );
  22.  
  23. break;
  24. ?>


~edit
» integer000 - No widzę, że przeanalizowałeś mój kod, bardzo się z tego cieszę, jak widzisz brakowało Ci jedynie łączenia ciągów znaków ( $var .= ).
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: 25.12.2025 - 23:41