|
Smarty
WARNING: All discussion is moving to https://reddit.com/r/smarty, please go there! This forum will be closing soon. |
|
View previous topic :: View next topic |
Author |
Message |
Fellow Smarty Rookie
Joined: 26 Mar 2007 Posts: 7
|
Posted: Sun Nov 06, 2011 3:54 pm Post subject: System logowania na sesjach - problem |
|
|
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 |
|
Fellow Smarty Rookie
Joined: 26 Mar 2007 Posts: 7
|
Posted: Mon Nov 07, 2011 1:08 pm Post subject: Chwilowo problem rozwiazany |
|
|
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 |
|
|
|
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
|