[英]How to remove the + and % symbols in URL in PHP
我使用输入get方法表单创建了一个简单的单页网站,而没有使用数据库连接
创建新网址时, +
和%
符号出现问题。
当用户输入"Aravind Kumar"
类的名称时,它会创建一个诸如example.com/?name=Aravind+kumar
类的URL,并且在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>
用户输入名称时,它将自动为他们创建以下格式的URL: example.com/?name=user
name=user
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>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.