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
Форумы портала PHP.SU :: Версия для печати :: Нажимаем на кнопочку , увеличиваем переменную [2]
Форумы портала PHP.SU » PHP » Программирование на PHP » Нажимаем на кнопочку , увеличиваем переменную

Страниц (3): « 1 [2] 3 »
 

16. movEAX - 27 Апреля, 2010 - 08:17:20 - перейти к сообщению
- Для предотвращения самовольного изменения пользователем данных в запросе используйте сесси:
PHP:
скопировать код в буфер обмена
  1. if ( $_POST['step'] & $_SESSION['last_step'] ){
  2.     ...
  3.     $_SESSION['last_step'] = $_POST['step'];
  4. } else {
  5.     die('Голову с плечь!')
  6. }

- Для отправки данных методом POST можно использовать какой-нибудь фреймворк, к примеру Jqery:
CODE (javascript):
скопировать код в буфер обмена
  1. $.post( 'http://php.su', {arg:1, arg2:2}, function(data){ alert( 'Полученные данные:' + data)});

При этом страница не будет перезагружаться, а полученные данные можно впоследствии обработать. За доп. информацией сходите сюда
17. Prog - 27 Апреля, 2010 - 10:00:34 - перейти к сообщению
jfr пишет:

Просто, там где написали GET меняйте на POST

Не получается ...
(Добавление)
Уже сделал с помощью GET , но интересно как с POST сделать .
18. markus4 - 27 Апреля, 2010 - 11:26:11 - перейти к сообщению
<!-- Отправка с помощью POST делается так: -->
<!-- Делаем 2 формы -->
<!-- параметр action содержит адрес файла-обработчика. -->
<!-- параметр name содержит имя формы. Они у вас должны быть разные. -->
<!-- // ###################################################### -->
<form name="form_Next" method="post" action="index.php">
<input name="A_1" type="text" id="A_1" value="<? echo $a; ?>">
<input type="submit" name="Submit2" value="Вперёд">
</form>
<!-- // ###################################################### -->
<form name="form_Back" method="post" action="index.php">
<input name="A_2" type="text" id="A_2" value="<? echo $a; ?>">
<input type="submit" name="Submit" value="Назад">
</form>
<!-- // ###################################################### -->
<!-- Ловить переменные так, как Вам уже выше подсказали - вместо $_GET пишите $_POST: -->
$a=$_POST['A'];
(Добавление)
также я так понимаю, что поле ввода у вас должно быть скрытое,
А видна только кнопка.
Поэтому параметр 'type' установите как "hidden".

<form name="form_Next" method="post" action="index.php">
<input name="A_1" type="hidden" id="A_1" value="<? echo $a; ?>">
<input type="submit" name="Submit_1" value="Вперёд">
</form>
19. JustUserR - 27 Апреля, 2010 - 13:24:23 - перейти к сообщению
movEAX пишет:
Для отправки данных методом POST можно использовать какой-нибудь фреймворк, к примеру Jqery:
$.post( 'http://php.su', {arg:1, arg2:2}, function(data){ alert( 'Полученные данные:' + data)});
Не стоит этого делать поскольку задача не такая сложная - чтобы ради одного POST-запроса подключать тяжеловесный фреймворк
Prog Не забывайте что пользователь хотя и не может поменять значение переменных в сессии - но при этом с легкостью может удалить текущую сессию Как вариант защиты можно использовать регистрацию на сайте - и использовать привязку сессии в БД с информацией о пользователе
20. Prog - 27 Апреля, 2010 - 14:12:58 - перейти к сообщению
markus4,JustUserR
Спасибо большое)))
21. JustUserR - 27 Апреля, 2010 - 14:56:02 - перейти к сообщению
Prog пишет:
markus4,JustUserR
Спасибо большое)))
Пожалуйста! Главное помните что данным пришедшим от пользователя нельзя доверять - поскольку всегда нельзя исключать попытку взлома
22. AdMeen - 27 Апреля, 2010 - 15:22:25 - перейти к сообщению
jfr пишет:

этого можно избежать методом POST, а не GET


тоже особых проблем не составит подменить запрос. Prog, всё таки наверное лучше использовать сессию.
23. Prog - 27 Апреля, 2010 - 16:07:29 - перейти к сообщению
Пользователь может изменить своими руками значение сессий в браузере?
24. markus4 - 27 Апреля, 2010 - 16:29:32 - перейти к сообщению
Конечно может. Его скрипт может создавать менять и удалять переменные в массиве $_SESSION. Иначе как бы Вы создали вообще сессию?
25. movEAX - 27 Апреля, 2010 - 17:34:09 - перейти к сообщению
Prog пишет:
Пользователь может изменить своими руками значение сессий в браузере?

Он с легкостью может подменить значение любого input'a, который будет передаваться через post. А значения в массиве $_SESSION как бы он ни корячился - нет! Единственное может подменить идентификатор сессии в куках, и не более того.
26. markus4 - 27 Апреля, 2010 - 17:54:35 - перейти к сообщению
Под пользователем Вы имеете в виду не себя а постороннего? нет, он не сможет изменить переменные сессии. Многих новичков волнует вопрос - сможет ли кто-то посторонний каким-либо образом получить доступ к сессиям? Прежде всего, между вами и сессией долже стоять файл скрипта. Скрипт - это тот инструмент, (можно сказать интерфейс) который может изменить значение сессии. Если у человека нет доступа к скрипту, изменить сессию он не сможет. Отсюда совет фильтровать поля ввода в формах. Если образно и поэтично - скрипт, как и вода, может существовать в твёрдом и жидком состоянии. В твёрдом - это когда он имеет расширение php или pl, и поставлен на сервер Вами лично. Но скрипт можно тихонько залить на сервер и в "жидком состоянии", например в плохо фильтруемые поля форм... Улыбка Огромное количество хакеров промышляют этим. Лично Вашему сайту ничего не грозит при таком взломе. Уничтожать дойную корову глупо. Просто маленькая незаметная вставка будет исправно воровать клики и кидать лишнюю ложку икры на чужой бутерброд.
27. Prog - 27 Апреля, 2010 - 20:40:09 - перейти к сообщению
Я сейчас говорю про другое . У меня вот такое дело - я создал авторизацию , после того как авторизация прошла удачно , создается $_SESSION['Name'] - и в нее записывается имя пользователя . И дальше все идет от этой сессии . К примеру у меня есть мини игра . После авторизации игрок переходит в игру , оно делает запрос по _SESSION['Name'] в БД . Вопрос : Пользователь может изменить значение этой сессии ? К примеру на ник администратора , что бы потом все данные загружались от ника администратора .

(Если не поняли то объясню подробнее)
28. movEAX - 27 Апреля, 2010 - 21:53:39 - перейти к сообщению
У меня ощущение что меня игнорируют Ниндзя
вопрос:
Prog пишет:
Пользователь может изменить значение этой сессии ? К примеру на ник администратора , что бы потом все данные загружались от ника администратора .

ответ:
Цитата:
... $_SESSION как бы он ни корячился - нет! Единственное может подменить идентификатор сессии в куках, и не более того.
29. Prog - 27 Апреля, 2010 - 22:08:14 - перейти к сообщению
movEAX
Радость Радость спасибо ))
30. markus4 - 27 Апреля, 2010 - 22:13:26 - перейти к сообщению
Внимательнее почитайте топик movEAX, он Вам всё подробно объяснил. Сессию ваш игрок не сможет изменить.

 

Powered by ExBB FM 1.0 RC1