Главная страница
    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.015 c
15-1157786112
Копир
2006-09-09 11:15
2006.10.01
Исламизм как новый тоталитаризм


2-1157799112
Viser
2006-09-09 14:51
2006.10.01
Ручная компиляция


1-1155918541
msn777
2006-08-18 20:29
2006.10.01
Глюк расстановки мест под точки останова.


15-1157860374
vrem
2006-09-10 07:52
2006.10.01
Грузины, чего там у вас?


15-1158120543
vajo
2006-09-13 08:09
2006.10.01
Проблема с почтой





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский