Эта тема на forum.dklab.ru


BoFFiN:
Я решил не создавать новую тему, т.к. подходящего для неё название придумать не смог... :)
Принципе название этой темы, подходит мне.. :)

<?
$header="Вход в админ-центр";
$mylogin="admin";
$mypass="password";
if(isset($password)) { $header="Логин или пароль не опознаны"; }
if((@$admin!=$mylogin) || (@$password!=$mypass)) {
?>
<form method="POST" action="<?$_SERVER['PHP_SELF']?>">
Админ:</td><td align=center><input type=text name=admin size=27 value="">
Пароль:</td><td align=center><input type=text name=password size=27 value="">
<input type=submit name="button" value=" ..:: Войти ::.. " class=submit><br>
</form>
<?
} else {
$header="Меню админ-центра";
if(@$action=="") {
echo "<a href=\"?admin=admin&password=password&action=answer\">Ответить в гостевой книге</a> ";
} if(@$action=="answer") {} else {}
}
?>

Загвозка вот в чём, обратите внимание:" echo "<a href=\"?admin=admin&password=password&action=answer\">
Ответить</a>"; "
Чтобы перейти к действию action, мне приходиться указывать все параметры т.е. логин, пароль,
и только потом само действие. А хотелось бы дать ссылку, типа такой:
"<a href="?action=answer">Ответить</a>", но при нажатии на неё,
он выкидывает на форму логина и пароля, т.к. логин и пароль теряются...
Да и когда подводишь к ссылке:"<a href=\"?admin=admin&password=password&action=answer\">"
Сразу всё видно, и логин и пароль, не по-человечески это.. и глупо...
В некоторых скриптах(гостевых книгах)
видел на подобе такой ссылке: "<a href="?action=answer">Ответить</a>",
т.е. не логина и не пароля они не передавали!
Как же они это реализовали?
Дмитрий Котеров:
Выделено из темы «Незнаю как подступиться....»,
расположенной в форуме Программирование::PHP::Все в кучу (01 Августа 2003, 12:59).
Дмитрий Котеров:
Принципе название этой темы, подходит мне
А нам — нет.

http://php.net/setcookie
http://php.net/session
BoFFiN:
Дмитрий Котеров

А без куки и сессий по другому никак?
WingedFox:
Можно еще и телепатически. 8*)

А если извернуться, то и через POST.
BoFFiN:
WingedFox

А если извернуться, то и через POST.

Как?

З.Ы. Давайте если отвечать, то сразу и чтоб понятно было, а не так пол слова, чтоб потом 10 раз переспрашивали..
WingedFox:
Элементарно, Ватсон.

У формы есть функция submit() - вот с ее помощью и передаете логин с паролем.
Простейший пример жабаскрипта.
Подсказка: href тоже можно использовать жабаскрипт.

PS: А в этом случае спрашивающий не захочет своей головой думать =)
BoFFiN:
WingedFox


У формы есть функция submit() - вот с ее помощью и передаете логин с паролем.
Простейший пример жабаскрипта.
Подсказка: href тоже можно использовать жабаскрипт.
Эх.. :) Привидите пример пожалуйста, использование href "жабаскрипта" и сам простеший пример "жабаскрипта", т
ак как с жабой я вообще не знаком....
А еще лучше если вы покажете как это можно использовать на моем примере...


PS: А в этом случае спрашивающий не захочет своей головой думать =)
Вы ошибаетесь.. :)) Если задал вопрос, значит уже думает...
Юрий Насретдинов:
то и через POST.
Можно не изворачиваться. Просто заменить все ссылки на кнопки <input type=submit name=action value='действие'>
BoFFiN:
yUAC

Можно не изворачиваться. Просто заменить все ссылки на кнопки <input type=submit name=action value='действие'>

Нет с кнопками вариант не подходит....
Дмитрий Котеров:
Да чем Вам сессии-то не подходят? Или куки?
Есть еще третий способ — авторизация Apache. Но только для этого PHP должен быть установлен в виде модуля Apache (часто так и есть).


// Библиотека для проведения аутентификации. Для изменения логина и пароля
// по умолчанию измените следующие макросы:
define("AdmName","admin"); // имя админа
define("AdmPass","admin"); // пароль админа


// Возвращает неноль, если пользователь с именем $nm и паролем $pass зарегистрировался.
function Authenticated($nm=AdmName,$pass=AdmPass)
{ global $COMSPEC,$PHP_AUTH_USER,$PHP_AUTH_PW; if(isSet($COMSPEC)) return 1;
if(!isSet($PHP_AUTH_USER)||!isSet($PHP_AUTH_PW)||$PHP_AUTH_USER!=$nm||$PHP_AUTH_PW!=$pass) return 0;
return 1;
}


// Проводит авторизацию (проверку имени и пароля). В случае ошибки выкидывает
// сообщение о 403 Ошибке.
// Эту функцию удобно использовать для авторизации администратора, который только один.
function Authenticate($realm="Admin authentication",$nm=AdmName,$pass=AdmPass)
{ if(!Authenticated($nm,$pass))
{ Header("WWW-Authenticate: Basic realm=\"$realm\"");
Header("HTTP/1.0 401 Unauthorized");
exit();
}
}


// Проводит авторизацию. Для проверки имени пользователя/пароля вызывается
// функция-параметр $FCheck($name,$pass) - если она возвращает не ноль, то
// авторизация проходит.
// Функция возвращает имя авторизованного пользователя.
function AuthUser($FCheck,$realm="User authentication")
{ global $COMSPEC,$PHP_AUTH_USER,$PHP_AUTH_PW; if(isSet($COMSPEC)) return;
if(!isSet($PHP_AUTH_USER)||!isSet($PHP_AUTH_PW)||!FCheck($PHP_AUTH_USER,$PHP_AUTH_PW))
{ Header("WWW-Authenticate: Basic realm=\"$realm\"");
Header("HTTP/1.0 401 Unauthorized");
exit();
}
}

WingedFox:
href="javascript:form.submit()"

Все остальное к жабаскрипту отношения не имеет.
И вообще - rtfm.

PS: Как раз Ваш пример показывает, что не думает.
Разве трудно набрать в любом поисковике "href javascript" для получения кучи примеров и инструкций?
BoFFiN:
Дмитрий Котеров

Спасибо...

WingedFox
и тебе...

Эта тема на forum.dklab.ru