2013-11-16 4 views
0

Итак, я знаю, что этот небольшой PHP-фрагмент работает, но я хочу знать, если это лучший способ сделать это, или если есть лучший способ реорганизовать это, чтобы сделать его более эффективным. Имейте в виду, что я довольно новичок в PHP в целом, так что, возможно, есть очевидное решение, которое я просто еще не изучил, но я не знаю, какой способ конкретно искать это, кроме как спросить вас о высших умах :)Фрагмент кода рефакторинга куки-файлов и сеансов

Вот фрагмент кода, как вы видите, все, что я хочу сделать, это проверить, что пользователь вошел в систему первым, проверив сеанс, а во-вторых, проверив файл cookie.

<?php 

if (isset($_SESSION['loggedin']) && $_SESSION['loggedin'] == true) { 
    header("Location: http://www.redirect-to-logged-in-site.com"); 
    exit(); 
} elseif (isset($_COOKIE['Loggedin']) && $_COOKIE['Loggedin'] == true) { 
    header("Location: http://www.redirect-to-logged-in-site.com"); 
    exit(); 
} //... continue on with something the page for non-current users... 

?> 

Как вы можете видеть, если пользователь вошел в систему, они не должны видеть вещи на этой странице, так что я проверить, если они вошли в систему, и если они есть, я переместить их на части они необходимость.

Есть ли лучший способ сделать то же самое? Это просто кажется, что это может быть проще, я просто не знаю, как это сделать. Помогите мне, ребята!

+0

Единственной * возможно * неэффективная вещь редирект вошедшие на сайте (не делать редирект будет быстрее, но, скорее всего, является обязательным требованием для вас), в противном случае логика звука. – doublesharp

+0

С другой стороны, вы могли бы решить использовать только сеанс или только файл cookie и избавиться от одной из проверок. – doublesharp

ответ

0

Вы можете удалить дублирование перенаправления, объединив два ifs. Именование условностей могло бы сделать его более понятным.

<?php 

$loggedInViaSession = (isset($_SESSION['loggedin']) && $_SESSION['loggedin'] == true); 
$loggedInViaCookie = (isset($_COOKIE['Loggedin']) && $_COOKIE['Loggedin'] == true); 

if ($loggedInViaSession || $loggedInViaCookie) { 
    header("Location: http://www.redirect-to-logged-in-site.com"); 
    exit(); 
} 

//... continue on with something the page for non-current users... 
Смежные вопросы