Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Поиск пароля...
 
 автор: JESS   (21.03.2008 в 03:28)   письмо автору
 
 

Здравствуйте!!! Вот я написал аскрипт авторизации пользовалей, но авторизироваться может только тото пользователь который зарегистрировался последний, в чем проблема помогите!
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&#246;senord";
    }
break;
?>

   
 
 автор: Max Vasin   (21.03.2008 в 04:36)   письмо автору
 
   для: JESS   (21.03.2008 в 03:28)
 

ошибка здесь
if (($user_name== $data[0])&&($user_pass== $data[1]))
не тот, имхо, массив берете

----
Regards, Max Vasin.

   
 
 автор: JESS   (21.03.2008 в 04:49)   письмо автору
 
   для: Max Vasin   (21.03.2008 в 04:36)
 

да я что то все препробовала, ни как не идет, а как массив можно сделать?
И еще странно как то, на Localhost можно авторитизироваться, а когда на сайт поставил пишет все время ошибка в имени или пароле, в чем дело?

   
 
 автор: Atheist   (21.03.2008 в 11:53)   письмо автору
 
   для: JESS   (21.03.2008 в 04:49)
 

> JESS (21.03.2008 в 03:28)
> Вот я написал аскрипт авторизации пользовалей

> JESS (21.03.2008 в 04:49)
> да я что то все препробовала

Это как так? М или Ж?

   
 
 автор: JESS   (21.03.2008 в 12:16)   письмо автору
 
   для: Atheist   (21.03.2008 в 11:53)
 

хаах, Ж

   
 
 автор: Atheist   (21.03.2008 в 12:26)   письмо автору
 
   для: JESS   (21.03.2008 в 12:16)
 

На localhost наверняка получилось так, что пользователь, под которым ты заходишь находится в конце файла "pass.txt". А на удаленном сервере нет.

Нужно делать проверку прямо в цикле (иначе массив $data так и будет содержать значения последнего пользователя). $temp вообще не понятно зачем нужен.

   
 
 автор: JESS   (21.03.2008 в 12:28)   письмо автору
 
   для: Atheist   (21.03.2008 в 12:26)
 

да, как то еще странно, записала вместо $data[0] и $data [1] имя и пароль, но все равно и не идет.... ничего не понимаю...

   
 
 автор: Atheist   (21.03.2008 в 12:31)   письмо автору
 
   для: JESS   (21.03.2008 в 12:28)
 

Так переменные $user_name и $user_pass взялись из воздуха.

   
 
 автор: JESS   (21.03.2008 в 13:18)   письмо автору
 
   для: 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&#246;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&#246;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>

   
 
 автор: Atheist   (21.03.2008 в 13:30)   письмо автору
 
   для: JESS   (21.03.2008 в 13:18)
 

Перед этим:
> if (($user_name == $name)&&($user_pass == $pass))

Надо написать
$user_name = @$_POST['user_name'];
$user_pass = @$_POST['user_pass'];

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования