回答編集履歴

2

引数

2016/02/20 15:21

投稿

chitoku
chitoku

スコア1610

test CHANGED
@@ -14,6 +14,12 @@
14
14
 
15
15
 
16
16
 
17
+ CertaiN さんの補足を受けて修正しました。
18
+
19
+ > `http_build_query`のセパレータはphp.iniの設定に依存するので,第3引数まで省略せず指定するほうがベターです. `http_build_query($params, '', '&')`
20
+
21
+
22
+
17
23
  ```lang-php
18
24
 
19
25
  <?php
@@ -24,8 +30,6 @@
24
30
 
25
31
  ];
26
32
 
27
- header('Location: branch.php?' . http_build_query($params));
33
+ header('Location: branch.php?' . http_build_query($params, '', '&'));
28
34
 
29
35
  ```
30
-
31
-

1

補足

2016/02/20 15:21

投稿

chitoku
chitoku

スコア1610

test CHANGED
@@ -1 +1,31 @@
1
1
  POST で渡してください
2
+
3
+
4
+
5
+ ----- 補足 -----
6
+
7
+ header によるブラウザー側でのリダイレクトで実現しているのですね(質問時に提示していただくとよかったと思います!)
8
+
9
+ さて、POST のリダイレクトを行うことはできないので、この場合 GET で渡すしかないですがパラメーターに対して URL エンコードが必要です。
10
+
11
+ PHP には URL エンコードしてクエリ文字列を組み立てる関数が存在するので、改行がなくても GET の際は常にそれを使いましょう。
12
+
13
+ コードは次のようになります。
14
+
15
+
16
+
17
+ ```lang-php
18
+
19
+ <?php
20
+
21
+ $params = [
22
+
23
+ 'description' => $description,
24
+
25
+ ];
26
+
27
+ header('Location: branch.php?' . http_build_query($params));
28
+
29
+ ```
30
+
31
+