【发布时间】:2020-09-01 22:01:44
【问题描述】:
我创建了一个下拉列表,显示已从用户添加的成员。这个脚本是这样的:
<?php include('server.php'); ?>
<?php
$connect = mysqli_connect("localhost", "root", "", "geofence");
?>
<html>
<head>
<title>Add members</title>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" />
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
</head>
<body>
<div class="container">
<br /><br />
<h2 align="center">Please, choose a family member</h2>
<br /><br />
<div class="form-group" align="center">
<form name="dropdown" action="" method="post">
<select name="choose" id="choose" width="150" style="width: 150px">
<option value="" selected disabled hidden>Choose Member</option>
<?php
$res=mysqli_query($connect,"select *
from member
where user_id=".$_SESSION['user_id']."");
while($row=mysqli_fetch_array($res)) {
?>
<option><?php echo $row["name"]; ?></option>
<?php
}
?>
</select>
</form>
<input type="button" name="ok" id="ok" class="btn btn-info" value="OK" />
</div>
</div>
</body>
</html>
<script>
$(document).ready(function(){
$('#ok').click(function(){
$(location).attr('href', 'http://localhost/Houston/index.php')
});
});
</script>
现在,我要做的是创建一个会话 ($_SESSION['member_id']),它引用从列表中选择的名称。到目前为止,我已经尝试了几件事,但没有成功。一个例子是这样的:
if (isset($_POST['choose'])) {
if (count($errors)==0) {
$query="SELECT * FROM member where name=".$_POST['choose']."";
$result=mysqli_query($db,$query);
if (mysqli_num_rows($result)==1) {
$row=mysqli_fetch_assoc( $result);
$member_id=$row['member_id'];
$_SESSION['member_id'] = $row['member_id'];
}
}
}
我需要 $_SESSION['member_id'] 以便可以在另一个文件上使用它并填充我的数据库。缺少什么?
【问题讨论】:
-
一方面,您有一个表单之外的输入。
-
第二,你让自己容易被注射;使用准备好的语句。
-
我不确定您是否将数据发布到
http://localhost/Houston/index.php -
@Funk Forty Niner 我更改了它(将其放入表单中),但问题仍然存在。此外,我并不真正关心注射,这只是一个学校项目。
-
@Arash Younesi 你的意思是我必须用 jquery 做更多的事情?
标签: php mysql session drop-down-menu