php请求变量分配$\u GEt
如果你看一看前面的问题 我正在使用Col.Shrapnel提出的解决方案,但当我将值赋给实际文件中的$\u GET而不是请求时,代码就不起作用了。它默认远离文件,就好像未设置$\u GET变量一样 我想出的代码是-php请求变量分配$\u GEt,php,variables,seo,Php,Variables,Seo,如果你看一看前面的问题 我正在使用Col.Shrapnel提出的解决方案,但当我将值赋给实际文件中的$\u GET而不是请求时,代码就不起作用了。它默认远离文件,就好像未设置$\u GET变量一样 我想出的代码是- if(!empty($_GET['cat'])){ $_GET['target'] = "category"; if(isset($_GET['page'])){ $_GET['pageID'] = $_GET['page']; }
if(!empty($_GET['cat'])){
$_GET['target'] = "category";
if(isset($_GET['page'])){
$_GET['pageID'] = $_GET['page'];
}
$URL_query = "SELECT category_id FROM cats WHERE slug = '".$_GET['cat']."';";
$URL_result = mysql_query($URL_query);
$URL_array = mysql_fetch_array($URL_result);
$_GET['category_id'] = $URL_array['category_id'];
}elseif($_GET['product']){
$_GET['target'] = "product";
$URL_query = "SELECT product_id FROM products WHERE slug = '".$_GET['product']."';";
$URL_result = mysql_query($URL_query);
$URL_array = mysql_fetch_array($URL_result);
print_r($URL_array);
$_GET['product_id'] = $URL_array['product_id'];
我试图表示的原始变量字符串是
/cart.php?Target=product&product_id=16142&category_id=249
我正在尝试用代码构建查询字符串变量,包括cart.php,这样我就可以使用更干净的URL
所以我有一个产品/产品标题,带有干净的url/转到slug.php?product=slug
然后slug在数据库中搜索匹配slug的记录,并返回上面代码中的产品id。然后构建查询字符串并包含cart.php这段代码有很多错误
1,我认为设置这样的变量
是不好的形式。 2看起来好像只有大约6行代码被实际使用$_GET['target'] = "category";
没有使用,还有一堆其他的东西
3您要求在此处注入SQL:
$URL_query = "SELECT category_id FROM cats WHERE slug = '".$_GET['cat']."';";
如果$u GET['cat']是
'';delete * from cats
那么你的问题是
SELECT category_id FROM cats WHERE slug = '';delete * from cats;
你所有的猫都不见了
如果必须使用mysql函数,请使用
至于你的实际问题。什么不起作用?你有错误吗?我们需要更多信息此代码有很多错误
1,我认为设置这样的变量
是不好的形式。 2看起来好像只有大约6行代码被实际使用$_GET['target'] = "category";
没有使用,还有一堆其他的东西
3您要求在此处注入SQL:
$URL_query = "SELECT category_id FROM cats WHERE slug = '".$_GET['cat']."';";
如果$u GET['cat']是
'';delete * from cats
那么你的问题是
SELECT category_id FROM cats WHERE slug = '';delete * from cats;
你所有的猫都不见了
如果必须使用mysql函数,请使用
至于你的实际问题。什么不起作用?你有错误吗?我们需要更多信息。好的,你的代码永远不会工作。鉴于你对
/cart.php?Target=product&product_id=16142&category_id=249
您的$\u GET将按如下方式填充:
$_GET = array(
'Target' => 'product',
'product_id' => 16142,
'category_id' => 249
)
然后使用以下结构:
if(!empty($_GET['cat'])){
... stuff part 1...
}elseif($_GET['product']){
... stuff part 2...
HTTP\u QUERY\u VARS
(已弃用),或$\u服务器['QUERY\u STRING']
或\u$SERVER['REQUEST\u URI']
。它们基本上都包含相同的信息,但在PHP内部单独存储。如果修改$\u GET,然后库从其中一个备用位置检索其自己的查询变量副本,它将获得与您刚才重写的值完全不同的值,因为您只在一个位置重写了它。请记住,这些神奇的数组是在代码执行之前由PHP创建的,然后再也不会被PHP的内部结构所触及。请尝试以下操作:
testscript.php?yo=dude:
<?
echo '<pre>';
echo "Before:\n";
echo "GET yo: ", $_GET['yo'], "\n";
echo "REQUEST yo: ", $_REQUEST['yo'], "\n";
$_GET['yo'] = "haha, it's not the same anymore";
echo "after:\n";
echo "GET yo: ", $_GET['yo'], "\n";
echo "REQUEST yo: ", $_REQUEST['yo'], "\n";
请注意_请求没有使用新值自动更新。现在,您得到了不一致的数据,这可能会完全破坏您的应用程序。好的,您的代码将永远无法工作。鉴于你对
/cart.php?Target=product&product_id=16142&category_id=249
您的$\u GET将按如下方式填充:
$_GET = array(
'Target' => 'product',
'product_id' => 16142,
'category_id' => 249
)
然后使用以下结构:
if(!empty($_GET['cat'])){
... stuff part 1...
}elseif($_GET['product']){
... stuff part 2...
HTTP\u QUERY\u VARS
(已弃用),或$\u服务器['QUERY\u STRING']
或\u$SERVER['REQUEST\u URI']
。它们基本上都包含相同的信息,但在PHP内部单独存储。如果修改$\u GET,然后库从其中一个备用位置检索其自己的查询变量副本,它将获得与您刚才重写的值完全不同的值,因为您只在一个位置重写了它。请记住,这些神奇的数组是在代码执行之前由PHP创建的,然后再也不会被PHP的内部结构所触及。请尝试以下操作:
testscript.php?yo=dude:
<?
echo '<pre>';
echo "Before:\n";
echo "GET yo: ", $_GET['yo'], "\n";
echo "REQUEST yo: ", $_REQUEST['yo'], "\n";
$_GET['yo'] = "haha, it's not the same anymore";
echo "after:\n";
echo "GET yo: ", $_GET['yo'], "\n";
echo "REQUEST yo: ", $_REQUEST['yo'], "\n";
请注意_请求没有使用新值自动更新。现在,您的数据不一致,这可能会完全破坏您的应用程序。您使用什么.htaccess代码来路由slug?我还没有了解到这一点。。仍然在slug.php上使用$\u GET变量进行测试。我被这件事难住了。GET任务在哪里?我在包含的代码中没有看到它。另外,使用print_r和die执行基本调试,以查看预期值是否与实际值匹配。$\u GET['product_id']=$URL_数组['product_id'];是不是要做“获取”任务。。。?我会在问题中添加更多的信息看起来你发现不重写你的slug就不行了什么。你用htaccess代码来路由slug?我还没有做到这一点。。斯蒂尔