Клуб мобильного творчества
*
Эх, сессия, а у меня ни одной лабы по php не сделано:)

Как можно проверить, просто юзер это или залогиневшийся юзер?
Изменил(а) IgoRRReK 22.11.12 в 17:44
*
в зависимости от алгоритма регистрации и авторизации. Чаще это связка сессия + куки
*
seg0ro, у нас тупо логин пароль, без шифрования и сессий, просто в открытую пароль в базе хранится, его можно видеть. Вот чел зашел, как дальше сделать, чтобы было видно, что это он
*
of чиркану простейший механизм
*
значит так, база `users` имеет такой вид:
|uid | login | password|
––––––––––––––––––––––––
| 1  | Admin | 1234567 |
код авторизации:
<?php
if ($_POST['login'] && $_POST['password']){
  
$query mysql_query("SELECT * FROM `users` WHERE `login` = '".mysql_real_escape_string($_POST['login'])."' AND `password` = '".mysql_real_escape_string($_POST['password'])."' LIMIT 1 ");  
  if (
mysql_num_rows($query)){
    
$res mysql_fetch_assoc($query);
    
$_SESSION['uid'] = $res['uid'];
    
$_SESSION['password'] = $_POST['password'];
    echo 
'<p>Авторизация прошла.</p>';
  }else{
    echo 
'<p>Ошибка авторизации!</p>';
  }
}else{
  echo 
'<p><form action="" action="post">Логин: <input name="login" /><br />Пароль: <input name="password" /><br /><input type="submit" /></form></p>';
}
?>
Проверка в начале скрипта:
<?php
if (!empty($_SESSION['uid']) && !empty($_SESSION['password'])){
  
$query mysql_query("SELECT * FROM `users` WHERE `login` = '".mysql_real_escape_string($_SESSION['uid'])."' AND `password` = '".mysql_real_escape_string($_SESSION['password'])."' LIMIT 1 ");
  if (
mysql_num_rows($query)){
    
$res mysql_fetch_assoc($query);
  }else{
    unset(
$_SESSION['uid']);
    unset(
$_SESSION['password']);
  }
}
?>
Механизм авторизации только на сессиях!
*
есть вопросы - задавай, комментариями не стал обременять - проще так обьяснить
*
спасибо:)
*
что то не робит...

<!DOCTYPE html PUBLIC "–//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml–mobile10.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru">
<head><title>лол</title></head>
<body>
    <?
        
include("kernel.php"); //данные MySQL
    
?>

<?php 
    
if (!empty($_SESSION['id']) && !empty($_SESSION['pass'])){ 
      
$query mysql_query("SELECT * FROM `bd_lab1` WHERE `login` = '".mysql_real_escape_string($_SESSION['id'])."' AND `pass` = '".mysql_real_escape_string($_SESSION['pass'])."' LIMIT 1 "); 
      if (
mysql_num_rows($query)){ 
        
$res mysql_fetch_assoc($query); 
      }else{ 
        unset(
$_SESSION['id']); 
        unset(
$_SESSION['pass']); 
      } 
    } 
    
    
    
 
    if (
$_POST['login'] && $_POST['pass']){ 
      
$query mysql_query("SELECT * FROM `bd_lab1` WHERE `login` = '".mysql_real_escape_string($_POST['login'])."' AND `pass` = '".mysql_real_escape_string($_POST['pass'])."' LIMIT 1 ");   
      if (
mysql_num_rows($query)){ 
        
$res mysql_fetch_assoc($query); 
        
$_SESSION['id'] = $res['id']; 
        
$_SESSION['pass'] = $_POST['pass']; 
        echo 
'<p>Авторизация прошла.</p>'
      }else{ 
        echo 
'<p>Ошибка авторизации!</p>'
      } 
    }else{ 
      echo 
'<p><form action="" action="post">Логин: <input name="login" /><br />Пароль: <input name="pass" /><br /><input type="submit" /></form></p>'
    } 
    

        
    
?>
</body>
</html>
Файл(ы):
Bezymyannyy.png (19.31 Кб) 193 раз(а)
*
самое трудное и не ясное - это кавычки и обращения к бд
*
а лекций нифига не было... ну как были, три, и я с интересом ходил, только что такое хост и домен в подробностях рассказали, дали методичку, сиди разбирайся...
Изменил(а) IgoRRReK 23.11.12 в 18:11