#1 2008.08.09 22:48

denich
Участник
Откуда: нижегородская область
Зарегистрирован: 2008.05.28
Сообщений: 301
Карма: 0
Профиль

глобальные переменные

хотелось бы поговорить и узнать больше инфы о глобальных переменных и register globals)

вобщем то я знаю что register globals(если ON) то это большая дыра в безопасноти,
что переменные вида $_GET['opa'] или $_SERVER['QUERY_STRING'] при включенном register globals, будут иметь вид $opa и $QUERY_STRING

Вообщем то это всё..


ska ska ska

Неактивен

#2 2008.08.09 23:49

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: глобальные переменные

не только $_GET и $_SERVER, но и $_POST, $_SESSION, $_COOKIES, $_REQUEST.

Неактивен

#3 2008.08.11 17:34

denich
Участник
Откуда: нижегородская область
Зарегистрирован: 2008.05.28
Сообщений: 301
Карма: 0
Профиль

Re: глобальные переменные

хм


ska ska ska

Неактивен

#4 2008.08.16 12:29

Писюн
Гость

Re: глобальные переменные

Ну регистер глобал снетакая уж дыра если прогер не криворукий, но за его использование руки отрывать надо. А про глобальные переменные, то phpinfo(); напиши. Там все $_СЕРВЕР переменные будут

#5 2008.08.20 09:40

kot
Участник
Откуда: г.Таллинн (Эстония)
Зарегистрирован: 2008.08.16
Сообщений: 78
Карма: 0
Профиль Веб-сайт

Re: глобальные переменные

Мастера объясните для чего нужны эти глобальные переменные и что они дают ? И вообщечто это такое ? У меня не работал скрипт форума на беспл.хосте(НЕВОЗМОЖНО БЫЛО СОЗДАТЬ ТЕМУ) http://wapf.ru и на форуме вен.ру кто-то посоветовал мне включить  эти глобальные переменные прописав в .htaccess следующую строку

Код:

1
php_flag register_globals On

и о чудо,всё заработало!Второй случай уже был на платном хосте.Я установил скрипт сервиса чатов и он тоже не хотел работать(НЕВОЗМОЖНО БЫЛО ЗАРЕГАТЬ ЧАТ).Тогда я вспомнив,что мне посоветовали на форуме вен.ру год назад включил в .htaccess эту строку и всё заработало. Обьясните какую функцию на сервере или в скрипте эта строка включила.

Неактивен

#6 2008.08.20 17:18

Helqg
Участник
Откуда: 52 регион
Зарегистрирован: 2008.01.23
Сообщений: 306
Карма: 2
Профиль

Re: глобальные переменные

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


Стране нужны автобусы!

Неактивен

#7 2008.08.20 19:13

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: глобальные переменные

Вообще по этим глобальным переменным можно судить о качестве скрипта, если он работает только на включенных, то можно судить о его низком качестве.
Если глобальные переменные включены, то все что введет пользователь, становится одноименными переменными в скрипте. Т.е. если у нас $_SESSION['id'] = 1;, то при включенных глобальных переменных, если пользователь введет http://link.ru/?id=2, $_SESSION['id'] станет равна 2. И вообще так можно подменить любую явно не обьявленную переменную.

Неактивен

#8 2008.12.07 23:21

ПеревозЧЕГ
Участник
Откуда: Тверская область
Зарегистрирован: 2008.11.16
Сообщений: 32
Карма: 0
Профиль Веб-сайт

Re: глобальные переменные

вот много читал про регистр глобалс но так до конца и не понял когда он а когда оф. Понял то что при он данные передаются в ссылке а при оф нет.
Вот я на данный момент понял так:
<input type=text name=login value="name">
Если регистр глобалс он то когда данные идут из формы  то можно сразу при обработке данных писать  $login, при регистр глобалс оф надо явно объявить $login=$_POST['login']
Я верно понимаю?

Неактивен

#9 2008.12.07 23:35

denich
Участник
Откуда: нижегородская область
Зарегистрирован: 2008.05.28
Сообщений: 301
Карма: 0
Профиль

Re: глобальные переменные

верно мыслишь)


ska ska ska

Неактивен

#10 2008.12.08 01:02

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: глобальные переменные

