【问题标题】:PHP $_POST not updatingPHP $_POST 没有更新
【发布时间】:2013-03-02 12:40:40
【问题描述】:

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

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

【问题讨论】:

  • 将 name="submit" 添加到

标签: php mysql


【解决方案1】:
<input type="submit" value="Update">

替换为

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

【讨论】:

    【解决方案2】:

    Please, don't use mysql_* functions 在新代码中。它们不再维护and are officially deprecated. 参见red box?改为了解 prepared statements,并使用 PDOMySQLi - this article 将帮助您决定哪个。如果您选择PDOhere is a good tutorial

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

    【讨论】:

      【解决方案3】:
      1. 一些网络服务器不接受&lt;?。请改用&lt;?php
      2. 使用 mysqli (MySQL Improved Extension) 代替 mysql
      3. 您的提交没有name 属性&lt;input type="submit" name="submit" value="Update"&gt;。或者....

      你可以替换这一行:

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

      关于这个

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-01-28
        • 1970-01-01
        • 1970-01-01
        • 2017-06-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多