Php 如何将动作标签添加到表单?

Php 如何将动作标签添加到表单?,php,forms,Php,Forms,我有一个工作php留言簿脚本。只有一个文件。我试图验证它,但只有一个错误: Line 147, Column 36: required attribute "action" not specified <form method="post" name="blogform"> 第147行第36列:未指定必需属性“action” 现在代码是这样的,我确信我需要将文件分成两部分,这样我就可以为action标记创建一个文件,但我不知道如何创建。非常感谢您的帮助 <?php

我有一个工作php留言簿脚本。只有一个文件。我试图验证它,但只有一个错误:

Line 147, Column 36: required attribute "action" not specified
<form method="post" name="blogform">
第147行第36列:未指定必需属性“action”
现在代码是这样的,我确信我需要将文件分成两部分,这样我就可以为action标记创建一个文件,但我不知道如何创建。非常感谢您的帮助

    <?php
session_start();
include("../../4a/inc/opendb.inc.php");

if(isset($_POST['send'])) //checks if $_POST variable "is set"

if(isset($_SESSION["ellenorzo"]) && !empty($_SESSION["ellenorzo"]) && $_SESSION["ellenorzo"]==$_POST["code"]){    

    $name    = trim($_POST['name']); //eliminating whitespaces
    $email   = trim($_POST['email']);
    $message = addslashes( trim($_POST['message']));

    $query = "INSERT INTO blog (name, email, message, date) " .
             "VALUES ('$name', '$email', '$message', NOW())";
    mysql_query($query) or die('Hey, something is wrong!' . mysql_error());

    header('Location: ' . $_SERVER['REQUEST_URI']); 
    exit; 
} 
?>

<?php
include('../../4a/inc/head.inc.php');
?>

<body style="color: #ffffff;">
    <div class="mainblog">
        <div class="top">
            <div class="menu">
                <?php
                include('../menu.inc.php');
                ?>
            </div>
        </div>

<div class="middleblog">

<form method="post" name="blogform">
<input name="name" id="name" class="nameblog" type="text" />
<img src="../../4a/img/main/name.jpg" class="name" alt="Name" />
<input name="email" id="email" class="emailblog" type="text" />
<img src="../../4a/img/main/email.jpg" class="email" alt="Email" />
<textarea name="message" id="message" class="messageblog" rows="6" cols="6" onkeyup="return ismaxlength(this)">
</textarea>
<img src="../../4a/img/main/message.jpg" class="message" alt="Message" />
<input name="send" value="submit" id="send" class="sendblog" type="image" src="../../4a/img/main/send.jpg" onclick="return checkform();" />
<input type="hidden" name="send" value="submit" />
<div class="text_check_code">
<font class="text">
Enter the characters as they are shown below.
</font>
</div> 
<img src="../../4a/inc/secure.inc.php" class="img_check_code" alt="Nospam" />
<input name="code" class="input_check_code" />
</form>

<?php
                $rowsperpage = 10;
                $pagenumber = 1; 

                if(isset($_GET['page'])) 
                { 
                    $pagenumber = $_GET['page']; 
                } 
                $offset = ($pagenumber - 1) * $rowsperpage; 

                $query = "SELECT id, name, email, message, date ".
                         "FROM blog ".
                         "ORDER BY id DESC ".
                         "LIMIT $offset, $rowsperpage";  
                $result = mysql_query($query) or die('Hey, something is wrong!. ' . mysql_error()); 

                if(mysql_num_rows($result) == 0) 
                { 
                print("<br /><br /><br /><br /><br /><br /><br /><br />The blog is empty.");
                } 
                else 
                { 
                    while($row = mysql_fetch_array($result)) 
                    { 
                        list($id, $name, $email, $message, $date) = $row;


                                        $name    = htmlspecialchars($name);
                                        $email   = htmlspecialchars($email);
                        $message = htmlspecialchars($message);
                        $message = stripslashes(nl2br($message)); //real breaks as user hits enter

                ?> 

            <br />
            <div class="blogentries">
                    <b><a href="mailto:<?=$email?>" class="index"><?=$name?></a></b>
                    <br />
                    <?=$message?>
                    <br />
                    <i><?=$date?></i>
            </div>
            <br />

            <?php
                } //closing while statement 

            $query   = "SELECT COUNT(id) AS numrows FROM blog";
            $result  = mysql_query($query) or die('Hey, something is wrong!. ' . mysql_error()); 
            $row     = mysql_fetch_array($result, MYSQL_ASSOC); 
            $numrows = $row['numrows']; 

            $maxpage  = ceil($numrows/$rowsperpage); //rounding up any integer eg. 4,1=5 
            $nextlink = ''; 

            if($maxpage > 1) 
            { 
                $self     = $_SERVER['PHP_SELF']; 
                $nextlink = array();
                for($page = 1; $page <= $maxpage; $page++) 
                { 
                    $nextlink[] =  "<a href=\"$self?page=$page\">$page</a>";
                }  
                $nextlink = "Next: " . implode(' » ', $nextlink); //returns all elements of an array as a string
            } 
            include ("../../4a/inc/closedb.inc.php");
            ?>
            <br />
            <div class="nextlink">
            <?=$nextlink;?>
            </div>
        </div>
        <br />
        <br />
        <div class="bottomblog">
            <?php
            require_once('../../4a/inc/copyright.inc.php');
            ?>
        </div>
        <br />
        <br />
    </div>
    <?php //closing the else statement
    }
    ?>

<?php
include('../../4a/inc/footer.inc.php');
?>

属性指定表单发送到的链接。如果表单调用自身,则可以将其保留为空:

<form action="" method="post" name="blogform">


操作标签告诉表单在哪里提交数据。如果留空,它将尝试将数据提交到当前php页面。如果它给您带来麻烦,也许您需要指定它并将其指向生成表单的php页面。

在您提供的代码中,处理新插入的代码位位于该页面的顶部,因此您应该将
action
标记设为页面名称


顺便说一句,你应该确保你的输入都是干净的;在插入它们之前只使用
trim()
,这是自找麻烦。有关此主题的更多信息,请参阅。

确保帖子都是W3标准中定义的大写也是一个好主意。。。我注意到,如果不是这样,firefox可能会出现问题。(安全总比后悔好)