Есть, к примеру, 2 таблицы 1 - заказы, 2 - сами коды. Все поля, — числовые индексы. (указаны примерные имена).
CODE ( htmlphp):
скопировать код в буфер обмена
orders orders_id | orders_shid | orders_usid | orders_amount | orders_status orders_id - праймери, инкремент. orders_shid - идентификатор группы к которой относятся продаваемые купоны orders_usid - id пользователя orders_amount - кол-во заказанных кодов orders_status - статус заказа. Оплачен — 1, не оплачен — 0; coupons coupon_id | coupon_shid | coupon_num | coupon_owner | coupon_status coupon_id - праймери, инкремент. coupon_shid - группа к которой относится код (=orders_shid) coupon_num - сам код coupon_owner - id юзера, заказавшего купон (=orders_usid) coupon_status - 0/1 используется для блокировки купонов в случае поступления на них заказа.
Страница показа кодов делает такие проверки -
1. Смотрит авторизованный ли юзер зашёл.
2. Если авторизованный, сравниваем orders_id с сессией, если юзер тот, чей заказ, то идём дальше.
3. Проверяем на наличие и фильтруем все пришедшее в $_POST, если прошли проверку, - записываем их в переменные
4.
CODE ( htmlphp):
скопировать код в буфер обмена
$q = "SELECT * FROM `coupons` WHERE `coupons_status`='1' AND `coupons_owner`='". (int)$orders_usid."' AND `coupons_shid`='". (int)$orders_shid."' LIMIT '" (int)$orders_amount."';"; $reselt = @mysql_query($q); if($reselt && mysql_num_rows($reselt)==(int)$orders_amount) { echo "показываем код"; } else echo "ошибка";
Достаточно-ли безопасен такой подход к показу купленных скрытых данных? Поле orders_id никак не связано с таблицей coupons, может есть смысл использовать его вместо полей coupon_status и coupon_owner?
P.S. Прошу прощение за ошибки в название темы. Никто не отвечает, потому подсократил пояснения.(Отредактировано автором: 26 Января, 2011 - 11:23:53)
|