0

所以我已经让这段代码工作了,所以它可以将新闻插入到它的表格中,但问题是如果需要的话,之后编辑新闻。

我一直在尝试不同的方法,但似乎无法完全停止。

<? 
if(!$id)
echo("Please choose a page to edit..");
elseif($id==edit)
{
$select = mysql_query("select * from news where newsid = '$id'");
$article = mysql_fetch_array($select);
?>
<form action="edit-news.php?id=edited" method="post">
    Title:<br />
    <input name="readuser" type="text" value="<? echo("$article[title]");?>" size="70" />
Article Content:<br />
<textarea name="pageuser" cols="40" rows="6"><? echo("$article[text1]");?></textarea>
    <br />
    <br />
    <input type="submit" value="Update article" />
</form>
<?
}
elseif($page==edited)
{
$text1 = $_POST[pageuser];
$title = $_POST[readuser];
$updateit = mysql_query("update news set text1 = '$text1' AND title = '$title' where newsid = $id");
echo("Article updated");
}
?>

访问该页面时,我不再收到错误消息(谢天谢地!!!),但它只是没有编辑文章。

4

2 回答 2

3

为您的文本输入和文本区域分配一个值,以便它们显示文章进行编辑:

<input name="title" size="40" maxlength="255" value="<?php echo htmlspecialchars($title); ?>">

<textarea name="text1"  rows="7" cols="30"><?php echo htmlspecialchars($text1); ?></textarea>

<textarea name="text2" rows="7" cols="30"><?php echo htmlspecialchars($text2); ?></textarea>

<?php echo $PHP_SELF ?>改为:

<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>

旁注:mysql_*已弃用,将 MySQLi 或 PDO 与准备好的语句一起使用。您的查询容易受到 SQL 注入的攻击。一个快速的解决方法是:

 mysql_query("SELECT * FROM news WHERE newsid='" . (int)$_GET['newsid'] . "'",$connect);

mysql_real_escape_string()比后者更好,mysql_escape_string()因为后者不尊重字符集。不过,两者都比准备好的声明更好。

于 2012-12-19T08:07:51.023 回答
0

尝试这个:

UPDATE news SET title = '$title', dtime = NOW(), text1 = '$text1', text2 = '$text2' WHERE newsid = '$newsid'
于 2012-12-19T08:15:47.840 回答