我正在尝试使用get方法
的slug函数我有一个输入名称=“title”的表单,并使用method =“GET”。我试图为函数参数提供标题名称,但它不起作用
请告诉我问题出在哪里 代码在这里......
<html>
<body>
<?php
$title=$_GET['title'];
echo $title;
if(isset($_POST['submit'])) {
function create_slug($string){
$string = preg_replace( '/[«»""!?,.!@£$%^&*{};:()]+/', '', $string );
$string = strtolower($string);
$slug=preg_replace('/[^A-Za-z0-9-]+/', '-', $string);
return $slug;
}
$slug = create_slug($title);
echo $slug;
}
?>
<form action="" method="GET">
<input type="text" name="title">
<input type="submit" value="convert">
</form>
</body>
</html>
提前致谢.....
答案 0 :(得分:1)
使用$_GET['submit']
代替$_POST['submit']
,因为您的表单方法是GET。
答案 1 :(得分:0)
问题出在这一行
if(isset($_POST['submit'])) {
..
}
它永远不会评估为true,因为您正在使用表单的GET方法。
您应该将其更改为
if(isset($_GET['submit'])) }
..
}
答案 2 :(得分:0)
如果您将表单方法设置为&#39; GET&#39;,则所有参数都将在网址中发送。 您也可以将方法设置为“POST&#39;”,您可以通过POST发送比GET更多的数据,并且它更安全一些(可以在网络服务器上记录网址,包含所有参数,所以不要使用GET登录等)
使用&#39; isset()&#39;你可以检查变量是否存在。
if(isset($_GET['title']))
{
$slug = createSlug($_GET['title']);
// Do something with this...
}
但请确保从正确的方法类型(post或get)中获取输入字段值
<form method="POST" -> if(isset($_POST['title'])){ //... }
<form method="GET" -> if(isset( $_GET['title'])){ //... }
创建一个slug的功能,(也包括开始和结束&#39; - &#39;标志)
<?php
function createSlug($value)
{
$slug = preg_replace('/[^A-Za-z0-9-]+/', '-', $value);
while(strlen($slug) > 0 && substr($slug, 0, 1) == '-') {
$slug = substr($slug, 1);
}
while(strlen($slug) > 0 && substr($slug, -1) == '-') {
$slug = substr($slug, 0, strlen($slug)-1);
}
return strtolower($slug);
}
// Example:
$title = " - My first PAGE Title!!! :)";
$slug = createSlug($title);
echo $slug;
// Output: my-first-page-title