提交表单到行动php文件

时间:2014-11-18 15:18:20

标签: php html forms

我有一个表单,当用户点击提交时,我需要运行一个php文件。下面是表格和php文件。

<form action="php_scripts/test.php" method="POST">
        <input name="feature"     type = "text"     placeholder="Feature"   /> 
        <input name="feature2"   type = "text"  placeholder="Feature2"  /> 
        <input type="submit" value = "submit"/>
</form>

test.php的

<?php

    if( isset($_GET['submit']) )
    {
        $feature = $_POST['feature'];
        // do stuff (will send data to database)
    }
?>

我遇到的问题是,当我在表格上按提交时,

if( isset($_GET['submit']) )

始终返回false。

任何人都可以解释为什么会这样吗?我是否完全误解了如何实现向php脚本发送数据的表单?

如果我犯了任何语法错误而感到抱歉,非常感谢您提供任何帮助。

3 个答案:

答案 0 :(得分:5)

您的代码存在一些问题。

您正在将GET与POST方法混合使用。另外,为您的输入添加值并且您的提交按钮未命名,您尝试将其用作条件语句。

HTML

<form action="php_scripts/test.php" method="POST">
        <input name="feature"  value="feature" type = "text" placeholder="Feature" /> 
        <input name="feature2" value="feature2" type = "text"  placeholder="Feature2"  /> 
        <input type="submit" name="submit" value = "submit"/>
</form>

PHP

<?php

    if( isset($_POST['submit']) )
    {
        $feature = $_POST['feature'];
        $feature2 = $_POST['feature2'];
        // do stuff (will send data to database)
    }
?>

旁注:你可以/也应该检查空值。

if(isset($_POST['submit']) 
    && !empty($_POST['feature']) 
    && !empty($_POST['feature2']) ) {...}

<强>脚注:

看到你打算发送给DB:

我希望您计划使用mysqli with prepared statementsPDO with prepared statements

答案 1 :(得分:0)

有几件事:

  • 你使用的是$ _GET而不是$ _POST
  • isset($ _ POST ['submit'])不是一个好检查,并不是每个浏览器都会在其请求中发送提交按钮。 (除了你甚至没有命名提交按钮这一事实,所以它不会在任何浏览器中出现,就像现在一样。)
  • 最好使用:

代码:

if($_SERVER['REQUEST_METHOD'] == 'POST')
{

}

答案 2 :(得分:0)

您错过了提交按钮的名称。因此,没有给出$ _POST / $ _ REQUEST数组中的条目。根据php设置,您可能希望使用array_key_exists()来检查数组中的索引,因为isset可能会引发错误。