Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][SMARTY] sessions_start
Forum PHP.pl > Forum > Przedszkole
Marcel1989
Siemka mam problem ze smarty ! nie wiem dlaczego nie działa i chce wiedzieć czy plik tpl dostaję informacje o rozpoczęciu sesji czy nie. Na wstępie daje link do phpinfo

phpinfo(); < - klik

tutaj podaje fragmenty kodu skryptu z którego zdecydowałem się skorzystać

  1. if (isset($_POST['login']) && isset($_POST['password'])) {
  2.  
  3. $login = $_POST['login'];
  4.  
  5. $password = $_POST['password'];
  6.  
  7. $password = md5($password);
  8.  
  9. $sql = "SELECT login, password FROM user WHERE login='".$login."' and password='".$password."'";
  10.  
  11. $result = mysql_query($sql) or die (mysql_error());
  12.  
  13. if (mysql_num_rows($result) == 1) {
  14.  
  15. $_SESSION['zalogowany'] = 1;
  16.  
  17. $smarty->assign('login_status', $_SESSION['zalogowany']);
  18.  
  19. $smarty->assign('login', $login);
  20.  
  21.  
  22.  
  23. $return = true;
  24.  
  25. } else {
  26.  
  27. $blad = 1;
  28.  
  29. $smarty->assign('blad', $blad);
  30.  
  31.  
  32. }
  33.  
  34. }


Tutaj podaje fragment pliku 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="index.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><td><a href="index.php?step=register"><img border="0" src="templates/images/18.jpg"></a></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><td><a href="index.php?step=backacc"><img border="0" src="templates/images/19.jpg"></a></td>
  25. </tr>
  26. <tr>
  27.  
  28. <td colspan="2" align="right">
  29. <table style="padding-bottom: 14px;"><tr><td>
  30. <input type='hidden' name='zalogowany' value='1'>
  31. <input type="image" src="templates/images/20.jpg" />
  32. </td></tr></table>
  33. </td>
  34. <td><table style="padding-left: 21px; padding-top: 5px;"><tr><td><img src="templates/images/21.jpg"></td></tr></table></td>
  35. </tr>
  36. </table>
  37.  
  38. </form>
  39.  
  40. {/if}
  41.  
  42. {/if}
  43.  
  44. </td></tr></table>
varez
a gdzie robisz?
  1. $smarty->display('twoj_plik.tpl');


po przypisaniu zmiennych:
  1. $smarty->assign('login', $login);


czy przed??
Marcel1989
po przypisaniu do zmiennych

Logowanie normalnie działa lecz gdy zrobię refresch lub przeładuje stronę to wtedy wraca mi do formularza logowania
varez
hmm, teraz robisz tak:
1. sprawdzasz czy sa posty
2. jak są to sprawdzasz czy sie zgadza, logujesz, zapisujesz do sesji, Z SESJI PRZYPISUJESZ DO SMARTOW
3. jak nie ma postów to nie robisz nic (nic nie przypisujesz do smartow)..
4. wynik -> jak widac

juz wiesz co nie tak?
troche logiki..
Marcel1989
ale przekazuje dane do TPL bo normalnie logowanie działa tylko sesja wygasa jak by ustawiona była na 0
varez
wklej wiecej kodu w takim razie, bo tutaj to ja nie widze zebys przekazywał cokolwiek jak nie ma post-ów..
Marcel1989
więcej nie ma potrzeby bo to w sumie wszystko dalej jest tylko wyświetlanie w tpl

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


zobacz na początku pliku php masz wszystko przypisane a następnie potem jest przekazywane do TPL zobacz ... smile.gif
varez
matkoooo noooo...
czego wy tu ludzie jak się chce wam pomóc to macie to gdzieś i dalej przy swoim??

rezygnuję z pomagania na dziś, za nerwowy chyba dziś jestem..


dopisz:

  1. $smarty->assign('login_status', $_SESSION['zalogowany']);


przed

  1. return $return;


poćwicz logikę gratis (nie obrażaj się tylko wczytaj się w kod aż zrozumiesz)
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.