提交更新按钮时,会调用函数edit_page()
。此函数使用输入的新数据更改数据库表行
这工作正常表改变正确的条目是好的。
但问题是提交更新按钮时
1.参赛作品是正确插入或更改的数据库
2.但是,当页面重新加载时,此更新页面的内容将保持原样或之前的更新前端或提交后的内容。
我的代码:
<?php
function edit_page()
{
add_cat();
global $page_id;
?>
<?php
if (isset($_GET['page_action']) && ($_GET['page_action'] == 'edit'))
{
$page_id = $_GET['post'];
}
?>
<?php
$page_id = $_GET['post'];
$result = mysql_query("SELECT * FROM pages WHERE page_id = '$page_id'"); //execute the SQL query and return records
$row = mysql_fetch_array($result);
$page_title = $row['page_title'];
$page_content = $row['page_content'];
?>
<form method="post" action="" name="edit_page" class="edit_page">
<h4>Page Title:</h4> <input type="text" name="title" class="title" placeholder="Add title of the Page" required value="<?php echo $page_title;?>"/><br/>
<h4>Page Content:</h4><br/>
<textarea cols="80" id="content" name="content" rows="10"><?php echo $page_content;?></textarea>
<input type="hidden" name="page_edits" value="yes" />
<input type="submit" name="edit_page" class="button" value="Update"/>
<?php
save_edits(); }
function save_edits()
{
if (isset($_POST['edit_page']) && $_POST['page_edits'])
{
$page_id = $_GET['post'];
$page_id = $_GET['post'];
$page_title = $_POST['title'];
$page_content = $_POST['content'];
$date = date('Y-m-d h:i');
$query = "UPDATE pages SET page_title='$page_title', page_content='$page_content', date_gmt='$date' WHERE page_id = '$page_id'";
$result = mysql_query($query) or die("Unable to create Page: " . mysql_error());
}
}
?>
<div class="right_sidebar">
<?php edit_page();?></div>
最后,我的意思是我只想要像wordpress这样的功能,在这之后点击更新按钮之后我们会看到更新的数据。
答案 0 :(得分:2)
你在这里采用PHP的程序方式。这意味着这些陈述是一个接一个地执行的,所以问题在于你的陈述方式。
在您的代码中,您首先显示表单,然后才更新它,这就是为什么以前的值被提取的原因,尽管更新只是稍后发生。
解决方案:函数save_edits()
及其调用首先应出现edit_page().
在安全性方面,另一个重要的事情是直接插入从地址栏获得的值。就在现在,有人可以通过写piece of code来放弃你的整个桌子。您可以使用mysql_real_escape_string()
来阻止它(尽管不完全)或更好:
Please, don't use mysql_*
functions in new code。它们不再被维护and are officially deprecated。请参阅red box?转而了解prepared statements,并使用PDO或MySQLi - this article将帮助您确定哪个。如果您选择PDO here is a good tutorial。
最后,您尚未关闭<form>
代码。