0

get メソッドでスラッグ関数を使用しようとしています

入力 name="title" が 1 つのフォームがあり、 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>

前もって感謝します .....

4

3 に答える 3

1

フォームのメソッドが GET の$_GET['submit']代わりに使用します。$_POST['submit']

于 2013-10-12T16:14:46.100 に答える
0

フォーム メソッドを「GET」に設定すると、すべてのパラメータが URL で送信されます。メソッドを「POST」に設定することもできます。POST を介して GET よりも多くのデータを送信できます。これは少し安全です (URL はすべてのパラメーターとともに Web サーバーに記録される可能性があるため、ログインに GET を使用しないでください)。等)

「isset()」を使用すると、変数が存在するかどうかを確認できます。

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'])){ //... }

スラッグを作成する関数 (先頭と末尾の「-」記号も取り除きます)

<?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
于 2014-06-24T20:19:42.773 に答える