我在保存数据库上的数据方面遇到了问题。我的意思是,例如在我的announcement_request表中,标题,描述,图像路径都保存在数据库中,submittedBy
和batchYr
除外。
我的request_announcement.php是这样的:
<?php
$login_session =$row['username'];
$position = $row['position'];
$login_fname = $row['firstname'];
$login_lname = $row['lastname'];
$batchYr = $row['batchYr'];
$submittedBy = $login_fname.' '.$login_lname;
if(isset($login_session) and $position=='President'){
?>
<form action="../pres/send_request_announcement.php" method="post" enctype="multipart/form-data">
<label>Submitted by:</label>
<input type="text" name="submittedBy" class="form-control" value="<?php echo $submittedBy;?>" disabled > <br/>
<label>Batch Year:</label>
<input type="text" name="batchYr" class="form-control" value="<?php echo $batchYr;?>" disabled><br/>
<input type="submit" name="submit" value="Request Announcement" style="float: right"/>
</form>
<?php
}
?>
这是我的send_request_announcement.php:
<?php
include_once('db.php');
if(isset($_POST['submit'])) {
$submittedBy = $_POST['submittedBy'];
$batchYr = $_POST['batchYr'];
$sql = "INSERT INTO announcement_requests (submittedBy, batchYr) VALUES('$submittedBy','$batchYr')";
mysql_query($sql);
echo "<script type='text/javascript'>alert('Announcement Request Sent!'); window.location.assign('../user/home.php');</script>";
}
?>
答案 0 :(得分:0)
首先,退出使用mysql_*
一个您不想习惯使用的已弃用和不良扩展名。
说到为什么它不会被保存到数据库中:
您正在使用mysql_*
和mysqli_*
函数,它们不是同一个库,因此当您使用mysqli
连接到数据库时,您将无法将其与{{1}一起使用电话
将所有mysql_*
次来电转换为适当的mysql_*
来电,它应该会更好。
进一步...查看mysqli_*
的php文档中有关prepared statements
的章节。它将帮助您预防目前易受攻击的SQL注入。
答案 1 :(得分:0)
我能弄明白什么是错的。即使我有正确的查询,它之所以没有保存在数据库上,是因为我的HTML格式是:
<input type="text" name="submittedBy" class="form-control" value="<?php echo $submittedBy;?>" disabled > <br/>
<input type="text" name="batchYr" class="form-control" value="<?php echo $batchYr;?>" disabled > <br/>
有disabled
这是错误的,因为发送表单时不包含已禁用的文本框,因此我使用了readOnly:
<input type="text" name="submittedBy" class="form-control" value="<?php echo $submittedBy;?>" readOnly="readOnly">
<input type="text" name="batchYr" class="form-control" value="<?php echo $batchYr;?>" readOnly="readOnly">
readOnly
也不可编辑。因此,当您想要在数据库中保存数据而无需用户编辑或输入内容时,只需使用readOnly
而不是disabled
。