Главная :: Форум :: Web ClipArt :: Поиск :: Статистика :: Топ 10 :: Публикация :: Рекомендовать
netadmin.ws
Панель управления Регистрция свободна! Календарь Список пользователей Часто задаваемые вопросы Поиск по форуму Архив скриптов Главная   
Форум сетевых администраторов
Форум сетевых администраторов Форум сетевых администраторов » Программирование » PHP » Передача параметра ???
Предыдущая тема     Следующая тема
Автор
Тема    Новая тема     Ответить на эту тему
Revolution
Участник

Зарегистрирован: Sep 2005
Место проживания:
Публикаций: 20
Статус: Revolution в оф-лайне
Передача параметра ??? [сообщение #78662]

Установил 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: определен

Old Post 28-09-2005 15:19
Нажмите сюда для просмотра профайла Revolution Отправить Персональное сообщение Revolution Посетить домашнию страничку Revolution! Найти сообщения от Revolution Добавить Revolution в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
he][es
Участник+
Средний рейтинг: 4.07 | Оценок: 30
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Mar 2003
Место проживания: Барнаул, Россия
Публикаций: 1169
Статус: he][es в оф-лайне
[сообщение #78681]

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: определен

Old Post 28-09-2005 19:50
Нажмите сюда для просмотра профайла he][es Отправить Персональное сообщение he][es Найти сообщения от he][es Добавить he][es в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
Falcon
Модератор
Средний рейтинг: 3.89 | Оценок: 9
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Sep 2001
Место проживания: Москва
Публикаций: 370
Статус: Falcon в оф-лайне
[сообщение #78691]

если в php.ini стоит register_globals=off то такой способ не катит - нужно забирать переменную из глобальных массивов (в твоем случае $_GET[password]). Лучше привыкать сразу использовать $_GET, $_POST - потому что не везде включены register_globals

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 29-09-2005 09:15
Нажмите сюда для просмотра профайла Falcon Отправить Персональное сообщение Falcon Найти сообщения от Falcon Добавить Falcon в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
Revolution
Участник

Зарегистрирован: Sep 2005
Место проживания:
Публикаций: 20
Статус: Revolution в оф-лайне
[сообщение #78692]

he][es
Не ругайся Просто я хотел привести пример вроде передачи значения как в адресной строке http://localhost/000.php?password=123
Код у меня правильный (не первый раз работаю с PHP), просто я его чисто кусок взял из примера (не полный)!!!

А тебе Falcon спасибо. Проблема решена. Я же говорил, что это при первой установке PHP ни один параметр не передается через "?" (вопросительный знак). Я же писал, что "Как то я чето менял в php.ini , а че забыл".
Еще раз спасибо Falcon

__________________
Media Commander - это новый медиа гигант в истории!!! Заходи на http://skynet.hut1.ru

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 29-09-2005 09:53
Нажмите сюда для просмотра профайла Revolution Отправить Персональное сообщение Revolution Посетить домашнию страничку Revolution! Найти сообщения от Revolution Добавить Revolution в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
he][es
Участник+
Средний рейтинг: 4.07 | Оценок: 30
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Mar 2003
Место проживания: Барнаул, Россия
Публикаций: 1169
Статус: he][es в оф-лайне
[сообщение #78702]

Revolution ЕЩЁ Ð_АЗ ГОВОÐ_Ю ЧТО ТЫ НЕПÐ_АВИЛЬНО ДЕЛАЕШЬ!

quote:
Лучше привыкать сразу использовать $_GET, $_POST - потому что не везде включены register_globals

Я бы даже сказал ВЕЗДЕ выключены!
quote:
не первый раз работаю с PHP

не похоже... Ð_то самая детская и распространенная ошибка...

__________________
Админ - вождь Апачей...

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 29-09-2005 13:18
Нажмите сюда для просмотра профайла he][es Отправить Персональное сообщение he][es Найти сообщения от he][es Добавить he][es в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
Revolution
Участник

Зарегистрирован: Sep 2005
Место проживания:
Публикаций: 20
Статус: Revolution в оф-лайне
[сообщение #78704]

Спасибо за совет

__________________
Media Commander - это новый медиа гигант в истории!!! Заходи на http://skynet.hut1.ru

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 29-09-2005 14:40
Нажмите сюда для просмотра профайла Revolution Отправить Персональное сообщение Revolution Посетить домашнию страничку Revolution! Найти сообщения от Revolution Добавить Revolution в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
Xel'[Naga]
Участник

Зарегистрирован: Aug 2003
Место проживания: г. Зеленогорск
Публикаций: 76
Статус: Xel'[Naga] в оф-лайне
[сообщение #78734]

А ещё можно так, берёшь массив $_GET например.
И пишешь чо-нить типа этого:

PHP:


foreach ($_GET AS $par => $val)
{
$
$par = $val;
}


Примерно такая схема сделано у вб форумов. Очень удобно.
Но тут надо всё тонко сделать.
Например перед внесением в какой-нить массив инфы, нужно его очистить, чтобы нельзя было добавить переменную в массив из строки

__________________
Всего хорошего.

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 30-09-2005 20:42
Нажмите сюда для просмотра профайла Xel'[Naga] Отправить Персональное сообщение Xel'[Naga] Найти сообщения от Xel'[Naga] Добавить Xel'[Naga] в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
he][es
Участник+
Средний рейтинг: 4.07 | Оценок: 30
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Mar 2003
Место проживания: Барнаул, Россия
Публикаций: 1169
Статус: he][es в оф-лайне
[сообщение #78737]

Xel'[Naga] а можно глупый вопрос: "А нафига?" Те же грабли - вид сбоку... + не секьюрибельно... Можно их кончно почистить... Но незная какие переменные придут, неизвестно как чистить...

PHP:


foreach ($_GET AS $par => $val) {
    $
$par = & $_GET[$par];
}


хоть память сэкономим...

__________________
Админ - вождь Апачей...

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 30-09-2005 22:21
Нажмите сюда для просмотра профайла he][es Отправить Персональное сообщение he][es Найти сообщения от he][es Добавить he][es в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
polo
Администратор
Средний рейтинг: 4.77 | Оценок: 106
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: May 2001
Место проживания:
Публикаций: 4642
Статус: polo в оф-лайне
[сообщение #78740]

extract($_GET)

__________________
Всегда есть решение.

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 30-09-2005 22:55
Нажмите сюда для просмотра профайла polo Отправить Персональное сообщение polo Посетить домашнию страничку polo! Найти сообщения от polo Добавить polo в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
Falcon
Модератор
Средний рейтинг: 3.89 | Оценок: 9
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Sep 2001
Место проживания: Москва
Публикаций: 370
Статус: Falcon в оф-лайне
[сообщение #78742]

вот только при extract'е появляются все те же проблемы безопасности, из-за чего и выключают register_globals...

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 01-10-2005 11:41
Нажмите сюда для просмотра профайла Falcon Отправить Персональное сообщение Falcon Найти сообщения от Falcon Добавить Falcon в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
polo
Администратор
Средний рейтинг: 4.77 | Оценок: 106
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: May 2001
Место проживания:
Публикаций: 4642
Статус: polo в оф-лайне
[сообщение #78743]

quote:
те же проблемы безопасности, из-за чего и выключают register_globals
Конечно, это тоже самое.

Вариант с ручным извлечением удобен тем чтоможно контролировать все параметры и приводить к нужному типу.

__________________
Всегда есть решение.

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 01-10-2005 14:25
Нажмите сюда для просмотра профайла polo Отправить Персональное сообщение polo Посетить домашнию страничку polo! Найти сообщения от polo Добавить polo в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
Xel'[Naga]
Участник

Зарегистрирован: Aug 2003
Место проживания: г. Зеленогорск
Публикаций: 76
Статус: Xel'[Naga] в оф-лайне
[сообщение #78749]

he][es: А это для того, чтобы не писать $_GET $_POST $COOKIE и ещё всякой ботвы.
Меня вот напригает писать по 10 раз слово $_GET['123'] в одной строке + ещё другие.
По поводу безопасности, поверь, при умном подходе, никто ничего не сделает. Все массивы перед их созданием чистяться(после этой функции), поэтому внести что-то в них невозможно. Все переменные во время работы обрабатываются. Я же сказал, всё зависит от хотения + "register_globals(on)" будет работать ВСЕГДА.
А регистер глобалс выключают по умолчанию имхо потому, что развелось сильно много скриптов(не грамотно написанных), через которые можно поиметь доступ.

__________________
Всего хорошего.

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 01-10-2005 22:27
Нажмите сюда для просмотра профайла Xel'[Naga] Отправить Персональное сообщение Xel'[Naga] Найти сообщения от Xel'[Naga] Добавить Xel'[Naga] в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя



Формат времени GMT. Текущее время 11:56.
Новая тема   Ответить на эту тему [ Версия для печати Печать | Отправить эту страницу другу/знакомому! Отправить | Получать уведомления об обновлении этой темы Подписка ] Предыдущая тема     Следующая тема
Навигация по форуму:
Оценка темы:

Правила форума:
Вы не можете создавать новые темы.
Вы не можете отвечать на существующие темы.
Вы не можете прикреплять файлы.
Вы не можете редактировать свои сообщения.
HTML теги выкл.
Спец. код вкл.
Смайлики вкл.
[IMG] тег выкл.
 

Page generated in 0.27651501 seconds (97.91% PHP - 2.09% MySQL) with 21 queries.


  Главная :: Форум :: Web ClipArt :: Поиск :: Статистика :: Топ 10 :: Публикация :: Рекомендовать
©NetAdmin.ws, 2001-2026.
Powered by: vBulletin
Copyright ©2000, 2001, Jelsoft Enterprises Limited.