Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mod rewrite突然改变了PHP变量_Php_.htaccess_Mod Rewrite - Fatal编程技术网

Mod rewrite突然改变了PHP变量

Mod rewrite突然改变了PHP变量,php,.htaccess,mod-rewrite,Php,.htaccess,Mod Rewrite,我目前正在开发一个网站,将显示一些产品。我最初从外部XML文件获取这些产品,并将其存储在数据库中,然后从数据库中获取这些产品并将其显示在网站上,从XML到数据库是一个自动化的cronjob过程 这一切都很好,但我想提供一些背景信息 对于本网站,我使用以下规则 RewriteRule ^([^/\.]+)/([^/\.]+)/([^/\.]+)/([^/\.]+)$ index.php?page=product&cat=$1$cat2=$2&cat3=$3&xid=$4 [

我目前正在开发一个网站,将显示一些产品。我最初从外部XML文件获取这些产品,并将其存储在数据库中,然后从数据库中获取这些产品并将其显示在网站上,从XML到数据库是一个自动化的cronjob过程

这一切都很好,但我想提供一些背景信息

对于本网站,我使用以下规则

RewriteRule ^([^/\.]+)/([^/\.]+)/([^/\.]+)/([^/\.]+)$ index.php?page=product&cat=$1$cat2=$2&cat3=$3&xid=$4 [L]
RewriteRule ^([^/\.]+)/([^/\.]+)/([^/\.]+)$ index.php?page=product&cat=$1&cat2=$2&xid=$3 [L]
RewriteRule ^([^/\.]+)/([^/\.]+)$ index.php?page=product&cat=$1&xid=$2 [L]
这几乎在所有情况下都有效,但有一种情况是,一旦某个产品显示出来,xid值就会改变。我花了一段时间才发现这是因为规则。我可以向你保证,这不是因为其他原因,因为当我跳过重写规则,按常规方式去那里时,它就可以正常工作了

我想要这些,这样人们就可以访问.com/Ladies/1或.com/Ladies/pants/4或.com/Ladies/pants/Shorts/2。然而现在奇怪的部分来了

当我创建会话时,如

$_SESSION["pid"] = $mysqli->real_escape_string($_GET["xid"]); 
然后$\u会话[pid]将更改为此新值。如果我创造

$_SESSION["sql"] = "SELECT * FROM somthing WHERE id = " . $mysqli->real_escape_string($_GET["xid"]);
然后它会将其从id=1的某物的SELECT*更改为id=081089000016的某物的SELECT*

每当我使用$$GET[xID],不管它是否在字符串的中间,它都会改变它。

当我执行一个名为php脚本的AJAX时,甚至当我返回主页并返回echo$\u SESSION[pid]时,都会发生这种情况

然而,数字是该产品的EAN编号!!这个EAN号码甚至不在我自己的数据库中。我几乎可以肯定这一点,因为我检查了又检查,它甚至不在描述或其他任何东西中。这就是为什么我知道这一个产品是有缺陷的

有人对这类问题有任何不满吗


我真的没有重写规则,但这个问题对我来说还是很奇怪。它使我相信服务器内存的实际位置被改变了,否则我看不到它在字符串中间使用时的值改变的方式。我已经尝试过重命名它,但这并不能解决它

真的没有时间看代码;然而,有一次我陷入了重写规则的陷阱,那是因为URL被重写了,然后又被重写了。也许你的情况也是这样。也许是这样,但它使用的是我数据库中没有的数据,但仍然是项目,这是项目EAN代码。可能是外部因素触发了重写规则吗?