Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Błąd przy dodawaniu do shooping card
-Gość-
post
Post #1





Goście







wyskakuje mi błąd: Notice: Undefined index: action in ...
Może mi ktoś pomóc, nie wiem co robić, dodanie isset generuje inny błąd , help


  1. $cart = $_SESSION['cart'];
  2. $action =$_GET['action'];
  3. switch ($action) {
  4. case 'add':
  5. if ($cart) {
  6. $cart .= ','.$_GET['id'];
  7. } else {
  8. $cart = $_GET['id'];
  9. }
  10. break;
  11. case 'delete':
  12. if ($cart) {
  13. $items = explode(',',$cart);
  14. $newcart = '';
  15. foreach ($items as $item) {
  16. if ($_GET['id'] != $item) {
  17. if ($newcart != '') {
  18. $newcart .= ','.$item;
  19. } else {
  20. $newcart = $item;
  21. }
  22. }
  23. }
  24. $cart = $newcart;
  25. }
  26. break;
  27. case 'update':
  28. if ($cart) {
  29. $newcart = '';
  30. foreach ($_POST as $key=>$value) {
  31. if (stristr($key,'qty')) {
  32. $id = str_replace('qty','',$key);
  33. $items = ($newcart != '') ? explode(',',$newcart) : explode(',',$cart);
  34. $newcart = '';
  35. foreach ($items as $item) {
  36. if ($id != $item) {
  37. if ($newcart != '') {
  38. $newcart .= ','.$item;
  39. } else {
  40. $newcart = $item;
  41. }
  42. }
  43. }
  44. for ($i=1;$i<=$value;$i++) {
  45. if ($newcart != '') {
  46. $newcart .= ','.$id;
  47. } else {
  48. $newcart = $id;
  49. }
  50. }
  51. }
  52. }
  53. }
  54. $cart = $newcart;
  55. break;
  56. }
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 15)
toaspzoo
post
Post #2





Grupa: Zarejestrowani
Postów: 778
Pomógł: 84
Dołączył: 29.07.2010
Skąd: Gliwice / Pławniowice Mistrz niezmordowanej klawiatury.

Ostrzeżenie: (20%)
X----


Cytat(Gość @ 12.08.2012, 15:57:48 ) *
wyskakuje mi błąd: Notice: Undefined index: action in ...

I co dalej, w której linii ?


--------------------

LS Easter egg <
Go to the top of the page
+Quote Post
-Gość-
post
Post #3





Goście







sorki nie wrzuciłm
  1. $action =$_GET['action'];

Notice: Undefined index: action in C:\xampp\htdocs\Myonlinestore\card.php on line 14
Go to the top of the page
+Quote Post
toaspzoo
post
Post #4





Grupa: Zarejestrowani
Postów: 778
Pomógł: 84
Dołączył: 29.07.2010
Skąd: Gliwice / Pławniowice Mistrz niezmordowanej klawiatury.

Ostrzeżenie: (20%)
X----


Czyli już wszystko w porządku ?


--------------------

LS Easter egg <
Go to the top of the page
+Quote Post
-Gość-
post
Post #5





Goście







nie, dalej to samo
Go to the top of the page
+Quote Post
wNogachSpisz
post
Post #6





Grupa: Zarejestrowani
Postów: 1 233
Pomógł: 87
Dołączył: 6.03.2009

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


Musisz sprawdzić czy zmienna GET['action'] istnieje (czy została zadeklarowana).
Użyj w tym celu funkcj isset(), to chyba najszybsza i najczęsciej wykorzystywana funkcja w całym PHP.

Jeśli w parametrze do funkcji isset() przekażesz niezadeklarowaną zmienną, nie spowoduje to wyświetlenia otrzeżenia. Na tym polega jej wyjątkowość.

Ten post edytował wNogachSpisz 12.08.2012, 15:36:05
Go to the top of the page
+Quote Post
-Gość-
post
Post #7





Goście







zmieniłem na
  1. $action =isset($_GET['action']);

i wywala mi błąd: Notice: Undefined index: id in C:\xampp\htdocs\Myonlinestore\card.php on line 17
i po odswieżeniu dodaje mi jeden w
  1. $cart = $_SESSION['cart'];
  2. if (!$cart) {
  3. return '<p>You have no items in your shopping cart</p>';
  4. } else {
  5. // Parse the cart session variable
  6. $items = explode(',',$cart);
  7. $s = (count($items) > 1) ? 's':'';
  8. return '<p>You have'.count($items).' item'.$s.' in your shopping cart</p>';
  9. }


