PHP mysql if/else 简写

标签 php mysql security if-statement shorthand

有人能看出这个简写与下面的问题有什么问题吗?

echo "<td><font size=1 color=#e4d6b5>" . ($row['tier']<$_SESSIONS['tier'] ? "ACCESS DENIED" : $row['contents']) . "</font></td>";

我的数据库中有两个表:

1.) Members (id,username,email,password,salt,tier) <-tier 是用户的安全许可级别。

2.) opwire (category,contents,date,userid,seclevel) <-opwire 存储用户提交的数据,userid 只是一个引用刚刚向 opwire 提交数据的用户的数字。 Seclevel 是用户查看提交的特定数据行所需的安全许可级别(层)的高度。

我正在尝试根据当前登录的用户的安全级别(引用成员的级别与 opwire 的安全级别)授予或限制对“内容”的访问权限。我也不完全相信我正在使用 http ://www.wikihow.com/Create-a-Secure-Login-Script-in-PHP-and-MySQL

我通常通过以下方式获取当前用户:

$userId = $_SESSION['user_id'];

整个建表php如下。目前,任何级别的用户都可能在其级别应限制的情况下错误地查看任何 seclevel 内容。

<?php 

include_once 'functions.php';
include_once 'db_connect.php';
sec_session_start();

if(login_check($mysqli) == true) {

$con=mysqli_connect("localhost","mylogin","mypassword","mysqldatabase");
// Check connection
if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }


function getColor($strOption)
{
   switch ($strOption)
   {
       case "Case 1":
       return "#cbae80";

       case "Case 2":
       return "#e59350";

       case "Case 3":
       return "#b7aaa4";

    }
}


$result = mysqli_query($con,"SELECT opwire.*,members.username FROM opwire 
          LEFT JOIN members on opwire.userid=members.id order by date DESC");

echo "<table border='1'>
<tr>
<th>Category</th>
<th>Contents</th>
<th>Date/Time</th>
<th>Operative</th>
</tr>";

while($row = mysqli_fetch_array($result))
 {
 echo "<tr>";
 echo "<td><font size=1 color='".getColor($row['category'])."'> " . $row['category'] . "</font></td>";
 echo "<td><font size=1 color=#e4d6b5>" . ($row['tier']<$_SESSIONS['tier'] ? "ACCESS DENIED" : $row['contents']) . "</font></td>";
 echo "<td><font size=1 color=silver>" . $row['date'] . "</font></td>";
 echo "<td><font size=1 color=gold>" . $row['username'] . "</font></td>";
 echo "</tr>";
 }
echo "</table>";

mysqli_close($con);

} else {
   echo 'Access to this area requires security clearance. <br/>';
}

?>

最佳答案

我相信你需要在每个案例的末尾添加“BREAK”,否则它会一直到“#b7aaa4”;

function getColor($strOption)
 {
  switch ($strOption)
  {
   case "Case 1":
   return "#cbae80";
   break;

   case "Case 2":
   return "#e59350";
   break;

   case "Case 3":
   return "#b7aaa4";
   break;
  }
}

关于PHP mysql if/else 简写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19850993/

相关文章:

security - 完整性检查 : SSL+ POST vs. 未加密的 GET

php - 选择 PHPUnit Selenium 2 测试用例中的所有匹配元素

php - 如何将 CSS 应用于另一个窗口中生成的表格?

sql - 涉及包含数学运算符的列名的 MySQL 查询

PHP MySQL ETL。我应该使用 ETL 工具、存储过程还是 php 脚本?

security - OAuth 2 客户端真的需要 TLS 吗?

PHP修改和组合数组

php - PHP 中是否可以中断文件上传(使用 APC)?

mysql - 从表中存储的列表中选择每个表的计数

java - 让JSP登录表单更安全