如何在PHP中删除URL中的+和%符号

时间:2016-12-11 05:51:30

标签: php html .htaccess

我使用输入get方法表单创建了一个简单的单页网站,而不使用数据库连接

我在创建新网址时遇到+%符号问题。

当用户输入"Aravind Kumar"这样的名称时,会创建一个类似example.com/?name=Aravind+kumar的网址,并在Facebook上分享链接时也会显示%符号。

如何删除网址中的%+符号?

我的表格

<form action="" class="login-form" method="get" accept-charset="UTF-8">
<div class="form-group">
<input type="text" class="form-control" required id="name" name="name" class="form-control w-40 dis-ib" placeholder="Enter your name" />
</div>
<div class="form-group">
<button type="submit" class="btn btn-success btn-block btn-lg">Create Now</button>
</div>
</form>

当用户输入名称时,会自动为此表单创建一个网址:example.com/?name=user

1 个答案:

答案 0 :(得分:0)

GET方法将变量(附加它们)嵌入到操作URL中。 POST方法使用HTTP请求的实体主体,因此它们不会出现在URL中。

将表单方法从GET更改为POST:即更改以下内容:

<form action="" class="login-form" method="get" accept-charset="UTF-8">

到此:

<form action="" class="login-form" method="post" accept-charset="UTF-8">

您还没有展示您的PHP,但我假设您正在使用$ _GET解释您的表单变量。使用POST方法时,需要使用$ _POST数组解释变量。如果您要发布到其他某个域/网站,您可能会发现必须使用这两种方法中的一种,具体取决于您可能无法控制的网站要求。

编辑:如果要动态地将提交的值从空格(将转换为+符号)更改为连字符,下面是使用javascript实现onsubmit()处理程序的示例表单。在提交表单之前,空格将更改为连字符。

<html>
<head>
    <title>Test Page</title>
</head>
<script lang="javascript">
function getObj(id)
{
    if (document.getElementById)
    {
        //standard browsers
        return(document.getElementById(id));
    }
    else if (document.all)
    {
        //older browsers
        return(document.all[id]);
    }
    else if (document.layers)
    {
        return(document.layers[id]);
    }
}

function onSubmit(obj)
{
    var objName = getObj('name');
    objName.value = objName.value.replace(/ /i,'-'); //replace spaces with hyphens
    return true;
}
</script>
<body>
Hello
<form action="" class="login-form" method="get" accept-charset="UTF-8" onsubmit="return onSubmit(this)">
<div class="form-group">
<input type="text" class="form-control" required id="name" name="name" class="form-control w-40 dis-ib" placeholder="Enter your name"/>
</div>
<div class="form-group">
<button type="submit" class="btn btn-success btn-block btn-lg">Create Now</button>
</div>
</form>
</body>
</html>