Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2006.10.01;
Скачать: [xml.tar.bz2];

Вниз

Логин и пароль   Найти похожие ветки 

 
num   (2006-09-08 08:01) [0]

Добрый день! При авторизации пользователь вводит свои логин и пароль в формы, затем значения текстовых полей присваиваются переменным $PHP_AUTH_USER и $PHP_AUTH_PW. Но вот беда, если вызвать эти переменные с других скриптов на других страницах, то вылетает ошибка, что переменные не определены.С другой стороны во всех учебниках указано, что данные переменные доступны со всех страниц в одном и том же окне браузера. Что я делаю не так?


 
SerJaNT ©   (2006-09-08 08:04) [1]

нужно эти переменные объявить глобальными.

global $PHP_AUTH_USER, $PHP_AUTH_PW;


 
SerJaNT ©   (2006-09-08 08:06) [2]

Хотя вот так должно работать:

1.php

<?php
$a = "preved krozavcheg";
?>


2. php

<?php
include "1.php";
print $a; // выведет preved krozavcheg
?>


 
SerJaNT ©   (2006-09-08 08:10) [3]


> С другой стороны во всех учебниках указано, что данные переменные
> доступны со всех страниц в одном и том же окне браузера.
>


В пределах одного скрипта и если другие скрипты подгружать через inluce, например.


 
McSimm ©   (2006-09-08 10:29) [4]


> присваиваются переменным $PHP_AUTH_USER и $PHP_AUTH_PW

лучше использовать $_SERVER["PHP_AUTH_USER"]


> если вызвать эти переменные с других скриптов на других
> страницах

Домен должен быть тот же.


 
Алхимик ©   (2006-09-08 10:39) [5]

Может воспользоваться механизмом сессий?
http://www.codenet.ru/webmast/php/PHP-Sessions.php
вкраце:
index.php
<?
  session_start();
  //... авторизация ...
  $_SESSION["PHP_AUTH_USER"] = ...
  $_SESSION["PHP_AUTH_PW"] = ...
?>
other.php
<?
  session_start();
  echo $_SESSION["PHP_AUTH_USER"];
  echo $_SESSION["PHP_AUTH_PW"];
?>


 
num   (2006-09-09 13:19) [6]


> SerJaNT ©   (08.09.06 08:04) [1]
> нужно эти переменные объявить глобальными

Допустим, я не хочу, чтобы пользователь оставлял комментарии не будучи авторизованным, т.е. на странице с выводом текста,статьи я проверяю
if ((isset($PHP_AUTH_USER))AND(isset($PHP_AUTH_PW)))
{
вывожу форму для комментария
}

Тут я просто проверил переменные на существование.Понятно, что когда пользователь не автор., то форма выводиться не должна.Однако, когда пользователь автор., объявились глобальные переменные, то должно же вроде работать, но нет...


 
Другой ©   (2006-09-09 13:25) [7]

Я бы тоже пригледелся к [5], т.к. сессии не зря придуманы.


 
Другой ©   (2006-09-09 13:27) [8]

Тем более, что создав сессию уже можно не проверять пользователя и пароль.


 
Другой ©   (2006-09-09 13:27) [9]

[8] в других сриптах.
:)


 
SerJaNT ©   (2006-09-09 13:55) [10]


> объявились глобальные переменные, то должно же вроде работать,
>  но нет...


Если переменная ДО объявления глобальной была пустой то ничего выводиться не будет. Пустая переменная == false. Поэтому прежде чем использовать глобальную переменную ее нужно проверить а не пустая ли она.

Когда юзер авторизировался, пишешь в сессию что-то вроде $_session["logged"]=true;

а в том файле где проверяешь,

session_start();

if ($_session["logged") {
echo "юзер вошел";
} else {
echo "сначала авторизируйся";
}


 
num   (2006-09-09 16:32) [11]

мммм...как бы обяснить....

Добустим , в скрипте авторизации пишу:
if ((isset($log))and(isset($pass)))
{
session_start();
session_register("auth");
$auth=1;
}

А на главной странице проверяю: если auth=1, то все ок и т.д.
Пользователь открывает браузер, заходит на главную страницу, а тут в скрипте идет проверка: если auth=1 и т.д. Но ведь он еще не авторизовывался, сессии не открывались и переменная auth не существует, пока он не автори-ся....
Если в начале главной странице присваивать auth=0, то все пройдет корректно, потом пользователь авто-ся,но когда зайдет на главную auth опять обнулится....вот это я хочу уточнить....


 
num   (2006-09-09 16:51) [12]

Все разобрался,блин, isset же есть.... надо идти спать, тем более ночной ливень к этому располагает...Спасибо всем....



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2006.10.01;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.014 c
15-1157791053
Konstantin555
2006-09-09 12:37
2006.10.01
Что написать в BAT-файле для запуска соединения с Интернет?


5-1139913121
max1000
2006-02-14 13:32
2006.10.01
Возвращаясь к Tpanel .Зависает Delphi.


2-1158216257
ГореПрограммер
2006-09-14 10:44
2006.10.01
Пересчет координат


2-1158054701
zdm
2006-09-12 13:51
2006.10.01
C++


2-1157735163
Juri
2006-09-08 21:06
2006.10.01
Отправить E-Mail





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский