Smarty Forum Index Smarty
WARNING: All discussion is moving to https://reddit.com/r/smarty, please go there! This forum will be closing soon.

System logowania na sesjach - problem

 
This forum is locked: you cannot post, reply to, or edit topics.   This topic is locked: you cannot edit posts or make replies.    Smarty Forum Index -> Language: Polish
View previous topic :: View next topic  
Author Message
Fellow
Smarty Rookie


Joined: 26 Mar 2007
Posts: 7

PostPosted: Sun Nov 06, 2011 3:54 pm    Post subject: System logowania na sesjach - problem Reply with quote

Probuje wykonac maly system logowania aby dostac sie do glownej strony. Poki co skrypt ma na celu zweryfikowac czy wystepuje sesja dla zalogowanego uzytkownika. Zatem jesli wejdzie uzytkownik na strone glowna index.php na poczatko zostanie zweryfikowana sesja dla uzytkownika
Code:

<?php
require_once 'include/app_top.php';
require_once SITE_ROOT . '/bisiness_objects/bo_customer.php';
 if (!(isset($_SESSION['UserLogged'])) || $_SESSION['UserLogged'] !=true)
{
   header('Location: user_login.php?ReturnPage=index.php');
   exit;
}
if (isset($_GET['Page']) && $_GET['Page'] == "Logout")
{
   unset($_SESSION['UserLogged']);
   header("Location: index.php");
   exit;
}

// Załadowanie pliku szablonu Smarty
$page = new Page();

$page->assign('user_login', $user_login);
$page->display('index.tpl');
// Załadowanie kodu app_bottom odpowiedzialnego za zakończenie polaczenia z baza danych
require_once 'include/app_bottom.php';
?>

jesli brak sesji uzytkownik zostanie przeniesiony do pliku user_login.php
Code:

require_once 'include/app_top.php';
$page =new Page();
$user_login = new UserLogin();
$page->assign_by_ref("user_login", $user_login);
$page->display('user_login.tpl');
require_once 'include/app_bottom.php';

class UserLogin
   {
      public $mUsername= "";
      public $mLoginMessage = "";
      public $mReturnPage;
   // konstruktor klasy
   function __construct()
   {
      //strona docelowa w przypadku zgodnosci hasla
      if (isset($_GET['ReturnPage'])) $this->mReturnPage = $_GET['ReturnPage'];
      // jesli user jest juz zalogowany moze przejsc do odpowiedniej strony
      if(isset($_SESSION['UserLogged']) && $_SESSION['UserLogged'] == true)
      {
         header('Location: ' . $this->mReturnPage);
         exit;
      }
      // weryfikacja wprowadzonej nazwy usera i hasla
      if(isset($_POST['Submit']))
      {
         if($_POST['username'] == USER_USERNAME && $_POST['password'] == USER_PASSWORD)
         {
            $_SESSION['UserLogged']= true;
            header("Location: " . $this->mReturnPage);
            exit;
         }
         else $this->mLoginMessage = "<br />Błąd logowania. Spróbuj ponownie.";

      }
   }
   }
?>

po utworzeniu sesji i po wyryfikacji uzytkownika, w tym przypadku ustawilem nazwe i haslo na sztywno jak stala. Pop zalogowaniu uzytkownik zostanie przeniesiony spowrotem do index.php i wyswietleniu szablonu index.tpl
Code:

<body>

     <div id='header'>
     Zalogowany jako {$user_login} <a href="index.php?Page=Logout">Wylogowanie</a>
   </div>
</body>

Pytanie jak zrobic by zostala wyswietlona nazwa UZYTKOWNIKA. czyli "Zalogowany jako ........ . Wylogowanie
session_start(); jest zawarta w dalaczanym pliku app_top.php w index.php
szablon user_login.tpl
Code:
<form action="user_login.php?ReturnPage={$user_login->mReturnPage}" method="post">
  <table cellpadding="3" cellspacing="1" border="0">
     <tr>
     <td>Nazwa użytkownika:</td>
     <td><input class="Button" type="text" name="username" value="{$user_login->mUsername}"/>
     </td>
     </tr>
     <tr>
     <td>Hasło:</td>
     <td><input class="button" type="password" value="" name="password"/>
     </td>
     </tr>
     <tr>
     <td colspan="2">
     <br /><input class="button" type="submit" value="Wejdź" name="Submit"/>
     </td>
     </tr>
     </table>
</form>

Jak przekazac nazwe uzytkownika z sesji do szablonu index.tpl i wyswietlic jego nazwe. {$user_login}. Pomocy
Back to top
View user's profile Send private message
Fellow
Smarty Rookie


Joined: 26 Mar 2007
Posts: 7

PostPosted: Mon Nov 07, 2011 1:08 pm    Post subject: Chwilowo problem rozwiazany Reply with quote

Plik index.php
Code:
<?php
// Załadowanie biblioteki Smarty i plików konfiguracyjnych
require_once 'include/app_top.php';
 if (!(isset($_SESSION['UserLogged']) || $_SESSION['UserLogged']))
{
   header('Location: user_login.php?ReturnPage=index.php');
   exit;
}
if (isset($_GET['Page']) && $_GET['Page'] == "Logout")
{
   unset($_SESSION['UserLogged']);
   header("Location: index.php");
   exit;
}

// Załadowanie pliku szablonu Smarty
$page = new Page();
$user_login = $_SESSION['user'];
$page->assign('user_login', $user_login);
$page->display('index.tpl');
// Załadowanie kodu app_bottom odpowiedzialnego za zakończenie połaczenia z bazą danych
require_once 'include/app_bottom.php';
?>

plik index tpl
Code:

<body>

     <div id='header'>
     Witaj, {$user_login}. W końcu się zalogowałeś. Teraz możesz się <a href="index.php?Page=Logout">tu wylogować</a>
   </div>
   </body>

plik user_login.php
Code:

require_once 'include/app_top.php';
$page =new Page();
$user_login = new UserLogin();
$page->assign_by_ref("user_login", $user_login);
$page->display('user_login.tpl');
require_once 'include/app_bottom.php';

class UserLogin
   {
      public $mUsername= "";
      public $mLoginMessage = "";
      public $mReturnPage;
   // konstruktor klasy
   function __construct()
   {
      //strona docelowa w przypadku zgodnosci hasla
      if (isset($_GET['ReturnPage'])) $this->mReturnPage = $_GET['ReturnPage'];
      // jesli user jest juz zalogowany moze przejsc do odpowiedniej strony
      if(isset($_SESSION['UserLogged']) && $_SESSION['UserLogged'])
      {
         header('Location: ' . $this->mReturnPage);
         exit;
      }
      // weryfikacja wprowadzonej nazwy usera i hasla
      if(isset($_POST['Submit']))
      {
         if($_POST['username'] == ADMIN_USERNAME && $_POST['password'] == ADMIN_PASSWORD)
         {
            $_SESSION['UserLogged']= 1;
            $_SESSION['user'] = $_POST['username'];
            header("Location: " . $this->mReturnPage);
            exit;
         }
         else $this->mLoginMessage = "<br />Błąd logowania. Spróbuj ponownie.";

      }
   }
   }
?>

plik user_loggin.tpl
Code:
<span class="UserErrorText">{$user_login->mLoginMessage}</span><br />

  <form action="user_login.php?ReturnPage={$user_login->mReturnPage}" method="post">
  <table cellpadding="3" cellspacing="1" border="0">
     <tr>
     <td>Nazwa użytkownika:</td>
     <td><input class="Button" type="text" name="username" value="{$user_login->mUsername}"/>
     </td>
     </tr>
     <tr>
     <td>Hasło:</td>
     <td><input class="button" type="password" value="" name="password"/>
     </td>
     </tr>
     <tr>
     <td colspan="2">
     <br /><input class="button" type="submit" value="Wejdź" name="Submit"/>
     </td>
     </tr>
     </table>
</form>

session_start(); jest w dolaczanym pliku app_top.php
Teraz pozostaje mi zainicjowanie pobierania uzytkownikow z bazy danych. W obecnej postaci uzytkownik jest zapisany w stalej define.
Moze sa jakies uwagi co do kodu, jakies poprawki, ulepszenia? Hmm chyba malo kto tu zaglada.
Back to top
View user's profile Send private message
Display posts from previous:   
This forum is locked: you cannot post, reply to, or edit topics.   This topic is locked: you cannot edit posts or make replies.    Smarty Forum Index -> Language: Polish All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group
Protected by Anti-Spam ACP