找不到此表单中的错误

时间:2012-03-27 02:10:11

标签: php html syntax

这是基本的东西,但我不能得到以下形式来可靠地处理。该页面的名称是inplain.php。它偶尔会起作用。该页面只列出“平台”表中的所有值,并允许用户添加记录和刷新。

<?
session_start();
   if (!isset($_SESSION['id_customer'])) { die ("Access Denied"); }
   include "../inc/db.php";


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

     $platform = $_POST['platform'];

     $created = date("Y-m-d H:i:s");

     $query = "INSERT INTO Platform (id_platform, platform, date_created, date_modified) VALUES ('', $platform, '$created', '$created')";
     mysql_query($query);
     mysql_close();

     header("Location: inplain.php");
     }


      echo $passage;

?>




<table cellpadding="15">
        <tr>
            <td valign="top" width="50%">
            <?                   
            $sell_result = mysql_query("SELECT COUNT(id_platform) FROM Platform");
            $sell_count=mysql_fetch_array($sell_result);
            ?>
            The following <?=$sell_count['COUNT(id_platform)']?> categories exist in Platform. | <a href="inlist.php">Add Game...</a>
            <div style="height: 250px; overflow: auto;">
                <ul>
                <?
                    $result = mysql_query("
                                        SELECT * FROM Platform");
                    while($row = mysql_fetch_array($result)) {
                ?>
                    <li>

                                            <a href="inwant.php?addswaps=1&cat=Sell&col=sell&hid=<?=$row['id_platform']?>"><?=$row['id_platform']?></a> - <?=$row['platform']?>
                        <img src="../images/dot.png" width="1" height="20" border="0" /> 
                        <a href="inplain.php?remove=1&cat=Platform&col=platform&pid=<?=$row['id_platform']?>"><img src="../images/delete.jpg" width="15" height="15" border="0" alt="Delete" /></a>
                    </li>
                <? } ?>
                </ul>
            </div>
        </td>           
    </tr>   
<tr>
<td>
    <form name="inplain.php" method="post">
        Add a new platform: 
        <br />
            <input type="text" name="platform" size="30" /><BR>
            <input type="submit" id="submit" name="submit" value="Add" />

    </form>
</td>
</tr>
</table>

感谢您的建议,这最终终于有效了,我在“if(isset($ _ POST ['submit'])){”

的位置添加了这个。
$password = mysql_real_escape_string($_POST['password']);

if ($_POST['Submit'] == 'Add' & $password == 'xyd')  {

$platform = mysql_real_escape_string($_POST['platform']);

$created = date("Y-m-d H:i:s");

$query = "INSERT INTO Platform (id_platform, platform, date_created, date_modified) VALUES ('', '$platform', '$created', '$created')";
mysql_query($query);
mysql_close();
  header("Location: inplain.php");
    die();
}

3 个答案:

答案 0 :(得分:1)

在撰写exit标题后,您需要Location。写入额外的输出可能会破坏重定向。

答案 1 :(得分:0)

您应输出mysql查询的结果,并使用mysql_error函数确定查询中是否有某些内容失败。我注意到你没有在插入的$ platform变量周围加上引号,这可能是一个问题。

另外,请注意您的脚本容易受到sql注入攻击。在插入之前,您需要使用mysql_real_escape_string转义$ platform字符串。

最后,在您的提交逻辑中,在将重定向的标头发送回脚本之后,您应该在浏览器重定向时放置一个die()命令以阻止脚本进行任何进一步处理。不是必需的,但是很好的做法。

答案 2 :(得分:0)

可能值得检查MySQL和PHP的错误日志。

故障是否可能与调用脚本的位置有关,因为我注意到您的数据库详细信息位于包含相对路径的包含中。如果这个脚本也被“包含”而不是直接运行,那么这个相对路径可能并不总是正确的吗?