Ну как, не обязательно делать ее $login, вполне можно пользоваться и переменной в массиве. Просто надо понимать, что при отключенных глоб переменных все данные попадают в соответствующие им массивы ($_GET, $_POST, $_COOKIES, $_SESSION).

Неактивен

#11 2008.12.08 08:56

Alaya
Участник
Зарегистрирован: 2008.03.25
Сообщений: 426
Карма: 7
Профиль Веб-сайт

Re: глобальные переменные

при выключенном, переменные сразу передаются, куда нужно. При включенном, сначала передаются в некий массив, потом уже куда нужно. Так? Разве не лучше, то что проще?


любой код можно заставить работать методом тыка. Если долго тыкать

Неактивен

#12 2008.12.08 09:22

ПеревозЧЕГ
Участник
Откуда: Тверская область
Зарегистрирован: 2008.11.16
Сообщений: 32
Карма: 0
Профиль Веб-сайт

Re: глобальные переменные

Gemorroj написал:

Ну как, не обязательно делать ее $login, вполне можно пользоваться и переменной в массиве. Просто надо понимать, что при отключенных глоб переменных вс� данные попадают в соответствующие им массивы ($_GET, $_POST, $_COOKIES, $_SESSION).

А при включенных?

Неактивен

#13 2008.12.08 10:21

НЕЗНАЙКА
Участник
Откуда: Россия
Зарегистрирован: 2008.11.24
Сообщений: 313
Карма: 11
Профиль Веб-сайт

Re: глобальные переменные

При использовании $_Сервер это ничего не меняет, они автоматически глобальны т.е. доступны в любой области видимости. Поэтому лучше использовать их.


ДАУН-Данная Аватара Унаследована Незнайкой

Неактивен

#14 2008.12.08 11:41

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: глобальные переменные

они все суперглобальны) вообще правильно говорить суперглобальные массивы.

Alaya написал:

потом уже куда нужно

нет! они как раз попадают туда куда НЕ нужно!
вдумайся в эту строчку
$login = $_POST['login'];
правая и левая части равны! что заставляет приранивать их??? если кого-то это напрягает, то можно просто использовать $_POST['login'];
так же при откл глоб переменных сразу видно какая переменная откуда пришла. Лена, поверь, с отключенными глоб переменными код становится не только безопаснее, но и куда читабельнее.

Неактивен

#15 2008.12.09 12:56

Alaya
Участник
Зарегистрирован: 2008.03.25
Сообщений: 426
Карма: 7
Профиль Веб-сайт

Re: глобальные переменные

эллементарный скриптик, с автозаменой. С отключенными глобальными переменными не работает...
<?php
include 'head.php';
?>
<div class="g">Перевод:</div>
<form action = "result.php" method="get">
Ваше имя:<br>
<input type="text" name="name" value=""/><br>
Введите текст:<br>
<input type="text" name="msg" value=""/><br>
<input type="submit" value="Перевести"/>
</form>
<?php
include 'foot.php';
?>

<?php
include 'per.php';
$msg = htmlspecialchars(stripslashes($msg));
include 'head.php';
?>
<?php
$file = fopen("data/log/log.txt","a");
fputs($file,$msg."\n");
fclose($file);
chmod ("data/log/log.txt", 0666);
?>
<div class="zagolovok">Переводчик</div>
<div class="main">
<b>Результат перевода:</b><br>
<?php
echo $msg;
?>
<br>
<b>Так же Вы можете скопировать результат через форму:</b><br>
<input type="text" name="servis" value="<?php echo $msg; ?>"/>
<br>
<b>Или</b> <a href="send.php?msg=<?php echo $msg; ?>">отправить</a> <b>его на e-mail.</b>
</div>
<?php
include 'foot.php';
?>


любой код можно заставить работать методом тыка. Если долго тыкать

Неактивен

#16 2008.12.09 13:08

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: глобальные переменные

проблема в низком уровне кодинга, а не в глоб переменных.
неужели трудно понять что нужно поменять?
<input type="text" name="name" value=""/><br>
Введите текст:<br>
<input type="text" name="msg" value=""/><br>

ты тут передаешь 2 перменные name и msg
<form action = "result.php" method="get"> - явно указываешь метод GET
следовательно указанные тобой переменные попадают в массив GET, т.е. $_GET['msg'] и $_GET['name']

Неактивен

Дополнительно

forum.wapinet.ru

PunBB Mod v0.6.2
0.011 s