【发布时间】:2018-03-20 12:47:20
【问题描述】:
我正在制作一个 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>
<a href="index.php"> Terug</a>
</div>
</form>
【问题讨论】:
-
你在哪里有
input/textarea和name=usid? -
在重定向标头(即
header('location: index.php');)之后执行代码不是一个好习惯。在此之前你应该做所有你需要做的事情,然后die();以确保当前页面不会泄漏任何数据。 -
P.S.你为什么混合
mysql_和mysqli_?不。mysql_已经死了,首先。 (见php.net/manual/en/intro.mysql.php) -
不是这个问题,我要先解决这个问题
-
@JopRill 当您在
echo $_SESSION['user']['id'];中看到best()时会看到什么?您不应该使用POST来提供现有的SESSION数据。
标签: php sql variables key label