PHP $ _POST没有更新

时间:2013-03-02 12:40:40

标签: php mysql

这是我的代码(整页: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>';

由于某种原因没有运行,有人可以帮助我吗?

3 个答案:

答案 0 :(得分:2)

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

替换为

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

答案 1 :(得分:1)

新代码中的

Please, don't use mysql_* functions。它们已不再维护and are officially deprecated.请参阅red box?请改为了解 prepared statements ,并使用 PDO MySQLi - this article帮你决定哪个。如果您选择 PDO here is a good tutorial

正如其他人提到的那样,不要使用php short open tag。自PHP 5.4及以后版本不支持。大部分时间它也在这里讨论,php short_open_tag problem

答案 2 :(得分:0)

  1. 有些网络服务器不接受<?。请改用<?php
  2. 使用mysqli(MySQL Improved Extension)代替mysql
  3. 您的提交没有name属性<input type="submit" name="submit" value="Update">。 OR ....
  4. 您可以替换此行:

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

    在此

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