【问题标题】:Redirecting webpage using URL parameters使用 URL 参数重定向网页
【发布时间】:2015-03-24 01:17:03
【问题描述】:

我正在尝试根据 URL 参数重定向网页。在过去的几天里,我浏览了很多教程和 stackflow 答案,但没有找到解决办法。我不是程序员,但使用 stackflow 学习了我所知道的关于 php 和 html 编码的一切。所以谢谢大家。

www.domain.com/women/product?id=08607080

想重定向到

  www.domain.com/women/Accessories/product?id=08607080

这是我现在使用的代码,但它指向 www.dmail.com/women

请帮忙

<?php
require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/womenconfig.inc.php';
require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/functions.inc.php';

mysql_connect(HOST, USERNAME, PASSWORD) or die(mysql_error());
mysql_select_db(DB) or die(mysql_error());

$ArtNumber = isset($_GET['id'])?$_GET['id']:Null; 

$ArtNumber = isset($_GET['id'])?$_GET['id']:Null; 
$query = "(SELECT * FROM " . implode(' WHERE ArtNumber=\'' . $ArtNumber . '\') UNION (SELECT * FROM ', array_keys($shops_arr)) . '  WHERE ArtNumber=\'' . $ArtNumber . '\' ) ';

$result = mysql_query($query) or die(mysql_error());
$row = mysql_fetch_array($result);


    $ArtNumber  = $row['ArtNumber'] ;
    $ProductCategory1   = $row['ProductCategory1'] ;
    $ProductCategory2   = $row['ProductCategory2'] ;
    $ProductCategory3   = $row['ProductCategory3'] ;



    echo "<script>window.location = ''/women/Accessories'.$ProductCategory1.'/product?id=',$ArtNumber,''</script>";

?>

【问题讨论】:

  • 您可以发布执行脚本时呈现的行window.location = ... 吗?我怀疑不是所有的参数都通过了。
  • 你不应该这样重定向......要么使用propper headers() 函数,要么直接使用你的http服务器的重写模块。
  • echo "";
  • 在 arkascha,我说过我不擅长这些事情

标签: php mysql redirect url-parameters


【解决方案1】:

正如@arkassha 所说,您应该设置正确的 HTTP 标头(位置:url)或使用 Web 服务器功能。这是通过位置标头重定向的示例:

<?php
require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/womenconfig.inc.php';
require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/functions.inc.php';

mysql_connect(HOST, USERNAME, PASSWORD) or die(mysql_error());
mysql_select_db(DB) or die(mysql_error());

$ArtNumber = isset($_GET['id'])?$_GET['id']:Null; 

$ArtNumber = isset($_GET['id'])?$_GET['id']:Null; 
$query = "(SELECT * FROM " . implode(' WHERE ArtNumber=\'' . $ArtNumber .    '\') UNION (SELECT * FROM ', array_keys($shops_arr)) . '  WHERE ArtNumber=\'' .   $ArtNumber . '\' ) ';

$result = mysql_query($query) or die(mysql_error());
$row = mysql_fetch_array($result);


$ArtNumber  = $row['ArtNumber'] ;
$ProductCategory1   = $row['ProductCategory1'] ;
$ProductCategory2   = $row['ProductCategory2'] ;
$ProductCategory3   = $row['ProductCategory3'] ;


header("Location: /women/Accessories/product?id=$ArtNumber");
?>

这里需要注意的一点是,标头必须在任何内容之前发送。

对于 apache,您可以使用重写规则的第二个变体:http://kb.mediatemple.net/questions/85/Using+.htaccess+rewrite+rules#gs

也可以通过您提到的 javascript 重定向,但这不是首选解决方案。

【讨论】:

  • 没有工作得到这个错误PHP Parse error: syntax error, unexpected '='
  • 工作正常,但我可以这样使用 - header("Location: /women/'.$ProductCategory1.'/product?id=$ArtNumber");所以附件词将来自 $ProductCategory1
【解决方案2】:
 window.location.replace(" ''/women/Accessories'<?php echo "{$ProductCategory1}'/product?id={$ArtNumber}'' "; ?>");

请试试这个。

【讨论】:

  • 无法正常工作,出现以下错误 PHP Parse error: syntax error, unexpected '{' in
  • @Prakash 请检查正确的括号
猜你喜欢
  • 2012-08-03
  • 2015-06-16
  • 2016-08-20
  • 1970-01-01
  • 2021-01-02
  • 2017-01-21
  • 2017-04-29
  • 2017-01-25
  • 1970-01-01
相关资源
最近更新 更多