使用php更改url路径,而不使用session_start()或任何其他方法
我在我的网站上运行adsense,并使用php包含文件,其中整个adsense代码被命名为ga1.php、ga2.php、ga3.php和ga4.php。代码中的所有内容都是相同的,除了一个链接颜色,这意味着在每个页面刷新或转到我的网站上的任何其他页面时,都会使用包含新链接颜色的Google Adsense代码的new include。这一切都由以下代码处理:使用php更改url路径,而不使用session_start()或任何其他方法,php,include,include-path,Php,Include,Include Path,我在我的网站上运行adsense,并使用php包含文件,其中整个adsense代码被命名为ga1.php、ga2.php、ga3.php和ga4.php。代码中的所有内容都是相同的,除了一个链接颜色,这意味着在每个页面刷新或转到我的网站上的任何其他页面时,都会使用包含新链接颜色的Google Adsense代码的new include。这一切都由以下代码处理: <?php session_start(); if (isset($_SESSION['cnt'])){$_SESSION['
<?php
session_start();
if (isset($_SESSION['cnt'])){$_SESSION['cnt'] += 1; if( $_SESSION['cnt'] > 4)$_SESSION['cnt'] =1;}
else {$_SESSION['cnt'] = 1;}
include("/var/www/vhosts/MySite.com/httpdocs/includes/ga" . $_SESSION['cnt'] . ".php");
?>
我可以在我的一些页面上设置session\u start()
,在这些页面上需要跟踪会话,但不是在所有页面上,因此,如果存在问题,是否正在寻找解决方案
您的建议对我来说总是很有价值,我非常感激。您可以使用GET命令将数字传递到其他页面。只需将_会话替换为_GET并添加到include的末尾:
include("/var/www/vhosts/MySite.com/httpdocs/includes/ga" . $_GET['cnt'] . ".php?cnt=".$_GET['cnt']);
或者,您可以使用以下命令获取ga后的数字:
$cnt=substr($_SERVER['REQUEST_URI'], -5, 1);
希望这有帮助 这些头的哪一部分是不受欢迎的?您不应该允许诸如include或require之类的函数使用未过滤的用户变量。上面的例子是不安全的。谢谢你的回复,但我不太同意你的观点,我已经尝试用_GET替换所有的会话,但似乎什么都没有发生。是否有机会发送代码,使其更易于理解?您是否能够发送更新后的代码?关于@Martin的观点,你可以使用Pregmatch来确保它是一个数字,例如:对不起,编辑时间用完了,我的意思是:你能发送更新的代码吗?关于@Martin的观点,你可以使用Pregmatch来确保它是一个数字,例如:if(preg_match('/[1-4]/',$GET['cnt']){//continue}我想我已经找到了一个简单的解决方案,可以解决这个问题{}
$cnt=substr($_SERVER['REQUEST_URI'], -5, 1);