Сессии и как ими управлять? Внимание вопрос

volkovics

Новичок
Привет всем!

Недавно начал учить пхп, походу дела возник вопрос и не один. Бился я очень много времени, прочитал много информации, нужной и не нужной. Всеравно не получается.

Вот код авторизации, который я использую:

PHP:
<?php 
session_start(); //Запускаем сессии 


class AuthClass { 
    private $_login = "admin"; //Устанавливаем логин 
    private $_password = "admin"; //Устанавливаем пароль 

    /** 
     * Проверяет, авторизован пользователь или нет 
     * Возвращает true если авторизован, иначе false 
     * @return boolean  
     */ 
    public function isAuth() { 
        if (isset($_SESSION["is_auth"])) { //Если сессия существует 
            return $_SESSION["is_auth"]; //Возвращаем значение переменной сессии is_auth (хранит true если авторизован, false если не авторизован)
        } 
        else return false; //Пользователь не авторизован, т.к. переменная is_auth не создана 
    } 
     
    /** 
     * Авторизация пользователя 
     * @param string $login 
     * @param string $passwors  
     */ 
    public function auth($login, $passwors) { 
        if ($login == $this->_login && $passwors == $this->_password) { //Если логин и пароль введены правильно 
            $_SESSION["is_auth"] = true; //Делаем пользователя авторизованным 
            $_SESSION["login"] = $login; //Записываем в сессию логин пользователя 
            return true; 
        } 
        else { //Логин и пароль не подошел 
            $_SESSION["is_auth"] = false; 
            return false;  
        } 
    } 
     
    /** 
     * Метод возвращает логин авторизованного пользователя  
     */ 
    public function getLogin() { 
        if ($this->isAuth()) { //Если пользователь авторизован 
            return $_SESSION["login"]; //Возвращаем логин, который записан в сессию 
        } 
    } 
     
     
    public function out() { 
        $_SESSION = array(); //Очищаем сессию 
        session_destroy(); //Уничтожаем 
    } 
} 

$auth = new AuthClass(); 

if (isset($_POST["login"]) && isset($_POST["password"])) { //Если логин и пароль были отправлены 
    if (!$auth->auth($_POST["login"], $_POST["password"])) { //Если логин и пароль введен не правильно 
        echo "<h2 style=\"color:red;\">Логин и пароль введен не правильно!</h2>"; 
    } 
} 

if (isset($_GET["is_exit"])) { //Если нажата кнопка выхода 
    if ($_GET["is_exit"] == 1) { 
        $auth->out(); //Выходим 
        header("Location: ?is_exit=0"); //Редирект после выхода 
    } 
} 
?> 

<?php if ($auth->isAuth()) { // Если пользователь авторизован, приветствуем:   
    echo "Здравствуйте, " . $auth->getLogin() ; 
    echo "<br/><br/><a href=\"?is_exit=1\">Выйти</a>"; //Показываем кнопку выхода 
}  
else { //Если не авторизован, показываем форму ввода логина и пароля 
?>
<form method="post" action="">
    Логин: <input type="text" name="login" 
    value="<?php echo (isset($_POST["login"])) ? $_POST["login"] : null; // Заполняем поле по умолчанию ?>" />
    <br/>
    Пароль: <input type="password" name="password" value="" /><br/>
    <input type="submit" value="Войти" />
</form>
<?php } ?>

Вопрос, у меня есть главная страница и я хочу, чтобы на ней в определенном мною месте появлялась надпись:

Привет, $username!
<a href="ссылка_на_страницу_добавления_новости">Добавить новость</a>

Понимаю, что вопрос совсем детский, но у меня не получается, а друзей или просвященных знакомых нет.
Читал, что на всех страницах, где я хочу использовать сессию, нужно ставить код:
PHP:
<?php session_start(); ?>

Я ставлю, но не совсем разобрался, что дальше делать-то.
Выражаю заранее много благодарности за помощь.
 
так ведь в приведенном коде как раз есть кусок, который именно это и делает, только ссылка другая
 
А как тебе помочь, если ты вообще в этом не разбираешься?

У тебя сейчас должна появляться надпись
Здравствуйте, имя_пользователя
выйти

ты не можешь "здравствуйте" заменить на "привет"? или в чем проблема?
 
так ведь в приведенном коде как раз есть кусок, который именно это и делает, только ссылка другая

Я не совсем правильно поставил вопрос.

Данный код расположен на отдельной странице. Странице авторизации.
У меня есть главная страница и я хочу, чтобы на ней в определенном мною месте появлялась надпись, которую видно только после авторизации.
 
1. Вызов session_start поместить в конструктор.
2. поместить код AuthClass в отдельный файл.
3. приинклюдить файл на страницу, где нужна авторизация.
4. создать объект класса.
5. написать код, выводящий приветствие и ссылку
 
в приведенном выше коде есть фрагмент, который выводит текст только для авторизованного пользователя, причем по комментариям даже видно какие строчки за это отвечают
что ещё нужно?
 
AmdY
книга хорошо, качнул (для тест просмотра - потом куплю) посмотрел, как бы сказал картмен щщщикарная =) НО!
там по теме ТС вообще ничего нет =)))
 
Иван Redjik Матвеев
там авторизация разжёвана от и до вроде.
 
[offtop]
Кстати на счёт книг, кто-то знает где электронную версию можно купить этой и других интересных книжек вроде "Рефакторинга" Фаулера или "SQL" Грабера? Русскоязычный желательно, т.к. на полноценное чтение книги моего английского не хватит. Вообще электронные книги где покупаете? А-то только в бумажном виде есть кое-что либо нечитабельные сканы в жутком djvu.
[/offtop]
 
[offtop]
Кстати на счёт книг, кто-то знает где электронную версию можно купить этой и других интересных книжек вроде "Рефакторинга" Фаулера или "SQL" Грабера? Вообще электронные книги где покупаете? А-то только в бумажном виде есть кое-что либо нечитабельные сканы в жутком djvu.
[/offtop]
На амазоне часто есть вроде.
 
Вообще электронные книги где покупаете? А-то только в бумажном виде есть кое-что либо нечитабельные сканы в жутком djvu.
Самое интересное, что многих новых книг на русском в электронном просто нет.
Пиратство поощряют таким способом походу.
 
Сверху