源码如下<!DOCTYPE html>
<!--
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in the editor.
--><html>
    <head>
        <meta charset="UTF-8">
        <link href="css/formstyle.css" rel="stylesheet" type="text/css"  />
        <script type="text/javascript" charset="utf-8" src="ueditor/ueditor.config.js"></script>
        <script type="text/javascript" charset="utf-8" src="ueditor/ueditor.all.min.js"></script>
        <!--建议手动加在语言,避免在ie下有时因为加载语言失败导致编辑器加载失败-->
        <!--这里加载的语言文件会覆盖你在配置项目里添加的语言类型,比如你在配置项目里配置的是英文,这里加载的中文,那最后就是中文-->
        <script type="text/javascript" charset="utf-8" src="ueditor/lang/zh-cn/zh-cn.js"></script>
        <script type="text/javascript">
    var editor = new UE.ui.Editor();
    editor.render("myEditor");
    //1.2.4以后可以使用一下代码实例化编辑器
    //UE.getEditor('myEditor')
        </script>
        <title></title>
    </head>
       <body>
<?php
require 'inc/connect_mysql.php';
//require 'lib/header.html';
echo '编辑文章';
if((isset($_GET['id'])) && (is_numeric($_GET['id'])) ){
    $id = $_GET['id'];
}elseif ((isset ($_POST['id'])) && (is_numeric($_POST['id'])) ) {
    $id = $_POST['id'];
}  else {
    echo '<p>页面错误.</p>';
    exit();
}
//check if the form has been submitted;
if($_SERVER['REQUEST_METHOD'] == 'POST'){
    $errors = array();
if(empty($_POST['cla_id'])){
    $errors = 'article type is null.';
} else {
    $cla_id = mysqli_real_escape_string($dbc, trim($_POST['cla_id']));
}
//check for a titles
if(empty($_POST['title'])){
        $errors [] = 'you forgot to enter title.';
    }  else {
        $title = mysqli_real_escape_string($dbc, trim($_POST['title']));
    }    //check for a content
if(empty($_POST['content'])){
        $errors[] = 'you forgot to enter content.';
    }  else {
    $content = mysqli_real_escape_string($dbc,trim($_POST['content']));    
    }
if(empty($_POST['author'])){
        $errors[] = 'you forgot to enter content.';
    }  else {
    $author = mysqli_real_escape_string($dbc,trim($_POST['author']));    
    }    if(empty($errors)){
        $q = "SELECT n_id FROM news WHERE cla_id AND n_id !=$id";
        $r = @mysqli_query($dbc, $q);
        if(mysqli_num_rows($r) == 0 ){
            $q = "UPDATE news SET cla_id='$cla_id', title='$title',content='$content', author='$author' WHERE n_id=$id ";
            $r = @mysqli_query($dbc, $q);
            if(mysqli_affected_rows($dbc) == 1){
                echo '<p>文章更新完成</p>';
            }  else {
                echo '<p class="error">The user could not be edited due to a system error. We apologize for any inconvenience.</p>'; // Public message.
echo '<p>' . mysqli_error($dbc) . '<br />Query: ' . $q . '</p>'; // Debugging message.
            }
        }  else {
            
echo '<p class="error">The following error(s) occurred:<br />';
foreach ($errors as $msg) { // Print each error.
echo " - $msg<br />\n";
                        echo '<p>' . mysqli_error($dbc) . '<br />Query: ' . $q . '</p>'; // Debugging message.
                }
                echo '</p><p>Please try again.</p>';
        }
    }
} $q = "SELECT cla_id, title,content,author FROM news WHERE n_id=$id";
$r = @mysqli_query($dbc, $q);
if(mysqli_num_rows($r) == 1 ){
$forumssql ="SELECT * FROM  newsclass ORDER BY news_type;";
$forumsresult =@mysqli_query($dbc, $forumssql) ; 
echo ' <form action="edit_article.php" method="post" accept-charset="urf-8">';  echo "文章类型 -- <select name=cla_id>";
while($forumsrow = mysqli_fetch_assoc($forumsresult)){
    echo"<option value='" . $forumsrow['cla_id'] . "'>" . $forumsrow['news_type'] ."</option>";
}
 echo "</select>";  $row = mysqli_fetch_array($r, MYSQLI_NUM);
 //echo '<p><em>文章类型:</em><input name="mid" type="text" size="60" maxlength="100" value="'.$row[0] .'" /></p>';
 echo '<p><em>文章标题:</em><input name="title" type="text" size="60" maxlength="100" value="'.$row[1] .'" /></p>';
  echo '<p><em>作者:</em><input name="author" type="text" size="60" maxlength="100" value="'.$row[1] .'" /></p>';
 echo '<table width="600"><tr><td>';
 echo '<p><em>文章内容</em>: <textarea  name="content" id="myEditor" value="'.$row[2].'"></textarea></p>' ;
 echo '</td></tr></table>';
 
 echo '<input name="submit" type="submit" value=" 提交" />
     <input type="hidden" name="id" value="' . $id . '" />
</form>';
}
 else { // Not a valid user ID.
echo '<p class="error">This page has been accessed in error.</p>';
}//mysqli_close($dbc);
?>    </body>
</html>

解决方案 »

  1.   


    The following error(s) occurred:Please try again.我写的错误提示貌似没有出来,为什么呢
      

  2.   


    The following error(s) occurred:Please try again.我写的错误提示貌似没有出来,为什么呢你的$errors是空的啊,所以foreach根本就没有执行,而且你if (empty($errors)) 个人认为逻辑也有问题,应该是非空判断,而你判断的是如果空才执行foreach,总而言之就是你$errors是个空数组,也就是上面的那些if判断没有走进去,进而得到结论,你输入的数据很规范
      

  3.   

    还有
    $q = "SELECT n_id FROM news WHERE cla_id AND n_id !=$id";
            $r = @mysqli_query($dbc, $q);
    这里的结果数不为0,所以没有走下面的if里面的update,而是直接走进了else的 "Please try again."