无法通过PHP获得表单值

时间:2017-10-27 09:18:30

标签: php forms post get

我试图用_POST获取表单(文本字段)的值,并将其存储到文本文件中,但它不起作用。这是我的代码:

HTML

<form>
<input type="text" name="test" id="test" value="">
<input type="button" onclick="location.href='example.com/index.php?address=true';" value="ODOSLAŤ" />
</form>

PHP

if (isset($_GET['address'])) {

    $email = $_POST['test'];

    $myfile = fopen("log.txt","a") or die("Error.");
    fwrite($myfile, "\n".$email);

    // this prints nothing
    echo $email;  
  }

我无法获得该文字字段的值。也不是GET也不是POST对我不起作用。我做错了什么?

3 个答案:

答案 0 :(得分:0)

您没有提交表单。

按如下方式更改您的代码....

<form method="post" action="example.com/index.php?address=true">
     <input type="text" name="test" id="test" value="">
     <input type="submit" value="ODOSLAŤ" />
</form>

你会得到你想要的东西......

答案 1 :(得分:0)

正如汤姆所提到的那样,这就是你所遗漏的。

<form method="post" action="yourphp.php">
<input type="text" name="address" id="test" value="">
<input type="submit" name="submit"/>
</form>

在PHP中,如果被触发则应该发布

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

    $email = $_POST['test'];

    $myfile = fopen("log.txt","a") or die("Error.");
    fwrite($myfile, "\n".$email);

    // this prints nothing
    echo $email;  
  }

说明: -

在表单中,需要执行操作以将操作传递给下一个调用者并执行操作。该操作可能为空或将其值传递给另一个脚本。

在您的PHP中,您实际上正在使用GET。如果用户没有输入任何内容该怎么办?这就是为什么建议使用POST

答案 2 :(得分:0)

您在表单中缺少post方法。

<form method="post" action="example.com/index.php?address=true">
     <input type="text" name="test" id="test" value="">
     <input type="submit" value="ODOSLAŤ" />
</form>

您还必须更改以下行。

if (isset($_GET['address'])) {

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

您希望在触发FreedomPride提及的操作后发布

结论

如果您知道以后要发布该数据,则需要声明post method

正如FreedomPride也提到的那样:

您使用的是GET,但如果用户没有输入您的脚本无效的内容,建议您使用POST