Проблем с Админ панел

bankera1990

Registered
та имам един въпрос как да направя да се вижда само когато има
ранк admin защото ако някой не е в профила си и въведе index.php?m=admin&delete_clip=575 се трие от базата а аз искам само админа :) да може да трие
Код:
<?
$id = $_GET['id'];
$sql = mysql_query("DELETE FROM clips WHERE id='$id'");
echo "<META HTTP-EQUIV=\"refresh\" CONTENT=\"0; URL=index.php?m=clips\">";
?>
 
така дали ще се получи


Код:
<?
$user = $_SESSION['username'];
$sql = mysql_query("SELECT * FROM users WHERE username='$user'");
while ($row = mysql_fetch_array($sql))
{
$rank = $row['rank'];
if($rank == "admin")
{
exit();
}
$id = $_GET['id'];
$sql = mysql_query("DELETE FROM clips WHERE id='$id'");
}
echo "<META HTTP-EQUIV=\"refresh\" CONTENT=\"0; URL=index.php?m=clips\">";
?>
 
<?
$user = $_SESSION['username'];
$sql = mysql_query("SELECT * FROM users WHERE username='$user'");
while ($row = mysql_fetch_array($sql))
{
$rank = $row['rank'];
if($rank != "admin")
{
echo "Само администратори могат да трият файлове !";
exit();
}
else {
$id = $_GET['id'];
$sql = mysql_query("DELETE FROM clips WHERE id='$id'");
}
echo "<META HTTP-EQUIV=\"refresh\" CONTENT=\"0; URL=index.php?m=clips\">";
}
?>

Пробвай така
 
добре стана с малко редакция но не ми показва това


Код:
{ 
echo "Само администратори могат да трият файлове !"; 
}

когато не съм логнат би трябвало като се пробвам да делна нещо не го изкарва
 
bankera1990 каза:
добре стана с малко редакция но не ми показва това


Код:
{ 
echo "Само администратори могат да трият файлове !"; 
}

когато не съм логнат би трябвало като се пробвам да делна нещо не го изкарва

Ами като не си логнат няма сесия... и следователно не може да вземе информация от базата данни :)
 
<?
if (empty($_SESSION['username'])) {
echo "Логни се първо и тогава пробрай да триеш файлове !"; }
else {

$user = $_SESSION['username'];
$sql = mysql_query("SELECT * FROM users WHERE username='$user'");
while ($row = mysql_fetch_array($sql))
{
$rank = $row['rank'];
if($rank != "admin")
{
echo "Само администратори могат да трият файлове !";
exit();
}
else {
$id = $_GET['id'];
$sql = mysql_query("DELETE FROM clips WHERE id='$id'");
}
echo "<META HTTP-EQUIV=\"refresh\" CONTENT=\"0; URL=index.php?m=clips\">";
} }
?>

Може би нещо такова ?
 
Пробвай така:
Код:
$user = $_SESSION['username'];
if (!isset($user))
{
	die('Не сте логнат!');
}

if($user != 'admin')
{
	die('Само администратори могат да трият файлове');
}

else {
$id = (int) $_GET['id'];
$sql = mysql_query("DELETE FROM clips WHERE id='$id'");
	if ($sql)
	{
		echo 'Файла е изтрит успешно!';
		echo "<META HTTP-EQUIV=\"refresh\" CONTENT=\"0; URL=index.php?m=clips\">";
	}
}
?>
 
c3c0 каза:
Пробвай така:
Код:
$user = $_SESSION['username'];
if (!isset($user))
{
	die('Не сте логнат!');
}

if($user != 'admin')
{
	die('Само администратори могат да трият файлове');
}

else {
$id = (int) $_GET['id'];
$sql = mysql_query("DELETE FROM clips WHERE id='$id'");
	if ($sql)
	{
		echo 'Файла е изтрит успешно!';
		echo "<META HTTP-EQUIV="refresh" CONTENT="0; URL=index.php?m=clips">";
	}
}
?>

защо ми показава Само администратори могат да трият файлове
при положение че съм админ
 
Защото условието е следното - ако потребителското име е admin (а не ранка), тогава той може да трие. При всички други случаи - не може! Полезно е, ако администратора е само един и ползва потр. име - admin, но ако са повече не е добър метод. :)
 
а по този начин ще има ли проблем :)

Код:
<?
$user = $_SESSION['username'];
$sql = mysql_query("SELECT * FROM users WHERE username='$user'");
if (! isset($user)) 
{ 
   die('Не сте логнат!'); 
   echo '<META HTTP-EQUIV=\"refresh\" CONTENT=\"0; URL=index.php">'; 
} 
if($rank != 'admin') 
{ 
   die('Само администратори могат да трият файлове'); 
   echo '<META HTTP-EQUIV=\"refresh\" CONTENT=\"0; URL=index.php">'; 
} 
else 
{ 
$id = (int) $_GET['id']; 
$sql = mysql_query("DELETE FROM users WHERE id='$id'");
   if ($sql) 
   { 
      echo 'Файла е изтрит успешно!'; 
      echo '<META HTTP-EQUIV=\"refresh\" CONTENT=\"0; URL=index.php?m=clips\">'; 
   } 
} 
?>
 
Променливата $rank от къде идва и каква стойност има. Ако записваш ранка в базата данни като число (0 - потребител, 1 - модератор, 2 - администратор) трябва да направиш проверка от този тип
Код:
if ($rank >=1)
{
echo 'ти си админ или модератор.';
}

//Втори начин
if ($rank == false)
{
die ('Ти не си модератор или администратор');
}
Ако mysql_num_rows върне 0 (false), това ще означава, че потребителя има ранк 0 и не е администратор или модератор. При всички други случаи (1, 2, 3) ще върне true, което значи - че потребителя има нужните права.

Ако обаче в базата данни записваш ранка по друг начин (напр. mod, admin, user) си правиш друга проверка
Код:
if ($rank != 'admin')
{
die ('Ти не си админ');
}

Всичко зависи от това каква ти е структурата в базата данни и как записваш кой потребител има права и кой не.
 

Back
Горе