if (($ strUsers == "") && false)?что ложное имеет в виду? - PullRequest
1 голос
/ 29 февраля 2012

Вот функция из Dreamweaver, если (($ strUsers == "") && false) на что ссылается false?в каком случае это ИСТИНА, а в каком случае ЛОЖЬ?Спасибо.

function isAuthorized($strUsers, $strGroups, $UserName, $UserGroup) { 
  // For security, start by assuming the visitor is NOT authorized. 
  $isValid = False; 

  // When a visitor has logged into this site, the Session variable MM_Username set equal to their username. 
  // Therefore, we know that a user is NOT logged in if that Session variable is blank. 
  if (!empty($UserName)) { 
    // Besides being logged in, you may restrict access to only certain users based on an ID established when they login. 
    // Parse the strings into arrays. 
    $arrUsers = Explode(",", $strUsers); 
    $arrGroups = Explode(",", $strGroups); 
    if (in_array($UserName, $arrUsers)) { 
      $isValid = true; 
    } 
    // Or, you may restrict access to only certain users based on their username. 
    if (in_array($UserGroup, $arrGroups)) { 
      $isValid = true; 
    } 
    if (($strUsers == "") && false) { 
      $isValid = true; 
    } 
  } 
  return $isValid; 
}

Ответы [ 5 ]

3 голосов
/ 29 февраля 2012

Цитирование из форума :

Аналогично, следующая строка кода: if (($ strUsers == "") && false) { содержит истину или ложь соответственно, и это то, что на самом деле контролирует есть ли у пользователя доступ или нет. Итак, если я прав, то «ложь» в вышеуказанный satement может быть заменен на переменную $ MM_donotCheckaccess - это облегчит чтение кода и использовать переменную. В противном случае это кажется полностью излишним!

Кроме того, этот блок НИКОГДА не запускается. Кажется, если вы установили значение true, пустой пользователь может войти или любой может войти, если нет пользователя, я не знаю, что это означает на самом деле, но из названия одна из упомянутых 2 возможностей.

2 голосов
/ 29 февраля 2012

Я видел, что это делается для временного отключения проверки (обычно для целей тестирования / отладки).Вероятно, его оставили. Я не говорю, что это хорошая идея, просто кажется, что вы натолкнулись на такой код.

2 голосов
/ 29 февраля 2012

Похоже, ошибка для меня. Из-за этого ложного утверждения if всегда будет ложным, поэтому $isValid = true; никогда не должен выполняться. Вам следует перепроверить логику, которую вы пытаетесь выполнить с помощью этого кода, потому что в лучшем случае он кажется запутанным, а в худшем - просто неверным.

0 голосов
/ 29 февраля 2012

Ложно, ничего не ссылаясь, вы хотите только ниже условия для проверки.

if ($strUsers == "") 
0 голосов
/ 29 февраля 2012

Он используется Dreamweaver как нечто, что он может легко заменить в зависимости от настроек, которые вы указали при первоначальной настройке Dreamweaver - он поместит туда либо true, либо false в зависимости от того, указали ли вы это на самом делепроверить доступ.

...