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 に答える