Как использовать сеансы PHP и реализовать базовые списки ACL? - PullRequest
1 голос
/ 25 октября 2011

Я был переменным сеанса Google.Насколько я понимаю, я могу использовать их для записи таких вещей, как имя пользователя и другие данные.

Я хотел бы иметь возможность использовать эти данные для хранения имени пользователя последнего человека, который изменил записьконкретное поле.Кроме того, я хотел бы иметь возможность ограничить то, что конкретный пользователь видит на сайте.Например, если пользователь создает рабочий заказ, я бы хотел, чтобы этот пользователь ограничивался просмотром только тех рабочих заказов, которые он / она создает, а других - нет.

Я очень новичок во всем этом, и яу меня недостаточно понимания, чтобы написать какой-то код, который вы могли бы исправить для меня.Как я могу отправить данные, хранящиеся в переменной сеанса, как $ _GET или $ _POST?Если он у меня есть в этом формате, я могу использовать его в запросе (я думаю).

  1. У меня есть таблица с именем "work_orders" с полем с именем "updated_by".Я хотел бы иметь возможность хранить идентификатор последнего человека, который обновил запись.
  2. Я также хотел бы добавить привилегии в рабочие задания, чтобы пользователи могли просматривать только записи, созданные определенными пользователями.

Это проект, который я реализовал на первом курсе веб-дизайна.В классе участвуют некоторые ученики, которые думают, что забавно видеть, какой ущерб они могут нанести работе других.Вот почему я хотел бы иметь возможность ограничить их доступ только к генерируемым ими рабочим заказам.

Ответы [ 2 ]

0 голосов
/ 25 октября 2011

Возможно, вы захотите начать с чтения или просмотра видеоурока, который поможет вам лучше понять, как и когда использовать переменные сеанса.Данные, которые вы сохраняете в сеансе, не будут храниться вечно, поэтому вам нужно будет хранить большую часть информации в базе данных.

Вот что делает большинство людей: как только пользователь войдет в приложение, вы положитеих идентификатор пользователя в сеансе.Таким образом, вы знаете, кто они.Сервер использует куки, чтобы сделать это немного волшебства, и когда пользователь закрывает свой браузер, сервер забудет, кто они, и данные сеанса будут потеряны.Таким образом, в этом примере сеанс просто отслеживает, кто является пользователем.

Для хранения информации о том, кто последний раз редактировал поле, вы, вероятно, захотите использовать базу данных для хранения этой информации.Нет смысла хранить эту информацию в переменной сеанса.

0 голосов
/ 25 октября 2011

Вы, кажется, смешиваете свои вопросы здесь.

Во-первых, где ваша база данных?Если это был, например, MySQl, то вам нужно добавить дополнительный столбец в таблицу рабочих заданий (и другие. Лично я бы хотел добавить столбец отметки времени для аудита морских свиней).

Я предпочитаю POSTпо GET, потому что 1) он может содержать больше данных и 2) пользователю не так легко вмешаться.

Итак, если у вас есть форма с объявленным полем ввода

<form>

Имя:

(см. http://www.w3schools.com/html/html_forms.asp)

Вы можете получить доступ $_POST['user_name'] например
$sql = 'INSERT INTO work_order_table (user_name, ... <other column names>) VALUES($_POST['user_name'], .. <other values>)

Я бы порекомендовал вам взять хорошую книгу (достаточно дешевая вторая секунда) или онлайн-учебник и пройтись по нему.

Пожалуйста, дайте мне знать, еслиЯ что-то пропустил или, если что-то неясно. Удачи!


Поскольку вы не понимаете, что школьники портят вашу базу данных

1) Google, чтобы узнать, как сделать MySql более безопасным
2) намек на это: подготовленные посты
3) использовать POST, а не get, чтобы у вас были URL-адреса типа http://192.1.68.1.1/application вместо http://192.1.68.1.1/application?user=smith, которые соблазняют пользователей разбираться сURl «просто чтобы увидеть, что происходит» (вероятно, более опасная, чем инъекция SQL на школьном уровне, но ... вы никогда не знаете,
4), попала в библиотеку для soemthign, как PHP и MySql для чайников O'Reilly за 24 часадля начинающих идиотов - или найди бога онлайн урок
5) "Яхотел бы иметь возможность ограничить конкретного пользователя просмотром только тех рабочих заданий, которые он сгенерировал: «ПРОЧИТАЙТЕ ГДЕ в SQL SELECT
6), измените пароль пользователя root MySql - или даже добавьте нового пользователя с доступом с правами root, а затем удалите root
7) убедитесь, что ни один студент не имеет доступа к серверу, чтобы они не посмотрели на PHP и не увидели вашего пользователя и пароль MySql

...