PHP和SQL - 如何将此ID转换为变量?

时间:2018-03-20 12:47:21

标签: php sql variables key label

我正在创建一个PHP网站,我希望在订购故障单时将我的用户ID加载到故障单表中。有一个网页,您可以在其中选择故障单,金额和ID作为标签。

第一个代码将数据添加到我的数据库

    function best(){
    global $db, $errors;

    // receive all input values from the form
    $ticket     = e($_POST['tickety']);
    $aantall    = e($_POST['aantal']);
    $usidd      = e($_POST['usid']);

    // form validation: ensure that the form is correctly filled
    if (empty($ticket)) { 
        array_push($errors, "Ticket is verplicht"); 
    }
    if (empty($aantall)) { 
        array_push($errors, "Aantal is verplicht"); 
    }

    // order ticket if there are no errors in the form
    if (count($errors) == 0) {
            $con = new PDO("mysql: host=localhost; dbname=website", "root", "");

            mysqli_query($db, $query);
            $_SESSION['success']  = "Ticket besteld";
            header('location: index.php');
            $query = "INSERT INTO tickety (ticket, aantal, userid) 
                      VALUES('$ticket', '$aantall', '$usidd')"; 
            mysqli_query($db, $query);


        }
    }

此代码定义输入字段

<form method="post" action="ticketpag.php">

    <?php echo display_error(); ?>
    <div class="input_group">
        ID
        </br>
        <input type='hidden' name='usid'>
        <h4><?php
        echo $_SESSION['user']['id']; 
        ?></h4>
        </input>
        Ticket
        </br>
        <select name='tickety'>

            <?php
            $query = "SELECT * FROM `stok`";
            $result = mysql_query($query);
            while($row=mysql_fetch_array($result, MYSQL_ASSOC)){                                                 
            echo "<option>".$row['naam']."</option>";
            }
            ?>
        </select>
        </br>
        Aantal
        </br>
        <select name="aantal">
                <option value="1">1</option>
                <option value="2">2</option>
                <option value="3">3</option>
                <option value="4">4</option>
                <option value="5">5</option>
                <option value="6">6</option>
                <option value="7">7</option>
                <option value="8">8</option>
                <option value="9">9</option>
                <option value="10">10</option>
                <option value="11">11</option>
                <option value="12">12</option>
                <option value="13">13</option>
                <option value="14">14</option>
                <option value="15">15</option>
                <option value="16">16</option>
                <option value="17">17</option>
                <option value="18">18</option>
                <option value="19">19</option>
                <option value="20">20</option>
            </select>
    </div>
    <div class="input-group">
        <button type="submit" class="btn" name="bestel_btn"> Bestellen</button>
        &nbsp; <a href="index.php"> Terug</a>
    </div>
</form>

1 个答案:

答案 0 :(得分:0)

添加$ _SESSION ['user'] ['id'];到输入字段而不是标签,它应该工作。

示例:

<input type="hidden" name="usid" id="usid" value="<?php echo $_SESSION['user']['id'];?>" />

隐藏字段不会向用户显示。

<强>增加: 但是,正如@mickmackusa所提到的,使用POST请求发送现有的SESSION数据是一种不好的做法。而是测试并看看当你在best()中回应$ _SESSION ['user'] ['id']时会发生什么。您不应该使用POST来提供现有的SESSION数据。