0

在用户配置文件中,我试图只允许用户查看他们发布到数据库的内容,但是通过这种编码方式,它可以在每个用户帐户中显示数据库中的所有内容。我怎样才能让它只回显用户创建的内容。

<?php 

include("headers.php");

if($_POST['delete']) {
$title=$_POST['title'];
echo $title;
$result = mysql_query("DELETE FROM test2 where fname='$title'");

if($result)
echo "<div style='color:red;'>The ".$row['fname']." datas are deleted successfully.<br>   <br></div>";
}


if($_POST['submit']) { 

$title=$_POST['title'];
$result = mysql_query("SELECT * FROM test2 where fname='$title'");

$row = mysql_fetch_assoc($result);
 @$image=$row ['photo'];
  echo "<div style='width: 600px;border: 1px solid black;padding: 30px;float:     center;text-align: center;margin: auto;margin-top: 140px;'>  <span style=' font-size: 20px;      font-weight: bold;'>Recent Post</span><br><br>
  <table style='width:100%;border-bottom:1px solid gray;'><tr><td><table style='width:90%;'><tr><td>Name:</td><td>".$row['fname']."</td></tr>
  <tr><td>Start Date:</td><td>".$row['stdate']."</td></tr>
  <tr><td>End Date:</td><td>".$row['endate']."</td></tr>
  <tr><td>Address:</td><td>".$row['addr1']."</td></tr>
  <tr><td></td><td>".$row['addr2']."</td></tr>
  <tr><td></td><td>".$row['city']."</td></tr>
  <tr><td></td><td>".$row['state']."-".$row['zip']."</td></tr>
  <tr><td>Description:</td><td>".$row['description']."</td></tr>

  <tr><td>Link:</td><td><a href=".$row['link'].">".$row['link']."</a></td></tr>
  </table></td><td><img src='image/".$image."' alt='image'  style='width:100px;height:100px;'></td></tr></table><br/><br/><a href='index.php'>Go Back To Home </a></div>";

 // echo "<div style='width:90%;float:center;border-bottom:1px solid blue;'></div>";
  }  else {
$result = mysql_query("SELECT * FROM test2");
echo "<div style='width: 600px;border: 1px solid black;padding: 30px;float: center;text-align: center;margin: auto;margin-top: 140px;'>  <span style=' font-size: 20px;    font-weight: bold;'>Recent Post</span><br><br>";
while($row = mysql_fetch_array($result))
{
 @$image=$row ['photo'];
  echo "<table  style='width:100%;border-bottom:1px solid gray;'><tr><td><table style='width:90%;'><tr><td>Name:</td><td>".$row['fname']."</td></tr>
 <tr><td>Start Date:</td><td>".$row['stdate']."</td></tr>
 <tr><td>End Date:</td><td>".$row['endate']."</td></tr>
 <tr><td>Address:</td><td>".$row['addr1']."</td></tr>
 <tr><td></td><td>".$row['addr2']."</td></tr>
 <tr><td></td><td>".$row['city']."</td></tr>
 <tr><td></td><td>".$row['state']."-".$row['zip']."</td></tr>
 <tr><td>Description:</td><td>".$row['description']."</td></tr>

 <tr><td>Link:</td><td><a href=".$row['link'].">".$row['link']."</a></td></tr>
 </table></td><td><img src='image/".$image."' alt='image' style='width:100px;height:100px;'></td></tr></table>";
}
  echo "<br/><a href='index.php'>Go Back To Home </a></div>";

  }

 ?>
4

2 回答 2

0

这是不确定的,但如果您在会话或用户配置文件中保留用户的身份,您已经知道用户的身份,所以我们可以假设通过$_SESSION['userid']$_GET['userid']$_POST['userid']

$userId = $_SESSION['userid'];

或者

$userId = $_GET['userid'];

无论如何,您必须有用户信息才能从数据库中查询。它可以是用户名或用户的任何信息,而不是用户 ID

$result = mysql_query("SELECT * FROM test2 where fname='$title' AND userid ='$userId'");

此外,您应该看看防止SQL 注入

于 2013-06-22T15:04:08.537 回答
0

您的问题缺少很多信息(例如您的数据库架构)。但是您可能只需要WHERE在 SQL 中指定用户的子句。例如,

SELECT * FROM test2 WHERE fname='$title' and user=$userid

或类似的东西,取决于架构。

于 2013-06-22T15:04:30.660 回答