我创建了一个网站,我可以上传文章但是我在更新已创建的文章方面遇到了麻烦。我已设法填写一个表格,其中包含预先填写的数据库中的信息,但是当我提交任何更改然后到文章然后它不会更新。
$ var_value是从上一页传递的主键,用于确定要加载哪个文章&编辑。
这是我更新文章的表单。
username/paswword@hostname
以下是我尝试更新文章的方法。我试图根据主键更新记录,这个变量正在传递给页面,因为它正在加载表单中的内容。
<?php
$var_value = $_POST['varname'];
$get_studies = "select * from news where `news`.`articleID` = $var_value";
$run_studies = mysqli_query($con,$get_studies);
while($row_studies = mysqli_fetch_array($run_studies)){
$newsTitle = $row_studies['title'];
$newsDate = $row_studies['date'];
$shortBio = $row_studies['shortBio'];
$longBio = $row_studies['longBio'];
$longBio2 = $row_studies['longBio2'];
$image = $row_studies['image'];
}
echo "
<div class='panelContent1' id='addNewsWraper'>
<h2>Dashboard</h2>
<h3>Update Article</h3>
<form method='post' enctype='multipart/form-data' onsubmit='alert('stop submit'); return false;' >
<div class='newsForm'>
<p>Article Title<br /><input type='text' value='$newsTitle' name='newsTitle' /></p>
<p>Short Description<br /><textarea name='newsShort' placeholder='Around a paragraph' />$shortBio</textarea>
<p>Image<br /><input type='file' name='newsImage' /></p>
</div>
<div class='newsForm'>
<p>Date<br /><input type='text' value='$newsDate' name='newsDate' placeholder='2017' /></p>
<p>Story<br /><textarea name='newsLong' placeholder='News article text' />$longBio</textarea>
<p>Story2<br /><textarea name='newsLong2' value='' placeholder='News article text' />$longBio2</textarea>
<button type='submit' name='updateNews'>
Update
</button>
</div>
</form>
</div>
";
?>
答案 0 :(得分:0)
你说$var_value
正在传递给你的php更新脚本,但我看不出它是,也不是被POST
选中并转移到本地变量。将其作为<input type="hidden"
传递,然后选择使用POST
。
在第一个php脚本中:
<p>Article Title<br /><input type='text' value='$newsTitle' name='newsTitle' />
<input type="hidden" value='$var_value' name='var_value' />
</p>
在第二个PHP脚本中:
$var_value = $_POST['var_value'];
通过使用参数化查询来保护脚本免受sql注入也很好。
答案 1 :(得分:0)
您的查询存在问题
insertNews = "UPDATE mods SET title='$newsTitle' date='$newsDate' shortBio='$newsShort' longBio='$newsLong' longBio2='$newsLong2' image='$newsImage' WHERE articleID='$var_value'";
将此替换为您当前的查询,您将很高兴。