|
|
|
| Здравствуйте!!! Вот я написал аскрипт авторизации пользовалей, но авторизироваться может только тото пользователь который зарегистрировался последний, в чем проблема помогите!
A имя и пароль хроняться в текстовом файле, вто так:
jess::1a1dc91c907325c69271dgfgd446::13@rambler.ru
asd::1a1dc91c9073sd435sdfsfsdfss3s5::pass@rambler.ru
<?php
case 'auth':
{
session_start();
$filename = "pass.txt";
$arr = file($filename);
$i = 0;
$temp = array();
foreach($arr as $line)
{
$data = explode("::",$line);
$temp['name'][$i] = $data[0];
$temp['password'][$i] = $data[1];
$temp['email'][$i] = $data[2];
$i++;
}
$user_pass = md5($user_pass);
if ($submit)
{
if (($user_name== $data[0])&&($user_pass== $data[1]))
{
$login_user=$user_name;
session_register("login_user");
header("location: ?page=main");
exit;
}
}
print "Fel namn eller lösenord";
}
break;
?>
|
| |
|
|
|
|
|
|
|
для: JESS
(21.03.2008 в 03:28)
| | ошибка здесь
if (($user_name== $data[0])&&($user_pass== $data[1]))
не тот, имхо, массив берете
----
Regards, Max Vasin. | |
|
|
|
|
|
|
|
для: Max Vasin
(21.03.2008 в 04:36)
| | да я что то все препробовала, ни как не идет, а как массив можно сделать?
И еще странно как то, на Localhost можно авторитизироваться, а когда на сайт поставил пишет все время ошибка в имени или пароле, в чем дело? | |
|
|
|
|
|
|
|
для: JESS
(21.03.2008 в 04:49)
| | > JESS (21.03.2008 в 03:28)
> Вот я написал аскрипт авторизации пользовалей
> JESS (21.03.2008 в 04:49)
> да я что то все препробовала
Это как так? М или Ж? | |
|
|
|
|
|
|
|
для: Atheist
(21.03.2008 в 11:53)
| | хаах, Ж | |
|
|
|
|
|
|
|
для: JESS
(21.03.2008 в 12:16)
| | На localhost наверняка получилось так, что пользователь, под которым ты заходишь находится в конце файла "pass.txt". А на удаленном сервере нет.
Нужно делать проверку прямо в цикле (иначе массив $data так и будет содержать значения последнего пользователя). $temp вообще не понятно зачем нужен. | |
|
|
|
|
|
|
|
для: Atheist
(21.03.2008 в 12:26)
| | да, как то еще странно, записала вместо $data[0] и $data [1] имя и пароль, но все равно и не идет.... ничего не понимаю... | |
|
|
|
|
|
|
|
для: JESS
(21.03.2008 в 12:28)
| | Так переменные $user_name и $user_pass взялись из воздуха. | |
|
|
|
|
|
|
|
для: Atheist
(21.03.2008 в 12:31)
| | ну вот здесь код с самого начала, состоит из 3 честей, помогите найти ошибку, в авторизации...
index.php
<?php
session_start();
if (!isset($login_user))
{
echo "<form action='auth.php' method='post'>
Namn: <input type='text' name='user_name'><br>
Lösenord: <input type='password' name='user_pass'><br>
<input type='submit' name='submit' value='Logga in'>";
//header ("location: index.php");
} else {
header ("location: done.php");
exit;
}
?>
|
auth.php
<?php
session_start();
$name = 'jess';
$pass = 'pass';
if ($submit)
{
if (($user_name == $name)&&($user_pass == $pass))
{
$login_user=$user_name;
//setcookie('user_name', $_POST['user_name'], time()+60*60*24, "/", 1);
//setcookie('user_pass', $user_pass, time()+60*60*24, "/", 1);
//$name = $_COOKIE['user_name'];
session_register("login_user");
header("location: done.php");
exit;
}
}
?>
<html>
<body>
Fel namn eller lösenord!
</body>
</html>
|
done.php
<?php
unset($login_user);
session_start();
if (!isset($login_user))
{
header ("location: index.php");
exit;
}
?>
<html>
<body>
Hello,
<?php
echo "$login_user";
print "<br>";
if(isset($_GET['page'])) $mod = $_GET['page'];
if(isset($_GET['page'])==false) {
print "<a href='?page=1'>One</a><br><a href='?page=2'>Two</a>";
}
if(isset($mod))
{
switch($mod)
{
case '1':
{
print "how are you?";
}
break;
case '2':
{
print "What do you do?";
}
break;
default: $menu = 'home.htm'; break;
}
}
?>
</body>
</html>
|
| |
|
|
|
|
|
|
|
для: JESS
(21.03.2008 в 13:18)
| | Перед этим:
> if (($user_name == $name)&&($user_pass == $pass))
Надо написать
$user_name = @$_POST['user_name'];
$user_pass = @$_POST['user_pass']; | |
|
|
|