|
|
|
| Мой скрипт использует инклуды. Инклудные файлы имеют всегда такую конструкцию:
if(переменная==значение){
...
}else{
ошибка
}
Все бы ничего, но и сам этот инклуд - когда работает - строит формы... и в них хидденом - эта переменная... т.е., посмотреть html-исходник - все видно. Так что можно подделать переменную, и передать ее самостоятельно. Как мне от этого защититься? Возможно, как-то так?
if(переменная==значение и прислана она от этого же файла){
...
}else{
ошибка
}
Но как это сделать - я не знаю.... | |
|
|
|
|
|
|
|
для: Shorr Kan
(18.02.2005 в 02:37)
| | Переменную можно передать при помощи сессий, в этом случае само значение будет храниться на сервере, а идентификатор сессий передаваться от страницы к странице. http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=298 | |
|
|
|
|
|
|
|
для: cheops
(18.02.2005 в 12:25)
| | Я что-то не понял, как сессии работают... ВОт я вставил в начале файла:
<?
session_start();
$_SESSION['number'] = rand(1,100);
print $_SESSION['number'];
?>
|
И что? Теперь при каждой перезагрузке $_SESSION['number'] - всегда одно и то же число, до тех пор, пока человек не закроет браузер? А если браузер закрыл, и заново зашел на эту страничку - тогда уже сработает rand() ? Так? Или нужно что-то вроде:
<?
if(empty($_SESSION['number'])){$_SESSION['number'] = rand(1,100);}
print $_SESSION['number'];
?>
|
? | |
|
|
|
|
|
|
|
для: Shorr Kan
(18.02.2005 в 17:19)
| | Да всё верно, небольшое уточнение области применения сессий. Пусть имеется страница index.php
<?
session_start();
$_SESSION['number'] = rand(1,100);
?>
|
При каждой загрузке этой странице элемент $_SESSION['number'] будет получать новое значение в интервале от 0 до 100. При загрузке страницы page.php, которая имеет следующее содержимое
<?php
session_start();
print $_SESSION['number'];
?>
|
Будет выведено последнее значение присвоенное на странице index.php. Суть в том, что таким способом можно передать значения переменных из одного файла в другие, не помещая их в параметры строки запросов, cookie и т.п. | |
|
|
|
|
|
|
|
для: cheops
(18.02.2005 в 17:39)
| | У меня задача именно такая... Человек заходит на страницу. Если он просто поновенькому зашел на нее - делает rand(). Если же он дергает на одну из submit на этой странице, и она, естественно, перегружается - rand() делаться НЕ должен...
Это как реализуется?
И еще... Значение этой переменной в сессии - строго индивидуально для каждого человека? | |
|
|
|
|
|
|
|
для: Shorr Kan
(18.02.2005 в 17:43)
| | Ну тогда, так как вы описали вполне подойдёт
<?php
if(!isset($_SESSION['number']))
{
$_SESSION['number'] = rand(1,100);
}
?>
|
Да, сессии уникальны в пределах сервера. Вам наверное так же будет интересно почитать тему (с середины про время жизни) http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=773 | |
|
|
|
|
|
|
|
для: cheops
(18.02.2005 в 17:51)
| | Да действительно. Это интересно.
Спасибо за ответы. | |
|
|
|
|
|
|
|
для: Shorr Kan
(18.02.2005 в 18:53)
| | Это конечно интересно, но я так понимаю инклюды инклюдятся с этого же хоста, следовательно самое простое и наименее ёмкое написать
<?php
if($_SERVER["REMOTE_ADDR"] == $_SERVER["SERVER_ADDR"]){
...
}else{
ошибка
}
?>
|
| |
|
|
|
|
|
|
|
для: Sfinks
(18.02.2005 в 22:49)
| | Sorri, ошибся..... Для include это не подойдет =(( | |
|
|
|