あるページのURLのパラメータを$_GETで取得して、その値を次ページのURLのパラメータに使用する設定にしたいと考え、以下の様に①php内でパラメータの値を$_GETで取得した場合と、②php内でパラメータの値を手入力した場合で試しました。

①、②ともphpのvar_dump($product_id);でhtmlで表示される結果はstring(4) "1434"なのですが、次ページに推移した際に②ではURLのパラメータに値が表示されるのに対して、①は表示されません。

なぜなのでしょうか。①の$_GET['product_id']で取得した値がhtmlではstring(4) "1434"と表示されているものの、②の手入力のものとは違い、実際は空だからなのでしょうか。

次ページに推移し、URLのパラメータを設定するプログラムはこの$product_idを使用いたしますが、②が機能している以上、今回の問題に関係していないので省略致します。

①も②の様に推移先URLのパラメータでproduct_idの値を表示させたいのですが、解決策、打開策などご教授頂けませんでしょうか。

①php内でパラメータの値を$_GETで取得した場合

元のURL
www.example.com/cart/?product_id=1434

phpファイル内

$product_id = $_GET['product_id'];       
var_dump($product_id);

htmlの表示:string(4) "1434"

推移したURL
www.example.com/shopping/?product_id

②php内でパラメータの値を手入力した場合

元のURL
www.example.com/cart/?product_id=1434

phpファイル内

$product_id = '1434';       
var_dump($product_id);

htmlの表示:string(4) "1434"

推移したURL
www.example.com/shopping/?product_id=1434