Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [inne][SMARTY] Sesja ...
Forum PHP.pl > Forum > Przedszkole
gOdi_1991
Witam, mam następujący problem chce zrobić własną stronę opartą o smarty, ale niestety napotkałem już pierwszy problem i nie wiem jak go rozwiązać więc zwracam się z tym do was smile.gif sciana.gif Dobra konkretnie chodzi o sesje czyli o system logowania na mojej stronie niby wszystko fajnie ale gdy przeładuje się strona to sesja za przeproszeniem zdycha i trzeba się na nowo logować podaje kod pliku php oraz tpl

PLIK PHP
  1. <?php
  2.  
  3. require 'libs/Smarty.class.php';
  4. include ('cfg.php');
  5.  
  6.  
  7. $smarty = new Smarty;
  8. if (isset($_POST['login']) && isset($_POST['password'])) {
  9.  
  10. $login = $_POST['login'];
  11.  
  12. $password = $_POST['password'];
  13.  
  14. $password = md5($password);
  15.  
  16. $sql = "SELECT login, password FROM user WHERE login='".$login."' and password='".$password."'";
  17.  
  18. $result = mysql_query($sql) or die (mysql_error());
  19.  
  20. if (mysql_num_rows($result) == 1) {
  21.  
  22. $_SESSION['zalogowany'] = 1;
  23.  
  24. $smarty->assign('login_status', $_SESSION['zalogowany']);
  25.  
  26. $smarty->assign('login', $login);
  27.  
  28.  
  29.  
  30. $return = true;
  31.  
  32. } else {
  33.  
  34. $blad = 1;
  35.  
  36. $smarty->assign('blad', $blad);
  37.  
  38.  
  39. }
  40.  
  41. }
  42.  
  43. $smarty -> display('index.tpl');
  44.  
  45. return $return;
  46.  
  47. ?>


Plik .TPL
  1. {if $login_status eq 1}
  2.  
  3. Zostałeś zalogowany jako {$login}<br>
  4.  
  5. <a href="index.php">Wyloguj się</a>
  6.  
  7. {else}
  8.  
  9. {if $blad eq 1}
  10.  
  11. Dane nie zgadzają się!
  12.  
  13.  
  14.  
  15. {else}
  16.  
  17. <form id="logowanie" method="post" action="user_panel.php">
  18.  
  19. <table style="padding-top: 15px; padding-left: 15px;">
  20. <tr>
  21. <td>Login:</td><td><input id="login" style="border: 0px;width: 99px; height: 18px;background-image: url('templates/images/17.jpg');" type="text" name="login" /></td>
  22. </tr>
  23. <tr>
  24. <td>Hasło:</td><td><input id="password" style="border: 0px;width: 99px; height: 18px;background-image: url('templates/images/17.jpg');" type="password" name="password" /></td>
  25. </tr>
  26. <tr>
  27.  
  28. <td colspan="2" align="right">
  29. <input type='hidden' name='zalogowany' value='1'>
  30. <input type="image" src="templates/images/20.jpg" />
  31.  
  32. </td>
  33. </tr>
  34. </table>
  35.  
  36. </form>
  37.  
  38. {/if}
  39.  
  40. {/if}

gothye
zmiennych sessi nie musisz dodawać do szablonów w smarty wystarczy w szablonie :

  1. {if $smarty.session.nazwa_zmiennej
  2. pokaz cos jest zmienna istnieje
  3. {/if}
gOdi_1991
czyli co to wystarczy dodać do każdego pliku tpl ? a i jeszcze jedno w przypadku sessionstarts mam dodać w nazwie sessions starts czy co questionmark.gif

pomoże ktoś ?

questionmark.gif
gothye
w szablonie masz :

  1. {if $login_status eq 1}
  2.  
  3. Zostałeś zalogowany jako {$login}<br>
  4.  
  5. <a href="index.php">Wyloguj się</a>
  6.  
  7. {else}
  8. cos tam
  9.  
  10. {/if}


gdzie
  1. $login_status = $_SESSION['zalogowany']


a możesz :

  1. {if $smarty.session.zalogowany}
  2.  
  3. Zostałeś zalogowany jako {$login}<br>
  4.  
  5. <a href="index.php">Wyloguj się</a>
  6.  
  7. {else}
  8. nie zalogowałeś sie
  9.  
  10. {/if}


a session_start(); stosujesz w pliku php nie w szablonach
gOdi_1991
ok rozumiem jednak dalej to nie rozwiązuje mojego problemu ze zdychającą sesją ;(

ref 1
gothye
sprawdź za pomoca phpinfo() jaki masz time life sesji
gOdi_1991
tutaj nie chodzi o czas trwania sesji ;/ Bo gdy odświeżam stronę to sesja zostaje problemem jest natomiast gdy wchodzę w inny link dodam że u mnie przeładowanie strony następuje po przez metodę get w linku czyli np ?step=news wtedy mi wczytuje to include odpowiednią stronę

  1. {if $index == ""}
  2. {include file="news.tpl"}
  3. {elseif $smarty.get.step == "$index"}
  4. {include file="$index.tpl"}
  5. {/if}


w ten sposób mam wszystko w indexie ładnie i przyjemnie smile.gif) a no i oczywiście najważniejsze plik z logowaniem też jest includowany do indexu



ref
Marcel1989
Jakiego używasz serwera ? Krasnala ? może to przez to
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.