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

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(); ?>
Я ставлю, но не совсем разобрался, что дальше делать-то.
Выражаю заранее много благодарности за помощь.
 

Фанат

oncle terrible
Команда форума
так ведь в приведенном коде как раз есть кусок, который именно это и делает, только ссылка другая
 

Beavis

Banned
А как тебе помочь, если ты вообще в этом не разбираешься?

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

volkovics

Новичок
так ведь в приведенном коде как раз есть кусок, который именно это и делает, только ссылка другая
Я не совсем правильно поставил вопрос.

Данный код расположен на отдельной странице. Странице авторизации.
У меня есть главная страница и я хочу, чтобы на ней в определенном мною месте появлялась надпись, которую видно только после авторизации.
 

Фанат

oncle terrible
Команда форума
1. Вызов session_start поместить в конструктор.
2. поместить код AuthClass в отдельный файл.
3. приинклюдить файл на страницу, где нужна авторизация.
4. создать объект класса.
5. написать код, выводящий приветствие и ссылку
 

Beavis

Banned
в приведенном выше коде есть фрагмент, который выводит текст только для авторизованного пользователя, причем по комментариям даже видно какие строчки за это отвечают
что ещё нужно?
 

Redjik

Джедай-мастер
AmdY
книга хорошо, качнул (для тест просмотра - потом куплю) посмотрел, как бы сказал картмен щщщикарная =) НО!
там по теме ТС вообще ничего нет =)))
 

AmdY

Пью пиво
Команда форума
Иван Redjik Матвеев
там авторизация разжёвана от и до вроде.
 

Sufir

Я не волшебник, я только учусь
[offtop]
Кстати на счёт книг, кто-то знает где электронную версию можно купить этой и других интересных книжек вроде "Рефакторинга" Фаулера или "SQL" Грабера? Русскоязычный желательно, т.к. на полноценное чтение книги моего английского не хватит. Вообще электронные книги где покупаете? А-то только в бумажном виде есть кое-что либо нечитабельные сканы в жутком djvu.
[/offtop]
 

флоппик

promotor fidei
Команда форума
Партнер клуба
[offtop]
Кстати на счёт книг, кто-то знает где электронную версию можно купить этой и других интересных книжек вроде "Рефакторинга" Фаулера или "SQL" Грабера? Вообще электронные книги где покупаете? А-то только в бумажном виде есть кое-что либо нечитабельные сканы в жутком djvu.
[/offtop]
На амазоне часто есть вроде.
 

Absinthe

жожо
Вообще электронные книги где покупаете? А-то только в бумажном виде есть кое-что либо нечитабельные сканы в жутком djvu.
Самое интересное, что многих новых книг на русском в электронном просто нет.
Пиратство поощряют таким способом походу.
 
Сверху