|
|
|
| Не могли бы вы посмотреть код и упростить его, в принципе задача скрипта маленькая, а сам скрипт такой громоздкий у меня получился, может что то можно упростить?
заранее спасибо.
<?
session_start();
function logout()
{
session_start();
$_SESSION=array();
session_destroy();
}
function form()
{
echo"<form action=index.php method=post>
Логин <br><input name=login maxlength=20><br>
Пароль <br><input type=password name=password maxlength=20><br>
<input type=submit value=Войти></form>";
}
if(isset($_SESSION['login']) && !empty($_SESSION['login']))
{
echo "$_SESSION[login] you online!";
echo '<br /><a href="page1.php">page 2</a>';
echo '<br><a href="log.php">log.php</a>';
echo '<a href="?logout=1">Logout</a>';
if ($_GET['logout']=="1")
{
logout();
}
}
else
{
form();
$login = $_POST['login'];
$password = $_POST['password'];
if (!empty($login) && !empty($password))
{
include('settings.php');
mysql_pconnect("localhost", "$dbuser", "$dbpass");
mysql_select_db("$db");
$query = "SELECT * FROM users WHERE login='$login' AND password='$password'";
$result = mysql_query($query);
$row = mysql_fetch_array($result, MYSQL_ASSOC);
if ($login==$row["login"] && $password==$row["password"])
{
echo "$login, you online!";
echo '<a href="?logout=1">Logout</a>';
echo '<br /><a href="page1.php">page 2</a>';
echo '<br><a href="log.php">log.php</a>';
}
else {
logout();
echo "Incorrect pass/login";
}
}
}
?>
|
| |
|
|
|
|
|
|
|
для: skazi
(25.11.2006 в 16:48)
| | Никто не хочет мне помочь? :) | |
|
|
|
|
|
|
|
для: skazi
(25.11.2006 в 17:38)
| | мне например не кажется что код громоздкий...
едиственное что бы я изменил так это вместо нескольких подряд вызовов echo сделал бы один.. и ещё мне кажется что лучше настройки и соединение с базой сделать в одном отдельном скрипте котороый инклудится во все твои модули работающие с этой базой | |
|
|
|
|
|
|
|
для: _Dreamer_
(25.11.2006 в 17:42)
| | а в целомм, как вы считаете, скрипт правильно написан?
правильно всмысле без никаких грубых ошибок и т.п. | |
|
|
|
|
|
|
|
для: skazi
(25.11.2006 в 17:46)
| | хм... все ок ))
только вместо
$query = "SELECT * FROM users WHERE login='$login' AND password='$password'";
$result = mysql_query($query);
$row = mysql_fetch_array($result, MYSQL_ASSOC);
if ($login==$row["login"] && $password==$row["password"])
{
echo "$login, you online!";
echo '<a href="?logout=1">Logout</a>';
echo '<br /><a href="page1.php">page 2</a>';
echo '<br><a href="log.php">log.php</a>';
}
|
как мне кажется правильнее так
list($count) = @mysql_fetch_row(@mysql_query("SELECT count(*) FROM users WHERE login='$login' AND password='$password' LIMIT 1"));
if ($count == 1)
{
echo "$login, you online!";
echo '<a href="?logout=1">Logout</a>';
echo '<br /><a href="page1.php">page 2</a>';
echo '<br><a href="log.php">log.php</a>';
}
|
| |
|
|
|
|
|
|
|
для: _Dreamer_
(25.11.2006 в 17:51)
| | И еще вопрос:
когда я залогинился, нажимаю на page1.php и возвращаюсь обратно(нажатием ссылки в page1.php) то у меня опять выводиться форма, хотя вначале скрипта есть проверка на сессии | |
|
|
|
|
|
|
|
для: skazi
(25.11.2006 в 17:56)
| | слушай.. я тут у себя проверил.. так вот...
1.
if(isset($_SESSION['login']) && !empty($_SESSION['login']))
|
- лучше так
if(session_is_registered('login') && session_is_registered('password'))
|
2. у тебя после
if ($login==$row["login"] && $password==$row["password"])
|
идет просто вывод сообщения об авторизации...
а нужно ещё регестрировать переменные в сессии
например так..
session_register('login');
session_register('password');
|
| |
|
|
|
|
|
|
|
для: _Dreamer_
(25.11.2006 в 18:13)
| | спасибо, все оки) | |
|
|
|