所以我嘗試根據用戶名對我的 SQL 表中的資料進行排序。這個概念是基于連接到網站的用戶。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Profile</title>
<style type="text/css">
input{
border: none;
}
</style>
</head>
<body>
<table cellspacing= 0 cellpadding=10>
<tr>
<td>#</td>
<td>Expeditor</td>
<td>Mesaj</td>
</tr>
<?php
$i=1;
$id2= $_SESSION["id"];
$result= mysqli_query($conn, "SELECT * FROM tb_user WHERE id= $id2");
$row = $result->fetch_assoc();
$userconn = $row['username'];
$rows= mysqli_query($conn, "SELECT * FROM mesajeuseri WHERE username='$userconn'")
?>
<?php foreach ($rows as $row): ?>
<tr>
<td><?php echo $i ; ?></td>
<td><?php echo $row["user"] ?></td>
<td><?php echo $row["descriere"]; ?></td>
<td>
<a href="">Contact</a>
</td>
</tr>
<?php endforeach; ?>
</table>
</body>
</html>
如您所見,我嘗試使用 SQL 陳述句,其中使用條件 username=$userconn (如果我嘗試回顯此值,它將顯示正確的值)。我不確定這是否可以這樣作業。如果我這樣離開,將不會顯示任何結果,例如表格是空的,但我有幾行有多個用戶。這是我的桌子:

這是我的表用戶:

我知道這不安全,因為 SQL 注入并且創建自己的陳述句不健康,但首先我希望看到它按預期作業。
uj5u.com熱心網友回復:
$row當您嘗試初始化時未定義$userconn。您將需要$row正確初始化,執行
$row = $result->fetch_assoc();
在你之前
$userconn = $row['username'];
線。
其他人已經警告過你SQL注入的危險,你在問題中明確告訴我們你知道這個問題,你想暫時忽略它,所以我將避免宣傳SQL注入的危險。但是,一旦它開始作業,不要忘記它。
$result= mysqli_query($conn, "SELECT * FROM tb_user WHERE id= $id2");
$userconn = $row['username'];
$rows= mysqli_query($conn, "SELECT * FROM mesajeuseri WHERE username='$userconn'")
此外,您應該考慮加入像
select *
from tb_user
join mesajuseri
on tb_user.username = mesajuseri.username and
id = 123
這也可以用來輕松解決 SQL 注入漏洞,只要 id 應該是一個數字,因為您可以簡單地連接intval($_SESSION['id'])并且保證是一個數字。
uj5u.com熱心網友回復:
首先,在您嘗試為其分配某些內容之前,未定義 $row
$userconn = $row['username'];
其次,你很容易受到 SQL 注入的影響......考慮使用 OOP 方法,使用準備好的陳述句來確保安全(其中 $mysqli = $conn)
$stmt=$mysqli->prepare("SELECT * FROM mesajeuseri WHERE username = ?");
$stmt->bind_param('s',$userconn);
$stmt->execute();
$result=$stmt->get_result();
while($row=$result->fetch_assoc()){
$rows[]=$row;
}
第三,考慮定義要選擇的列,而不是使用 * 選擇器,因為這可能會導致意外的列泄漏,例如密碼存盤在列中
第四,您可以嘗試使用 JOIN...稍微復雜一些,但它提供了非常快的性能。您需要研究連接,以便根據您想要實作的目標制作正確的連接型別。看起來 INNER JOIN 可能適合您嘗試做的事情,但我不能肯定地說。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/481432.html
上一篇:Laravel控制器的正確使用