tu jest cały kod
card.php
  1. <?php
  2. ini_set('display_errors','1');
  3. ?>
  4. <?php
  5. // Include database connection
  6. require_once('storesript/conecttomysql.php');
  7. // Include functions
  8. require_once('functions.inc.php');
  9. // Start the session
  10. $cart = $_SESSION['cart'];
  11. $action =isset($_GET['action']);
  12. switch ($action) {
  13. case 'add':
  14. if ($cart) {
  15. $cart .= ','.$_GET['id'];
  16. } else {
  17. $cart = $_GET['id'];
  18. }
  19. break;
  20. case 'delete':
  21. if ($cart) {
  22. $items = explode(',',$cart);
  23. $newcart = '';
  24. foreach ($items as $item) {
  25. if ($_GET['id'] != $item) {
  26. if ($newcart != '') {
  27. $newcart .= ','.$item;
  28. } else {
  29. $newcart = $item;
  30. }
  31. }
  32. }
  33. $cart = $newcart;
  34. }
  35. break;
  36. case 'update':
  37. if ($cart) {
  38. $newcart = '';
  39. foreach ($_POST as $key=>$value) {
  40. if (stristr($key,'qty')) {
  41. $id = str_replace('qty','',$key);
  42. $items = ($newcart != '') ? explode(',',$newcart) : explode(',',$cart);
  43. $newcart = '';
  44. foreach ($items as $item) {
  45. if ($id != $item) {
  46. if ($newcart != '') {
  47. $newcart .= ','.$item;
  48. } else {
  49. $newcart = $item;
  50. }
  51. }
  52. }
  53. for ($i=1;$i<=$value;$i++) {
  54. if ($newcart != '') {
  55. $newcart .= ','.$id;
  56. } else {
  57. $newcart = $id;
  58. }
  59. }
  60. }
  61. }
  62. }
  63. $cart = $newcart;
  64. break;
  65. }
  66. $_SESSION['cart'] = $cart;
  67. ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  68.  
  69. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  70. <head>
  71. <title>PHP Shopping Cart Demo ˇ Cart</title>
  72. <link rel="stylesheet" href="style/styles.css" />
  73. </head>
  74.  
  75. <body>
  76.  
  77. <div id="shoppingcart">
  78.  
  79. <h1>Your Shopping Cart</h1>
  80.  
  81. <?php
  82. echo writeShoppingCart();
  83. ?>
  84.  
  85. </div>
  86.  
  87. <div id="contents">
  88.  
  89. <h1>Please check quantities...</h1>
  90.  
  91. <?php
  92. echo showCart();
  93. ?>
  94.  
  95. <p><a href="products.php">Back to bookshop...</a></p>
  96.  
  97. </div>
  98.  
  99. </body>
  100. </html>

functions.inc.php
  1. <?php
  2. function writeShoppingCart() {
  3. $cart = $_SESSION['cart'];
  4. if (!$cart) {
  5. return '<p>You have no items in your shopping cart</p>';
  6. } else {
  7. // Parse the cart session variable
  8. $items = explode(',',$cart);
  9. $s = (count($items) > 1) ? 's':'';
  10. return '<p>You have'.count($items).' item'.$s.' in your shopping cart</p>';
  11. }
  12. }
  13.  
  14. function showCart() {
  15. global $db;
  16. $cart = $_SESSION['cart'];
  17. if ($cart) {
  18. $items = explode(',',$cart);
  19. $contents = array();
  20. foreach ($items as $item) {
  21. $contents[$item] = (isset($contents[$item])) ? $contents[$item] + 1 : 1;
  22. }
  23. $output[] = '<form action="card.php?action=update" method="post" id="cart">';
  24. $output[] = '<table>';
  25. foreach ($contents as $id=>$qty) {
  26. $sql = mysql_query("SELECT * FROM products WHERE id='$id' LIMIT 1");
  27. while ($row = mysql_fetch_array($sql)) {
  28. $productname= $row ["productname"];
  29. $producent= $row ["producent"];
  30. $cena= $row ["cena"];
  31. $output[] = '<tr>';
  32. $output[] = '<td><a href="card.php?action=delete&id='.$id.'" class="r">Remove</a></td>';
  33. $output[] = '<td>'.$productname.' by '.$producent.'</td>';
  34. $output[] = '<td>&pound;'.$cena.'</td>';
  35. $output[] = '<td><input type="text" name="qty'.$id.'" value="'.$qty.'" size="3" maxlength="3" /></td>';
  36. $output[] = '<td>&pound;'.($cena * $qty).'</td>';
  37. $total += $cena * $qty;
  38. $output[] = '</tr>';
  39. }}
  40. $output[] = '</table>';
  41. $output[] = '<p>Grand total: <strong>&pound;'.$total.'</strong></p>';
  42. $output[] = '<div><button type="submit">Update cart</button></div>';
  43. $output[] = '</form>';
  44. } else {
  45. $output[] = '<p>You shopping cart is empty.</p>';
  46. }
  47. return join('',$output);
  48. }
  49. ?>
Go to the top of the page
+Quote Post
wNogachSpisz
post
Post #8





Grupa: Zarejestrowani
Postów: 1 233
Pomógł: 87
Dołączył: 6.03.2009

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


Istnieją dwie możliwości:

1. Jesteś najbardziej bezmyślną osobą jaką spotkałem na tym forum.
2. Twój pierwszy kontakt z programowaniem w PHP jest właśnie dzisiaj i należy Cię skierowac na kurs dla bardzo początkujących.
Go to the top of the page
+Quote Post
-Gość-
post
Post #9





