Witam,

Ustaliłem sobie pewną nawigacje strony dla niezarejestrowanego i zarejestrowanego użytkownika. Pytanie czy mój sposób jest optymalny?

  1. $allowedActions=array( 'index', 'gwarancja', 'login');
  2.  
  3. if(!empty($session->Var) && !empty($session->Var['id']) && !empty($session->Var['active']) && !empty($session->Var['session_id'])){
  4.  
  5. if($session->Var['active']==1 && $session->Var['session_id']==$session->ID){
  6.  
  7. $allowedActions[] = array('zalogowany', 'pobierz');
  8.  
  9. if (!isSet($_GET['step']) || !in_array(strip_tags($_GET['step']), $allowedActions)){
  10. $selected = 'zalogowany_view.php';
  11. } else
  12. {
  13. $selected = $_GET['step'] . '_view.php';
  14. }
  15. } else
  16. {
  17. $selected = 'index_view.php'; //blad
  18. }
  19. } else
  20. {
  21. if (!isSet($_GET['step']) || !in_array(strip_tags($_GET['step']), $allowedActions))
  22. {
  23. $selected = 'index_view.php';
  24. } else
  25. {
  26. $selected = $_GET['step'] . '_view.php';
  27. }
  28. }
  29.  
  30. require('template_logic/'.$selected);


Najpierw sprawdzam czy ktoś nie jest aktualnie zalogowany dzięki zmiennym session->Var jeśli jest to nawigacja odbywa się w sposób że sprawdzana jest akcja i wywołanie akcji. Jak widać dla niezalogowanego ta sprawdzanie akcji i wywołanie jej powiela się. Pytanie czy to da się w jakiś sposób skrócić ? W sensie kod.