За последние 24 часа нас посетили 34715 программистов и 1751 робот. Сейчас ищут 1148 программистов ...

авторизация

Тема в разделе "Прочие вопросы по PHP", создана пользователем Ter, 10 июн 2011.

  1. Ter

    Ter Активный пользователь

    С нами с:
    5 июн 2011
    Сообщения:
    67
    Симпатии:
    0
    Вот решил сделать авторизацию, взял простой пример, но во время авторизации ничего не происходит... Может что подскажите? p.s. база данных состоит из id(primary key), bg(база данных), email(тот, что проверяется как логин), и pass(пароль).
    PHP:
    1.  
    2. <?php
    3.  
    4. if(!isset($PHP_AUTH_USER))
    5. // пользователь неизвестен
    6. {
    7.    header("WWW-Authenticate: Basic realm=\"Admin Center\"");
    8.    header("HTTP/1.0 401 Unauthorized");
    9.    header("show.php");
    10.    exit();
    11. }
    12. else
    13. // пользователь известен, неизвестен пароль
    14. {
    15.    // введенный пароль
    16.    $password = "$PHP_AUTH_PW";
    17.    // просмотр базы для получения реального пароля
    18.   require(\'../conf.php\');
    19. defined(\'PASSWORD\')or die(\'<html><head><title></title></head><body>Неудачно</body></html>\');
    20.   $link=new mysqli (SERVER, USERNAME, PASSWORD, DBNAME);
    21.   $result=mysql_query($link, "SELECT pass FROM auth WHERE email=$PHP_AUTH_USER, gb=ololo");
    22.   $row=mysql_fetch_array($result);
    23.   // проверка
    24.   if ($row==NULL)        // пользователя с таким именем нет в БД, выходим
    25.   {
    26.   header("WWW-Authenticate: Basic realm=\"Admin Center\"");
    27.   header("HTTP/1.0 401 Unauthorized");
    28.   header("show.php");
    29.        exit();
    30.   }
    31.   else                   // пользователь с таким именем есть в БД, проверка пароля
    32.   {
    33.       $real_password="$row[pass]";
    34.       if ($real_password!=$password)
    35.       {
    36.   header("WWW-Authenticate: Basic realm=\"Admin Center\"");
    37.   header("HTTP/1.0 401 Unauthorized");
    38.   header("admin.php");
    39.            exit();
    40.       }
    41.   }
    42. }
    43.  
    44. ?>
     
  2. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
  3. Ter

    Ter Активный пользователь

    С нами с:
    5 июн 2011
    Сообщения:
    67
    Симпатии:
    0
  4. Ter

    Ter Активный пользователь

    С нами с:
    5 июн 2011
    Сообщения:
    67
    Симпатии:
    0
    создал скрипт uni-auth.php, в свой admin.php вставил:
    PHP:
    1.  
    2. <?php
    3.  mysql_connect('localhost','root','123') or die(mysql_error());
    4.  mysql_select_db('gbook') or die(mysql_error());
    5.  mysql_query('SET NAMES cp1251');
    6.  
    7.  include('uni-auth.php');
    8.  
    9.  if(USER_LOGGED) {
    10.      if(!check_user($UserID)) logout();
    11.  ?>
    12.      <h1>Здравствуйте, <?php echo $UserName; ?>!</h1>
    13.      <h2>Ваш ID: <?php echo $UserID; ?>.</h2>
    14.      <h4><a href="?logout">Выход</a></h4>
    15.  <?php
    16.  }
    17.  else { ?>
    18.      <form method="POST" action="<?php echo $_SERVER['PHP_SELF']; ?>">
    19.      <table>
    20.      <tr>
    21.      <td>Имя:</td><td><input type="text" name="user"></td>
    22.      </tr>
    23.      <tr>
    24.      <td>Пароль:</td><td><input type="password" name="pass"></td>
    25.      </tr>
    26.      <tr>
    27.      <td colspan="2"><input type="submit" name="login" value="Войти"></td>
    28.      </tr>
    29.      </table>
    30.      </form>
    31.  <?php
    32.  }
    33.  ?>
    Ошибка:
    Код (Text):
    1. Warning: session_start() [function.session-start]: open(C:\DOCUME~1\ADMIN~1.KIR\LOCALS~1\Temp\php\session\sess_gvm07ttlhtih7ignl3jt8g92u3, O_RDWR) failed: No such file or directory (2) in D:\WWW\myportfolio\mysites\myguestbook\admin_mgb.php on line 2
    2.  
    3. Fatal error: Call to undefined function mysql_connect() in D:\WWW\myportfolio\mysites\myguestbook\admin_mgb.php on line 3
    4.  
    5. Warning: Unknown: open(C:\DOCUME~1\ADMIN~1.KIR\LOCALS~1\Temp\php\session\sess_gvm07ttlhtih7ignl3jt8g92u3, O_RDWR) failed: No such file or directory (2) in Unknown on line 0
    6.  
    7. Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (C:\DOCUME~1\ADMIN~1.KIR\LOCALS~1\Temp\php\session) in Unknown on line 0
    Что-то с сессиями?
     
  5. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    задай вручную папку для хранения сессий, не системную (которую сам создашь короче)
    загугли
     
  6. Ter

    Ter Активный пользователь

    С нами с:
    5 июн 2011
    Сообщения:
    67
    Симпатии:
    0
    с первым я догадался, там у меня просто путаница с пхпшными папками... щас буду со вторым думать)
     
  7. Ter

    Ter Активный пользователь

    С нами с:
    5 июн 2011
    Сообщения:
    67
    Симпатии:
    0
    всё)
     
  8. Alex_@

    Alex_@ Активный пользователь

    С нами с:
    1 окт 2009
    Сообщения:
    76
    Симпатии:
    0
    А если самому прописать функции

    PHP:
    1. sess_open
    2. sess_close
    3. sess_read
    4. sess_write
    5. sess_destroy
    6. sess_gc
    ??????


    типа этого


    PHP:
    1.  
    2.  
    3.  
    4. class session{  
    5.    
    6.     private static $db = null;
    7.    
    8.     public static function sess_cofig(){
    9.          array('session','sess_open'),
    10.          array('session','sess_close'),
    11.          array('session','sess_read'),
    12.          array('session','sess_write'),
    13.          array('session','sess_destroy'),
    14.          array('session','sess_gc')
    15.          );
    16.     }
    17.    
    18.     public static function sess_open($sawe_path,$session_name){
    19.         if(self::$db === null){
    20.             self::$db = loading::$db;
    21.             return false;
    22.         }
    23.         else{
    24.             return true;
    25.         }
    26.     }
    27.    
    28.     public static function sess_close(){
    29.         if(self::$db !== null){
    30.             self::$db->Close();
    31.             self::$db = null;
    32.         }
    33.     }
    34.    
    35.     public static function sess_read($id){
    36.         $result = self::$db->getWhere('session',array('se_id'=>md5($id.loading::$keys)));
    37.         if($result === false){
    38.             loading::getUser(array('uid'=>0,'ip'=>loading::$ip,'id'=>md5($id.loading::$keys),'se_time'=>time()));
    39.             return;
    40.         }
    41.         else{
    42.             loading::getUser($result[0]);
    43.             return $result[0]['ses_sid'];
    44.         }
    45.     }
    46.    
    47.     public static function sess_write($id,$session_date){
    48.           if (empty($_COOKIE[session_name()]) && empty($session_date)) {
    49.                 return TRUE;
    50.             }
    51.           $up = self::$db->Update('{session}',array('se_time'=>time()),array('se_id'=>md5($id.loading::$keys)));
    52.           if($up === false){
    53.             self::$db->Insert("{session}",array(0,loading::$ip,md5($id.loading::$keys),time()));
    54.             return false;
    55.           }
    56.           else{
    57.             return true;
    58.           }
    59.     }
    60.    
    61.     public static function sess_destroy($id){
    62.         setcookie(session_name(),"",time()-ini_get("session.cookie_lifetime"));
    63.         $result = self::$db->Delet('{session}',array('ses_sid'=>md5($id.loading::$keys)));
    64.         if($result === false){
    65.             return false;
    66.         }
    67.         else{
    68.            
    69.             return true;
    70.         }
    71.     }
    72.    
    73.         public static function sess_gc($max_life_time){
    74.         $time = time()-$max_life_time;
    75.         $result = self::$db->getQuery("DELET FROM {session} WHERE `time` < $time");
    76.         if($result === false){
    77.             return false;
    78.         }
    79.         else{
    80.             return true;
    81.         }
    82.     }
    83.    
    84.    
    85. }
    86.  
    данный класс для примера!