Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Запутался с кодом

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
php_newbie
Отправлено: 02 Марта, 2015 - 15:24:18
Post Id


Новичок


Покинул форум
Сообщений всего: 19
Дата рег-ции: Февр. 2015  


Помог: 0 раз(а)




Здрасте. В общем есть маленькая ошибка. Пишу интернет магазин. При "покупке" любого товара кидает на index.php. Пробовал разные подходы — что-то не помогло.
Вот код с Index.php:
PHP:
скопировать код в буфер обмена
  1. $view = empty($_GET['view']) ? 'index' : $_GET['view'];
  2.  
  3. switch ($view)
  4. {
  5.        
  6.         case ('add_to_cart'):
  7.                 $id=$_GET['id'];
  8.                 $add_item = add_to_cart($id);
  9.                 $_SESSION['total_items']=total_items($_SESSION['cart']);
  10.                 $_SESSION['total_price']=total_price($_SESSION['cart']);
  11.                 header('Location: index.php?view=product&id='.$id);
  12.         break;

А вот функция add_to_cart():
PHP:
скопировать код в буфер обмена
  1. function add_to_cart($id)
  2.         {
  3.                 if (isset($_SESSION['cart'][$id]))
  4.                  {
  5.                         $_SESSION['cart'][$id]++;
  6.                         return true;
  7.                 }
  8.                 else
  9.                 {
  10.                         $_SESSION['cart'][$id]=1;
  11.                         return true;
  12.                 }
  13.                 return false;
  14.         }

судя по всему, что-то не то со свитчом. Так вот вопрос: как можно реализовать эту схему только плюс ещё возможность запоминать предыдущую страницу и оставаться именно на ней после покупки.

Поправочка: если у меня открыта, допустим, третья страница, то после покупки кидает на первую. Видимо оно не реагирует на переменные другие. Как в этом случае page и тд.

(Отредактировано автором: 02 Марта, 2015 - 15:28:10)

 
 Top
RickMan
Отправлено: 02 Марта, 2015 - 15:33:23
Post Id


Участник


Покинул форум
Сообщений всего: 1033
Дата рег-ции: Май 2012  


Помог: 30 раз(а)






Где вы такую записиь кейса увидели?

- так правильно...
(Добавление)
Ну а по топу... у вас в конце кейса стоит редирект на index.php. В чем тогда проблема? И почему нне должно на index.php редиректить?
 
 Top
php_newbie
Отправлено: 02 Марта, 2015 - 15:44:32
Post Id


Новичок


Покинул форум
Сообщений всего: 19
Дата рег-ции: Февр. 2015  


Помог: 0 раз(а)




RickMan пишет:

Ну а по топу... у вас в конце кейса стоит редирект на index.php. В чем тогда проблема? И почему нне должно на index.php редиректить?


спаисбо за кейс, но оно и так работало. а по поводу индекса: в противном случае просто при нажатии "купить" я отправляюсь на пустую белую страницу. МОжет в курсах как можно редиректнуться на предыдущую страницу? пробовал через $_SERVER['HTTP_REFERER'] но что-то не пашет. может я что-то не так делаю.

апдейт:
Я как всегда лоханулся. Сорри за тупые вопросы. Всё решил заменой header('Location: index.php?view=product&id='.$id); на header('Location: '.$_SERVER['HTTP_REFERER'])

(Отредактировано автором: 02 Марта, 2015 - 15:50:07)

 
 Top
RickMan
Отправлено: 02 Марта, 2015 - 15:55:25
Post Id


Участник


Покинул форум
Сообщений всего: 1033
Дата рег-ции: Май 2012  


Помог: 30 раз(а)




Не забывайте, что $_SERVER['HTTP_REFERER'] может быть и пустой, к примеру если на эту страницу попасть прямой ссылкой. Поэтому советую сделать проверуку на то, пустой он или нет. Так же, никогда не руководствуйтесь логикой "и так работает", потому что есть некие правила, и хорошие манеры...
 
 Top
php_newbie
Отправлено: 02 Марта, 2015 - 16:03:55
Post Id


Новичок


Покинул форум
Сообщений всего: 19
Дата рег-ции: Февр. 2015  


Помог: 0 раз(а)




RickMan пишет:
Не забывайте, что $_SERVER['HTTP_REFERER'] может быть и пустой, к примеру если на эту страницу попасть прямой ссылкой. Поэтому советую сделать проверуку на то, пустой он или нет. Так же, никогда не руководствуйтесь логикой "и так работает", потому что есть некие правила, и хорошие манеры...

ну на эту страницу можно попасть только вписав её в адресную строку, что не лепо, так как ссылка отвечает за покупку определённого товара. Но спаисбо за совет.
 
 Top
RickMan
Отправлено: 02 Марта, 2015 - 16:19:19
Post Id


Участник


Покинул форум
Сообщений всего: 1033
Дата рег-ции: Май 2012  


Помог: 30 раз(а)




Нелепо, говорите? Вот из за таких мыслей и возникают ошибки, из за которых потом появляются дырки в защите. Нелепо же вместо своего id, в ajax запросе, поставить id чужого пользователя, например? Еще как нелепо, но при неправильной логике и доверчивости пользователю, в вашем магазине можно будет оформить заказ на другого человека, например. Научитесь недоверят тому, что приходит от пользователя.

(Отредактировано автором: 02 Марта, 2015 - 16:28:58)

 
 Top
php_newbie
Отправлено: 02 Марта, 2015 - 21:14:06
Post Id


Новичок


Покинул форум
Сообщений всего: 19
Дата рег-ции: Февр. 2015  


Помог: 0 раз(а)




RickMan пишет:
Нелепо, говорите? Вот из за таких мыслей и возникают ошибки, из за которых потом появляются дырки в защите. Нелепо же вместо своего id, в ajax запросе, поставить id чужого пользователя, например? Еще как нелепо, но при неправильной логике и доверчивости пользователю, в вашем магазине можно будет оформить заказ на другого человека, например. Научитесь недоверят тому, что приходит от пользователя.


я этов сё чудесно понимаю. и я чуддесно понимаю, как мои слова могут бесить челвоека с большим опытом роботы с php, но на данный момент цель моей работы это выполнить основные задачи курсовой роботы. параллельно этому ещё чему то научиться. пожалй я сначала разберусь с азами пшп, а потом уже буду усовершенствовать свои навыки в следующих работах.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Напишите за меня, пожалуйста »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB