通过GET方法将值传递给php函数参数

时间:2013-10-12 15:59:46

标签: php function url-rewriting

我正在尝试使用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>

提前致谢.....

3 个答案:

答案 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