如何停止提交显示在地址栏中


How to stop submit being shown in the address bar?

如何

阻止提交显示在搜索栏中? 我做错了什么吗? 如果我使用 post 方法,它可以正常工作,但最近我尝试使用 get 方法,它打印提交和文本框文本在栏中,我尝试删除 name="submit",当我单击它时它没有做任何事情。那么如何停止提交显示在地址栏中?

目前它给了我$submit=提交,:(

所有。

<form action="" method="get">
<input type="text" name="website" placeholder="Website Name">
<input type="submit" name="submit">
</form>
<?php
if(isset($_GET['submit']))
{
  if(!empty($_GET['website']))
  {
    //do stuffs here
  }
  else
  {
     //else echo out that nothing was entered.
   echo "nothing entered";
  }
}
?>

只需使用:

!empty($_GET)

在你的第一个if语句中

所以你的代码应该看起来像这样:

<form action="" method="get">
    <input type="text" name="website" placeholder="Website Name">
    <input type="submit">
</form>
<?php
    if(!empty($_GET)) {
        if(!empty($_GET['website'])) {
            //do stuffs here
        } else {
            //else echo out that nothing was entered.
            echo "nothing entered";
        }
    }
?>

若要从 URL 栏中删除变量,需要使用 POST 方法而不是 GET 方法。

因此,此表单代码应该适合您:

<form action="" method="POST">
    <input type="text" name="website" placeholder="Website Name">
    <input type="submit" name="submit">
</form>

您还需要更改 PHP 代码以使用 $_POST 而不是 $_GET

这样做的缺点是它不会在 URL 栏中显示提交的网站,这意味着用户无法为提交的表单添加书签。但是,这也可能是有意的。

替代解决方案

您可以从提交中删除该名称,并使用isset($_GET)来测试表单是否已提交。

下面是如何执行此操作的示例:

<form action="" method="get">
    <input type="text" name="website" placeholder="Website Name">
    <input type="submit">
</form>
<?php
if(isset($_GET) && count($_GET) > 0) {
    if(!empty($_GET['website']))
    {
        //do stuffs here
    } else {
        //else echo out that nothing was entered.
        echo "nothing entered";
    }
}
?>