我在开发方面是相当新的,因为我在此之前所做的一切只是管理数据库。我想出了一个系统,它将有三种类型的用户。管理管理用户我通过将用户角色管理到登录名中成功创建了多用户登录页面。但是我目前遇到的问题是,我无法查看只有当前用户以前提交的数据。例如,我有两个用户,Ariel和Lyla。我想做的是,当Ariel登录系统时,Ariel只能看到她已经提交到数据库的内容,就像目前一样,她可以看到提交的全部数据。我已经这样做了$sql = "SELECT * FROM iirincidentmain_draft WHERE username='$_SESSION[user][username]'";但作为回报,我得到了这个错误注意:数组到字符串的转换我的完整代码如下<?phpsession_start();//Checking User Logged or Notif(empty($_SESSION['user'])){ header('location:../index.php');}//Restrict admin or Moderator to Access user.php pageif($_SESSION['user']['role']=='admin'){ header('location:../admin/index.php');}if($_SESSION['user']['role']=='management'){ header('location:../management/index.php');}require_once("../db.php");?><div class="col-md-9 bg-white padding-2"><h3>Reports in Draft</h3> <div class="row margin-top-20"> <div class="col-md-12"> <div class="box-body table-responsive no-padding"> <table id="example" class="table table-striped table-bordered" style="width:100%"> <thead> <th>Incident Date</th> <th>OPU Region Or Country</th> <th>Incident Title</th> <th>Incident Category</th> <th>Status</th> <th>Draft IIR</th> <th>Edit</th> </thead> <tbody> <?php$sql = "SELECT * FROM iir_incidentmain_draft WHERE username='$_SESSION[user][username]'"; $result = $conn->query($sql); if($result->num_rows > 0) { while($row = $result->fetch_assoc()) {?> 有人可以建议我吗?
1 回答
森林海
TA贡献2011条经验 获得超2个赞
更改此行:
$sql = "SELECT * FROM iir_incidentmain_draft WHERE username='$_SESSION[user][username]'";
成为:
$sql = "SELECT * FROM iir_incidentmain_draft WHERE username='" . $_SESSION['user']['username'] . "'";
换句话说,您在会话中有一个拼写错误,缺少引号。在将数组值附加到字符串时,使用点表示法也是必要的(我认为)。因此,您可能遇到的字符串转换错误是由于解析器仅在嵌入外部双引号时才看到的情况。$SESSION
其他人可能会注意到你应该逃避这一切。转义用户名的有效方法是设置 sql 预准备语句。
- 1 回答
- 0 关注
- 106 浏览
添加回答
举报
0/150
提交
取消