Goście







a może Ci się pomyliły fora - jaka sama nazwa wskazuje "przedszkole" jest dla początkujących debilu, jeżeli nie masz ochoty pomagać to po co tu jesteś, nie masz przyjaciół w realnym życiu i szukasz na forach, to już wiem dlaczego!!!
Go to the top of the page
+Quote Post
wNogachSpisz
post
Post #10





Grupa: Zarejestrowani
Postów: 1 233
Pomógł: 87
Dołączył: 6.03.2009

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


Przedszkole przedszkolem, ale kurs dla początkujących wypadałoby zaliczyć.

Zresztą Twoje postępowanie jest ewidentne. Od mojego postu gdzie zasugerowałem użycie isset, do Twojej odpowiedzi - w której uraczyłeś nas bezmyślnym jej użyciem - minęło 8 minut. W tak krótkim czasie to nawet opisu funkcji w manualu nie zdążyłbyś przeczytać.

Skoro ja jestem debilem, to kim ty jesteś?
Bezmyślny leń któremu trzeba "przeżuć mięsko" to najdelikatniejsze określenie jakie przychodzi mi do głowy.


Ten post edytował wNogachSpisz 12.08.2012, 16:04:30
Go to the top of the page
+Quote Post
-Gość-
post
Post #11





Goście







Cytat(wNogachSpisz @ 12.08.2012, 15:56:18 ) *
Przedszkole przedszkolem, ale kurs dla początkujących wypadałoby zaliczyć.

Zresztą Twoje postępowanie jest ewidentne. Od mojego postu gdzie zasugerowałem użycie isset, do Twojej odpowiedzi - w której uraczyłeś nas bezmyślnym jej użyciem - minęło 8 minut. W tak krótkim czasie to nawet opisu funkcji w manualu nie zdążyłbyś przeczytać.

Skoro ja jestem debilem, to kim ty jesteś?
Bezmyślny leń to najdelikatniejsze określenie jakie przychodzi mi do głowy.


juz sie gadałeś geniuszu bez przyjaciół jeżeli tak to odbij ode mne jeżeli nie to mi pomóż
Go to the top of the page
+Quote Post
wNogachSpisz
post
Post #12





Grupa: Zarejestrowani
Postów: 1 233
Pomógł: 87
Dołączył: 6.03.2009

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


W jednej chwili nazywasz mnie debilem, w następnej geniuszem. Zdecyduj się smile.gif
Go to the top of the page
+Quote Post
-Gość-
post
Post #13





Goście







Cytat(wNogachSpisz @ 12.08.2012, 16:08:02 ) *
W jednej chwili nazywasz mnie debilem, w następnej geniuszem. Zdecyduj się smile.gif

w porównaniu do mojej wiedzy w php to jesteś geniuszem , ale patrząc na wcześniejszy komentarz tylko jedno pzychodzi do głowy ...
Go to the top of the page
+Quote Post
wNogachSpisz
post
Post #14





Grupa: Zarejestrowani
Postów: 1 233
Pomógł: 87
Dołączył: 6.03.2009

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


Cytat(Gość @ 12.08.2012, 17:10:42 ) *
w porównaniu do mojej wiedzy w php to jesteś geniuszem , ale patrząc na wcześniejszy komentarz tylko jedno pzychodzi do głowy ...

Kiedy ktoś pisze że tylko jedno przychodzi mu do głowy, to mi też tylko jedno przychodzi do głowy...
O ile nie jesteś dziewczyną, to możesz zapomnieć smile.gif

Ten post edytował wNogachSpisz 12.08.2012, 16:13:58
Go to the top of the page
+Quote Post
-Gość-
post
Post #15





Goście







Cytat(wNogachSpisz @ 12.08.2012, 16:12:34 ) *
Kiedy ktoś pisze że tylko jedno przychodzi mu do głowy, to mi też tylko jedno przychodzi do głowy...
O ile nie jesteś dziewczyną, to możesz zapomnieć smile.gif

następna debilna odpowiedz, cytat: "najgłupsza osoba na forum" zaczynasz wygrywać Lkingsmiley.png
Go to the top of the page
+Quote Post
Daiquiri
post
Post #16





Grupa: Administratorzy
Postów: 1 552
Pomógł: 211
Dołączył: 7.07.2009
Skąd: NJ




Autorze tamatu - niestety brakuje Ci podstaw PHP. User wNogachSpisz dał Ci kompletne rozwiązanie, jednak źle je zaimplementowałeś. Powinieneś dodać warunek z isset, w stylu
if (isset ($TwojaZmienna) { zrób cośtam }. Ostrzeżenie, które Ci się wyświetla to komunikat o tym, iż sprawdzasz zawartość zmiennej z indeksem, który nie został ustawiony (innymi słowy, nie masz w adresie końcówki action=.

Zamykam, nie ma sensu dalej się "wyzywać".
Go to the top of the page
+Quote Post

Closed TopicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 22:33