Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.10.01;
Скачать: CL | DM;

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.029 c
2-1158141295
KyRo
2006-09-13 13:54
2006.10.01
Как сделать прогрес бар


2-1158215081
greengeneral
2006-09-14 10:24
2006.10.01
Счетчик


4-1148825708
chizra
2006-05-28 18:15
2006.10.01
Как узнать позицию указателя открытого средствами API файла?


15-1158135522
QuickFinder
2006-09-13 12:18
2006.10.01
Audio -> MP3


15-1157862068
так себе
2006-09-10 08:21
2006.10.01
С Днем танкиста! А есть ли среди нас танкисты?