Problem z wyszukiwarką użytkowników na stronie

0

Witam. Mam problem z wyszukiwarką użytkowników na swojej stronie. Chodzi o to, że w tej wyszukiwarce można znajdować danego użytkownika po loginie lub wybrać daną rangę i wyświetli się cała lista użytkowników posiadających tą rangę.

Dodałem warunek do kodu by użytkownik wyszukując osobę po randze nie mógł wyszukać wyższych klas niż administrator (jest jeszcze 1 wyższa ranga - superadmin).
Lecz niestety jeśli wpiszę w wyszukiwarce login jakiegoś superadmina to go znajdzie i wyświetli a tego bym nie chciał.

Moje pytanie jak musi wyglądać warunek by superadmina nie znajdowało?
Dla lepszego zrozumienia tematu załączam plik w załączniku.

0

AND class != 'superadmin' czy jak to tam masz to nazwane w bazie danych i tyle ;)

BTW, ten kod wygląda przerażająco.

0
pesymistycznyoptymista napisał(a):

AND class != 'superadmin' czy jak to tam masz to nazwane w bazie danych i tyle ;)

BTW, ten kod wygląda przerażająco.

Nie ukrywam, że jestem laikiem w tych sprawach, mógłbyś mi napisać w którym miejscu mam to dodać? Byłbym bardzo wdzięczny :)

0

Tak na dobrą sprawę to może być nawet przed stdhead("Użytkownicy"); wrzucone.

Kilka rzeczy: nie nazywaj zmiennych w stylu $q, $l itp. Ogarnij sobie jak nazywasz wieloczłonowe zmienne, metody i klasy. zmienna $userIcons jest trochę bardziej czytelna niż $usericons itp

0

Niestety wywaliło mi błąd.
Wydaje mi się, że warunek należy dodać gdzieś tutaj:

if ($class == '-' || !is_valid_id($class) || $class > 14) 
  $class = '';

if ($search != '' || $class)
{
 $query = "username LIKE " . sqlesc("%$search%") . " AND status='confirmed'";
        if ($search)
   $q = "search=" . htmlspecialchars($search);
}
else
{
        $letter = trim($_GET["letter"]);
 if ($letter == "" || strpos("abcdefghijklmnopqrstuvwxyz", $letter) === false)
   $letter = "All";
 if (strlen($letter) == 3)
{
 $query = "status='confirmed'";
 $q = "letter=$letter";
}
 elseif (strlen($letter) == 1)
{
 $query = " username LIKE '$letter%' AND status='confirmed'";
 $q = "letter=$letter";
}
else{
die;}
}

if (get_user_class() <= UC_ADMINISTRATOR)
$maxclass = UC_ADMINISTRATOR;
else
$maxclass = UC_SUPERADMIN;

if ($class)
{
  if ($class <= $maxclass) {
  $query .= " AND class=$class";
  $q .= ($q ? "&amp;" : "") . "class=$class";
  }
  else
  stderr("Błąd","Nie masz uprawnień by przeglądać tą stronę!");
}

A konkretniej gdzieś tu:

if ($class == '-' || !is_valid_id($class) || $class > 14) 
  $class = '';

if ($search != '' || $class)

1 użytkowników online, w tym zalogowanych: 0, gości: 1