Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Авторизация


Автор: starmaster 6.11.2004, 20:36
Расскжите как по нормальному создавать авторизацию в админку без БД и .htaccess, желательно с примером...
Я пробовал так, но всё тщетно:
Первая страница:
Код

<?php
session_start();
session_register("$user". "$passwd");
?>
<form action=admin.php?page=1 method=post>
<input type=text name=aName><br>
<input type=text name=aPass><br>
<input type=submit value="Check!">
</form>


Вторая страница:
Код

<?
session_start();
$login="admin";
$pass="pass";
if (($aName=$login) && ($aPass=$pass))
{
$user=$login;
$passwd=$pass;
}
if (($user=$login) && ($passwd=$pass))
{
echo "<a href=admin.php?page=2>...</a>";
}
else
{
echo "Not Logged In!";
}
?>

Автор: Black 6.11.2004, 21:51
Странный у тебя скрипт два раза проверяет одно и тоже и есть ошибка = это присваивание переменной значения а нам надо сравнить поэтому надо ==

вот так лучше будет:
==========================================
<?
session_start();
$login="admin";
$pass="pass";
if (($aName==$login) && ($aPass==$pass))
{
echo "<a href=admin.php?page=2>...</a>";
}
else
{
echo "Неправильные пароль и логин";
}
?>
==========================================



Добавлено @ 21:55
а еще после session_start();
напиши:
session_register(@$aName);
session_register(@$aPass);

хотя сессии здесь неуместны и вообще ты их не правильно задаешь в первом скрипте... просто передавай логин и пароль как переменные скрипту и все.... а вот после захода в админ часть там уже делать сессию по логину... удачи.

Автор: Graf Zeppelin 13.11.2004, 20:39
Безопасней делать не через стандартные сессии а через связь с MySQL. Могу выложить скрипт.

Автор: Black 13.11.2004, 22:17
Graf Zeppelin
Согласен, но опять таки без сессии не обойтись... надо же потом будет как-то узнавать пользователя, если он будет переходить от одной страницы к другой (соответственно, с разными PHP скриптами). Можно правда еще использовать Куки но это действительно небезопасно для пользователя. А через MySQL я всегда проверяю пароли, ведь когда их много не в скрипт же их писать smile

Автор: penizillin 13.11.2004, 22:50
ну, без сессий обойтись можно, особенно если нужно избежать использования куки (sid и в ручную передать можно)... и все таки не стоит везде, где не попадя, использовать "@".

Автор: Black 14.11.2004, 01:29
а почему нельзя использовать @??? Объясни мне smile

Автор: Graf Zeppelin 14.11.2004, 01:29
ЭЭэ у меня смотри, просто есть файл functions.php который подключается ко всеп файлам. Пэтому где пользователь не бегал, его всегда секут smile В общем офигенный скрипт сделал. smile

Автор: penizillin 14.11.2004, 16:57
я не говорил про "нельзя", а про "не стоит".
Цитата
When prepended to an expression in PHP, any error messages that might be generated by that expression will be ignored.
имхо, если генерируется error/warning/notice, то нужно пересмотреть семантику и попытаться обработать ошибку. чаще всего это возможно.

Цитата
Currently the "@" error-control operator prefix will even disable error reporting for critical errors that will terminate script execution. Among other things, this means that if you use "@" to suppress errors from a certain function and either it isn't available or has been mistyped, the script will die right there with no indication as to why.
а это может значить, что в некоторых ситуациях время отладки приложения растет прямо-пропорционально кол-ву неуместно использованых сиволов "@".

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)