-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_* 函数。它们不再被维护并被正式弃用。看到红框了吗?改为了解准备好的语句,并使用PDOMySQLi -本文将帮助您决定使用哪个。如果您选择PDO这里有一个很好的教程

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

于 2013-03-02T13:27:56.547 回答
0
  1. 一些网络服务器将不接受<?. 改为使用<?php
  2. 使用 mysqli ( MySQL 改进扩展) 而不是 mysql
  3. 您的提交没有name属性<input type="submit" name="submit" value="Update">。或者....

您可以替换此行:

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

在这

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