 |
 |
Форум сетевых администраторов » Программирование » PHP » Передача параметра ???
| Автор |
| Тема |
 |
|
 |
|
|
|
Участник

Зарегистрирован: Sep 2005
Место проживания:
Публикаций: 20
Статус:  |
Установил PHP 5 ! В скрипте 000.php следующий код:
PHP:
<?
include ("config.inc.php"); #Там $adminpass = "123";
if ($password != "$adminpass")
{ print "<BR><BR>Введите пароль администратора!
<br><br><form>
<br><input type=password name=password>
<br><input type=submit>
</form>"; exit; }
?>
Короче скромная проверка пароля :). Но прикол в том, что переменная отображает значение в адресной строке, но скрипт никак не реагирует. Как то я чето менял в php.ini , а че забыл. Что надо сделать, чтобы значение передоваемой переменной передавался?
Пример - http://localhost/000.php?password=123
__________________
Media Commander - это новый медиа гигант в истории!!! Заходи на http://skynet.hut1.ru
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
28-09-2005 15:19 |
|
|
Участник+
|
quote: #Там $adminpass = "123";
А может бы быть должно... |
[сооб. #78681]
28-09-2005 19:50 |
|
Участник+


Зарегистрирован: Mar 2003
Место проживания: Барнаул, Россия
Публикаций: 1169
Статус: ![he][es в оф-лайне](images/offline.gif) |
quote: #Там $adminpass = "123";
А может бы быть должно быть:
а)
PHP:
<?php
$adminpass = "123";
?>
б) ЗАПАÐ_ИЛИ УЖЕ! Вы чё все такие трудные а?.. Чё то я не вижу где ты переменную из запроса принял? а???
Я вижу несовсем корректное сравнение
PHP:
$password != "$adminpass"
строки с переменной неизвестно где и откуда появившейся...
Откуда ты взял $password???
(предвкушая глупое "Из GETа", а ты её оттуда как взял? А никак!)
Книжки почитай!!!
(И Ð_то привыкай писать правильно!)
PHP:
<?php
require("config.inc.php"); //Там $adminpass = "123";
$password = (string) $_GET['password '];
if ($password !== $adminpass) {
print '<BR><BR>Введите пароль администратора!
<br><br><form>
<br><input type=password name=password>
<br><input type=submit>
</form>';
exit;
}
?>
quote: require() and include() are identical in every way except how they handle failure. include() produces a Warning while require() results in a Fatal Error. In other words, don't hesitate to use require() if you want a missing file to halt processing of the page. include() does not behave this way, the script will continue regardless. Be sure to have an appropriate include_path setting as well.
__________________
Админ - вождь Апачей...
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
28-09-2005 19:50 |
|
|
Модератор
|
| если в php.ini стоит register_globals=off то такой способ... |
[сооб. #78691]
29-09-2005 09:15 |
|
Модератор


Зарегистрирован: Sep 2001
Место проживания: Москва
Публикаций: 370
Статус:  |
если в php.ini стоит register_globals=off то такой способ не катит - нужно забирать переменную из глобальных массивов (в твоем случае $_GET[password]). Лучше привыкать сразу использовать $_GET, $_POST - потому что не везде включены register_globals
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
29-09-2005 09:15 |
|
|
Участник
|
he][es
Не ругайся Просто я хотел привести... |
[сооб. #78692]
29-09-2005 09:53 |
|
Участник

Зарегистрирован: Sep 2005
Место проживания:
Публикаций: 20
Статус:  |
he][es
Не ругайся Просто я хотел привести пример вроде передачи значения как в адресной строке http://localhost/000.php?password=123
Код у меня правильный (не первый раз работаю с PHP), просто я его чисто кусок взял из примера (не полный)!!!
А тебе Falcon спасибо. Проблема решена. Я же говорил, что это при первой установке PHP ни один параметр не передается через "?" (вопросительный знак). Я же писал, что "Как то я чето менял в php.ini , а че забыл".
Еще раз спасибо Falcon 
__________________
Media Commander - это новый медиа гигант в истории!!! Заходи на http://skynet.hut1.ru
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
29-09-2005 09:53 |
|
|
Участник+
|
| Revolution ЕЩЁ Ð_АЗ ГОВОÐ_Ю ЧТО ТЫ НЕПÐ_АВИЛЬНО... |
[сооб. #78702]
29-09-2005 13:18 |
|
Участник+


Зарегистрирован: Mar 2003
Место проживания: Барнаул, Россия
Публикаций: 1169
Статус: ![he][es в оф-лайне](images/offline.gif) |
Revolution ЕЩЁ Ð_АЗ ГОВОÐ_Ю ЧТО ТЫ НЕПÐ_АВИЛЬНО ДЕЛАЕШЬ!
quote: Лучше привыкать сразу использовать $_GET, $_POST - потому что не везде включены register_globals
Я бы даже сказал ВЕЗДЕ выключены!
quote: не первый раз работаю с PHP
не похоже... Ð_то самая детская и распространенная ошибка...
__________________
Админ - вождь Апачей...
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
29-09-2005 13:18 |
|
|
Участник
|
А ещё можно так, берёшь массив $_GET например.
И... |
[сооб. #78734]
30-09-2005 20:42 |
|
Участник

Зарегистрирован: Aug 2003
Место проживания: г. Зеленогорск
Публикаций: 76
Статус: ![Xel'[Naga] в оф-лайне](images/offline.gif) |
А ещё можно так, берёшь массив $_GET например.
И пишешь чо-нить типа этого:
PHP:
foreach ($_GET AS $par => $val)
{
$$par = $val;
}
Примерно такая схема сделано у вб форумов. Очень удобно.
Но тут надо всё тонко сделать.
Например перед внесением в какой-нить массив инфы, нужно его очистить, чтобы нельзя было добавить переменную в массив из строки
__________________
Всего хорошего.
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
30-09-2005 20:42 |
|
|
Участник+
|
| Xel'[Naga] а можно глупый вопрос: "А нафига?"... |
[сооб. #78737]
30-09-2005 22:21 |
|
Участник+


Зарегистрирован: Mar 2003
Место проживания: Барнаул, Россия
Публикаций: 1169
Статус: ![he][es в оф-лайне](images/offline.gif) |
Xel'[Naga] а можно глупый вопрос: "А нафига?" Те же грабли - вид сбоку... + не секьюрибельно... Можно их кончно почистить... Но незная какие переменные придут, неизвестно как чистить...
PHP:
foreach ($_GET AS $par => $val) {
$$par = & $_GET[$par];
}
хоть память сэкономим...
__________________
Админ - вождь Апачей...
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
30-09-2005 22:21 |
|
|
Модератор
|
| вот только при extract'е появляются все те же... |
[сооб. #78742]
01-10-2005 11:41 |
|
|
Администратор
|
| [quote]те же проблемы безопасности, из-за чего... |
[сооб. #78743]
01-10-2005 14:25 |
|
Администратор


Зарегистрирован: May 2001
Место проживания:
Публикаций: 4642
Статус:  |
quote: те же проблемы безопасности, из-за чего и выключают register_globals
Конечно, это тоже самое.
Вариант с ручным извлечением удобен тем чтоможно контролировать все параметры и приводить к нужному типу.
__________________
Всегда есть решение.
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
01-10-2005 14:25 |
|
|
Участник
|
| he][es: А это для того, чтобы не писать $_GET $_POST... |
[сооб. #78749]
01-10-2005 22:27 |
|
Участник

Зарегистрирован: Aug 2003
Место проживания: г. Зеленогорск
Публикаций: 76
Статус: ![Xel'[Naga] в оф-лайне](images/offline.gif) |
he][es: А это для того, чтобы не писать $_GET $_POST $COOKIE и ещё всякой ботвы.
Меня вот напригает писать по 10 раз слово $_GET['123'] в одной строке + ещё другие.
По поводу безопасности, поверь, при умном подходе, никто ничего не сделает. Все массивы перед их созданием чистяться(после этой функции), поэтому внести что-то в них невозможно. Все переменные во время работы обрабатываются. Я же сказал, всё зависит от хотения + "register_globals(on)" будет работать ВСЕГДА.
А регистер глобалс выключают по умолчанию имхо потому, что развелось сильно много скриптов(не грамотно написанных), через которые можно поиметь доступ.
__________________
Всего хорошего.
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
01-10-2005 22:27 |
|
|
|
Формат времени GMT. Текущее время 09:35.
|
Правила форума:
Вы не можете создавать новые темы.
Вы не можете отвечать на существующие темы.
Вы не можете прикреплять файлы.
Вы не можете редактировать свои сообщения. |
HTML теги выкл.
Спец. код вкл.
Смайлики вкл.
[IMG] тег выкл.
|
|
|
|
| |
Page generated in 0.27702689 seconds (96.58% PHP - 3.42% MySQL) with 23 queries.
|
 |