-1

これは私のコードです (全ページ: cust_edit.php):

<?
session_start(); 
ob_start();
include "../sql.php";
if (!$_SESSION['username']) {
    @include "login.php";
} else {
@include "top.php";
?>

<?
if (isset($_POST['submit'])) {
    $id = $_POST['id'];
    $name = $_POST['name'];
    $date = $_POST['date'];
    $text = $_POST['text'];

    mysql_query("UPDATE custs SET name='$name', date='$date', text='$text' WHERE id='$id'");
    echo '<p align="center"><b>Updated</b></p>';
}

$gid = $id;

if (!isset($gid)) { 
    $gid = addslashes($_GET['id']); 
}

$query = mysql_query("SELECT * FROM custs WHERE id='$gid'");
$x = mysql_fetch_array($query);
echo '
    <br />
    <form name="f" action="cust_edit.php?id='.$x['id'].'" method="post">
        <table border="0" cellspacing="1" width="100%">
            <tr>
                <td width="70%" id="submitright">
                    <input value="'.$x['name'].'" type="text" name="name" size="30" maxlength="50">
                </td>
            </tr>
            <tr>
                <td width="70%" id="submitright">
                    <input value="'.$x['date'].'" type="text" name="date" size="30" maxlength="50">
                </td>
            </tr>
            <tr>
                <td id="submitright">
                    <textarea class="ckeditor" name="text" dir="rtl" cols="80" style="width: 70%">'.$x['text'].'</textarea>
                </td>
            </tr>
            <tr>
                <td align="left" width="70%" id="submitright">
                    <input type="submit" value="Update">
                </td>
            </tr>
        </table>
        <input type="hidden" name="id" value="'.$gid.'">
    </form>';
}
?>
<?
@include "bottom.php";
?>

私の問題は、このスクリプトを実行してページを更新すると、ページが正常に表示され、詳細が入力に表示されることですが、[更新]ボタンをクリックしても何も起こりません-ページは更新されますが、台詞:

mysql_query("UPDATE custs SET name='$name', date='$date', text='$text' WHERE id='$id'");
echo '<p align="center"><b>Updated</b></p>';

何らかの理由で実行されていません。誰かが私を助けてくれますか?

4

3 に答える 3

2
<input type="submit" value="Update">

と置換する

<input type="submit" name="submit" value="Update">
于 2013-03-02T12:43:43.930 に答える
1

新しいコードでmysql_* 関数を使用しないでください。それらはもはや維持されておらず、公式に廃止されています。赤いボックスが見えますか? 代わりにプリペアド ステートメントについて学び、 PDOまたはMySQLiを使用してください。この記事は、どちらを決定するのに役立ちます。PDOを選択する場合は、ここに良いチュートリアルがあります。

また、他の人が言及しているように、php short open tagは使用しないでください。PHP 5.4 以降ではサポートされません。ほとんどの場合、ここでも議論されていますが、php short_open_tag 問題

于 2013-03-02T13:27:56.547 に答える
0
  1. を受け付けない Web サーバーもあります<?<?php代わりに使用してください。
  2. mysql の代わりにmysqli ( MySQL 改良拡張機能) を使用する
  3. nameあなたの送信には属性がありません<input type="submit" name="submit" value="Update">。また....

この行を置き換えることができます:

if (isset($_POST['submit'])) {

これについて

if (isset($_POST['id'])) {
于 2013-03-02T12:50:07.963 に答える