重定向到URL查询字符串

时间:2016-04-23 01:20:16

标签: php

我正在尝试将网页重定向到:

product_page.php rest_id = $ rest_id&安培;面积= $ rest_city

例如:

product_page.php rest_id = 3&安培;面积=恩菲尔德

此页面正在重定向到:

http://localhost/PhpProject2/product_page.php?rest_id=&area=

即使我已经指定:

  if (isset($_GET['rest_id'])){
  $rest_id = mysqli_real_escape_string($dbc,$_GET['rest_id']); 
  }
  if (isset($_GET['area'])){
  $area = mysqli_real_escape_string($dbc,$_GET['area']); 
  }
  if (isset($_GET['add_item'])) {
  (int)$_GET['add_item']]){
   $_SESSION['Shopping_cart_' . (int) $_GET['add_item']]+='1';

  //redirect
  echo"<script>window.open('product_page.php?rest_id=$rest_id&area=$rest_city','_self')</script>"; //header does not work
 }

如何让回声重新指向正确的页面。

我尝试了什么:

  • 同时调用add_item,rest_id和rest_city属于if资产。
  • 在echo之后移动$ _GET rest_id和rest_city结束标记。

以上两个选项只是阻止页面重新指向所有这些,这是我第一次这样做,任何建议或提示将不胜感激。

2 个答案:

答案 0 :(得分:0)

您的代码中存在许多语法错误。此外,您回显字符串的方式是错误的。您需要使用PHP连接运算符将变量与字符串连接起来,否则使用双引号。

下面修正了你的错误:

if (isset($_GET['rest_id'])){
    $rest_id = mysqli_real_escape_string($dbc,$_GET['rest_id']); 
}

if (isset($_GET['area'])){
    $area = mysqli_real_escape_string($dbc,$_GET['area']); 
}

if (isset($_GET['add_item'])) {

$_SESSION['Shopping_cart_'] = (int) $_GET['add_item']+='1';

    echo"<script>window.open('product_page.php?rest_id=" . $rest_id . "&area=" . $rest_city . "','_self')</script>";
}

答案 1 :(得分:0)

你应该使用双qotes [“string $ variable string”]让变量在字符串内工作,否则你应该将字符串与[]连接起来。]签署。

echo"<script>window.open('product_page.php?rest_id=$rest_id&area=$rest_city','_self')</script>"; 

由于单个qoute [']这不起作用
此致