【问题标题】:Create session from drop down list items从下拉列表项创建会话
【发布时间】: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


【解决方案1】:

问题出在选项标签上,你必须在选择标签中指定每个选项的de值,像这样:

<option value="<?php echo $row["member_id"];?>"> <?php echo $row["name"]; ?> </option>

因此,接下来您只需为您的选项值声明 $_SESSION

if (isset($_POST['choose'])) {
       $_SESSION['member_id']=$_POST["choose"];
 }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-13
    • 1970-01-01
    相关资源
    最近更新 更多