Подскажите, пожалуйста, как правильно передавать данные которые пользователь не должен видеть?
function sales(){
$sql=mysql_query("SELECT * FROM `salesheader` WHERE `id`='$_SESSION[user_id]'");
$top=file_get_contents('html/table_top.tpl');
$foot=file_get_contents('html/table_foot.tpl');
print($top);
for ($x=0;$x<mysql_num_rows($sql); $x++){
$result = mysql_fetch_assoc($sql);
print("<tr><td>$result[pk]</td><td>$result[date]</td><td>$result[summ]</td><td>$result[stat]</td><td>КНОПКА</td></tr>");
}
print($foot);
}
Т.е. при нажатии на кнопку, скрипт должен передать "id" и "номер заказа"
из запроса $sql, но юзер не должен видеть ни в url или html данные которые передаются.
Заранее спасибо, за ответ. Мне просто нужно знать как правильно сделать, код писать не обязательно.
Спустя 1 час, 29 минут, 57 секунд (20.05.2011 - 19:46) quickxyan написал(а):
ну можно сессиями или отправкой формы методом POST.
можно еще через куки, но лучше не надо)
можно еще через куки, но лучше не надо)
Спустя 1 час, 25 минут, 57 секунд (20.05.2011 - 21:12) snp_mbr написал(а):
т.е. использование сессии это самый рациональный вариант?
Спустя 33 минуты, 24 секунды (20.05.2011 - 21:45) Krevedko написал(а):
да. или пост. зависит от того, что вы намереваетесь делать.
Спустя 34 минуты, 45 секунд (20.05.2011 - 22:20) snp_mbr написал(а):
Подскажите, пожалуйста, как реализовать правильно пост?
Спустя 2 минуты, 30 секунд (20.05.2011 - 22:23) Winston написал(а):
Куда должны уходить твои данные? И где форма, если ты собираешься нажимать на кнопку ?
Спустя 1 час, 59 минут, 46 секунд (21.05.2011 - 00:22) Лена написал(а):
"id" и "номер заказа" надо обязательно записать в базу.
Отправляете форму методом POST и данные никто не увидит.
Сессия в данном случае - самый глупый вариант. Пользователь закроет страницу, произойдет какой-либо сбой в коннекте с сервером и т.д. и "id" и "номер заказа" уйдут в никуда.
Отправляете форму методом POST и данные никто не увидит.
Сессия в данном случае - самый глупый вариант. Пользователь закроет страницу, произойдет какой-либо сбой в коннекте с сервером и т.д. и "id" и "номер заказа" уйдут в никуда.
Спустя 36 минут, 33 секунды (21.05.2011 - 00:59) Игорь_Vasinsky написал(а):
Krevedko
Цитата |
да. или пост |
а почему не GET? только header'ом средиректить.
Но меньше всего заморочекс POST
Спустя 1 минута, 10 секунд (21.05.2011 - 01:00) inpost написал(а):
snp_mbr
Чтобы не имел доступ к данным - только сессия
Чтобы не имел доступ к данным - только сессия
Спустя 49 секунд (21.05.2011 - 01:01) Krevedko написал(а):
Цитата (Лена @ 20.05.2011 - 21:22) |
"id" и "номер заказа" надо обязательно записать в базу. Отправляете форму методом POST и данные никто не увидит. Сессия в данном случае - самый глупый вариант. Пользователь закроет страницу, произойдет какой-либо сбой в коннекте с сервером и т.д. и "id" и "номер заказа" уйдут в никуда. |
как понять уйдут в никуда ?
а что, если произойдет сбой в коннекте или пользователь закроет страницу, то массив пост сохранится ? ерунду вот только ненадо писать.
если будете передавать методом пост, то обязательно делайте потом редирект, чтобы пользователь обновляя не задублировал записи. ну или можно проверку сделать на дубли
Спустя 1 час, 4 минуты, 45 секунд (21.05.2011 - 02:06) Greg1978 написал(а):
а как насчёт условия
Цитата |
но юзер не должен видеть ни в url или html данные которые передаются. |
если post: в html форме нужно записывать соответствующие данные что противоречит условию. Условие в полном сокрытии данных, если я правильно понял.
К автору а зачем такие сложности и условия безопасности, начать с этого хотя бы.
Спустя 6 часов, 56 минут, 40 секунд (21.05.2011 - 09:02) snp_mbr написал(а):
Сайт обменивается данными с помощью оборотного импорта.
Проблема csv файлов, которые отправляет программа учета.
Структура их такова, что нет возможности определить чей именно заказ без обращения к другой таблице mysql.
Проще всего сделать несколько запросов в базу и проверять каждый раз принадлежность к клиент=>заказ.
Я просто подумал не проще ли при авторизации делать один раз запрос в базу и записать основные данные в сессию. т.е. id, имя, заказы.
Очень не хочется каждый раз обращаться за данными к базе и сравнивать их на соответствие друг к другу.
А если не делать проверок, то любой заказ можно посмотреть подставив данные в url или html.
Короче как-то так если я не прав, подскажите как правильно сделать.
Проблема csv файлов, которые отправляет программа учета.
Структура их такова, что нет возможности определить чей именно заказ без обращения к другой таблице mysql.
Проще всего сделать несколько запросов в базу и проверять каждый раз принадлежность к клиент=>заказ.
Я просто подумал не проще ли при авторизации делать один раз запрос в базу и записать основные данные в сессию. т.е. id, имя, заказы.
Очень не хочется каждый раз обращаться за данными к базе и сравнивать их на соответствие друг к другу.
А если не делать проверок, то любой заказ можно посмотреть подставив данные в url или html.
Короче как-то так если я не прав, подскажите как правильно сделать.
Спустя 1 час, 33 минуты, 39 секунд (21.05.2011 - 10:36) quickxyan написал(а):
snp_mbr возможно я не совсем понял, но думаю, что правильно будет так как ты сказал.
При авторизации пишем основные данные в сессии, а потом узнаем принадлежности именно этому юзеру по его уникальному полю например id
При авторизации пишем основные данные в сессии, а потом узнаем принадлежности именно этому юзеру по его уникальному полю например id
Спустя 26 минут, 13 секунд (21.05.2011 - 11:02) snp_mbr написал(а):
Спасибо всем, тему можно закрывать.