Вы не зашли.
Главная » PHP » глобальные переменные
#1. denich Off (0)
Участник
2008.08.09 22:10
хотелось бы поговорить и узнать больше инфы о глобальных переменных и register globals)

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

Вообщем то это всё..
ska ska ska
#2. Gemorroj Off (107)
Administrator
2008.08.09 23:11
не только $_GET и $_SERVER, но и $_POST, $_SESSION, $_COOKIES, $_REQUEST.
#3. denich Off (0)
Участник
2008.08.11 17:05
хм
ska ska ska
#4. Писюн
Гость
2008.08.16 12:12
Ну регистер глобал снетакая уж дыра если прогер не криворукий, но за его использование руки отрывать надо. А про глобальные переменные, то phpinfo(); напиши. Там все $_СЕРВЕР переменные будут
#5. kot Off (0)
Участник
2008.08.20 09:09
Мастера объясните для чего нужны эти глобальные переменные и что они дают ? И вообщечто это такое ? У меня не работал скрипт форума на беспл.хосте(НЕВОЗМОЖНО БЫЛО СОЗДАТЬ ТЕМУ) http://wapf.ru и на форуме вен.ру кто-то посоветовал мне включить  эти глобальные переменные прописав в .htaccess следующую строку
Код:
php_flag register_globals On
и о чудо,всё заработало!Второй случай уже был на платном хосте.Я установил скрипт сервиса чатов и он тоже не хотел работать(НЕВОЗМОЖНО БЫЛО ЗАРЕГАТЬ ЧАТ).Тогда я вспомнив,что мне посоветовали на форуме вен.ру год назад включил в .htaccess эту строку и всё заработало. Обьясните какую функцию на сервере или в скрипте эта строка включила.
[-kot-] wink
#6. Helqg Off (2)
Участник
2008.08.20 17:05
не функцию включила, а разрешила обрабатывать переменные по их именам без указания откуда они приперлись.
Стране нужны автобусы!
#7. Gemorroj Off (107)
Administrator
2008.08.20 19:07
Вообще по этим глобальным переменным можно судить о качестве скрипта, если он работает только на включенных, то можно судить о его низком качестве.
Если глобальные переменные включены, то все что введет пользователь, становится одноименными переменными в скрипте. Т.е. если у нас $_SESSION['id'] = 1;, то при включенных глобальных переменных, если пользователь введет http://link.ru/?id=2, $_SESSION['id'] станет равна 2. И вообще так можно подменить любую явно не обьявленную переменную.
#8. ПеревозЧЕГ Off (0)
Участник
2008.12.07 23:11
вот много читал про регистр глобалс но так до конца и не понял когда он а когда оф. Понял то что при он данные передаются в ссылке а при оф нет.
Вот я на данный момент понял так:
<input type=text name=login value="name">
Если регистр глобалс он то когда данные идут из формы  то можно сразу при обработке данных писать  $login, при регистр глобалс оф надо явно объявить $login=$_POST['login']
Я верно понимаю?
#9. denich Off (0)
Участник
2008.12.07 23:11
верно мыслишь)
ska ska ska
#10. Gemorroj Off (107)
Administrator
2008.12.08 01:01
Ну как, не обязательно делать ее $login, вполне можно пользоваться и переменной в массиве. Просто надо понимать, что при отключенных глоб переменных все данные попадают в соответствующие им массивы ($_GET, $_POST, $_COOKIES, $_SESSION).
#11. Alaya Off (7)
Участник
2008.12.08 08:08
при выключенном, переменные сразу передаются, куда нужно. При включенном, сначала передаются в некий массив, потом уже куда нужно. Так? Разве не лучше, то что проще?
любой код можно заставить работать методом тыка. Если долго тыкать
#12. ПеревозЧЕГ Off (0)
Участник
2008.12.08 09:09
Gemorroj написал:
Ну как, не обязательно делать ее $login, вполне можно пользоваться и переменной в массиве. Просто надо понимать, что при отключенных глоб переменных вс� данные попадают в соответствующие им массивы ($_GET, $_POST, $_COOKIES, $_SESSION).
А при включенных?
#13. НЕЗНАЙКА Off (11)
Участник
2008.12.08 10:10
При использовании $_Сервер это ничего не меняет, они автоматически глобальны т.е. доступны в любой области видимости. Поэтому лучше использовать их.
ДАУН-Данная Аватара Унаследована Незнайкой
#14. Gemorroj Off (107)
Administrator
2008.12.08 11:11
они все суперглобальны) вообще правильно говорить суперглобальные массивы.
Alaya написал:
потом уже куда нужно
нет! они как раз попадают туда куда НЕ нужно!
вдумайся в эту строчку
$login = $_POST['login'];
правая и левая части равны! что заставляет приранивать их??? если кого-то это напрягает, то можно просто использовать $_POST['login'];
так же при откл глоб переменных сразу видно какая переменная откуда пришла. Лена, поверь, с отключенными глоб переменными код становится не только безопаснее, но и куда читабельнее.
#15. Alaya Off (7)
Участник
2008.12.09 12:12
эллементарный скриптик, с автозаменой. С отключенными глобальными переменными не работает...
<?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. Gemorroj Off (107)
Administrator
2008.12.09 13:01
проблема в низком уровне кодинга, а не в глоб переменных.
неужели трудно понять что нужно поменять?
<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']
Страниц: 1 2 Все
Главная
WEB
PunBB Mod v0.6.2
0.018 s