使用全局变量动态更改网址

时间:2016-10-11 18:30:34

标签: php html mysql .htaccess globals

所以这很难解释,

我有一个A文件夹,我有一个B文件夹。我正在为它们使用一个通用数据库。

两个文件夹都有以下文件,每个文件夹中都有=> config.php,index.php,upload.php,control_admin.php,admin.php和view.php。有一些基本的数据库,CSS和JS文件,B与A共享(没有任何问题)。

现在A代表项目A,B代表项目B.

对于每个项目,我有URL => a.example.com& b.example.com

在a.example.com/index.php我上传了一个图像文件,其特征如project_name = Apple Version = 1.

在b.example.com/index.php我上传了一个图像文件,其特征如project_name = Banana Version = 1.

这些图像分别上传到A和B中的图像文件夹。

现在要查看这些图像,我本可以去

a.example.com \ view.php?$ version = 1并且可以看到图片。

同样适用于b.example.com

我在.htaccess中对此进行了修改,以制作一个友好的网址,将我带到

a.example.com \ 1并根据需要显示图片。

现在出现了问题。每个view.php文件都有以下图像链接

<img src = "<?php echo     "http://".$GLOBALS['url']."".$GLOBALS['img_folder']."/".$new ?>" style = 'margin: 0px auto; display:block; max-width: 100%;height: auto;'>

我从每个文件的config.php中获取这些全局变量。

对于A:

<?php $GLOBALS['project_name'] = 'Apple';?>

<?php $GLOBALS['url'] = 'a.example.com/'?>

<?php $GLOBALS["folder"] = 'FolderA'; ?>

<?php $GLOBALS['img_folder'] = 'AppleImages'; ?> 

对于B:

<?php $GLOBALS['project_name'] = 'Banana';?>

<?php $GLOBALS['url'] = 'b.example.com/'?>

<?php $GLOBALS["folder"] = 'FolderB'; ?>

<?php $GLOBALS['img_folder'] = 'BananaImages'; ?> 

现在的问题是,如果我上传A的版本1然后是B的版本1,那么我将转到友情网址链接,该链接来自a.example.com/1或b.example.com/1 ..我在B上传文件后看不到A上的那个。因为URL很难指向B,因为它是最近在同一个数据库中上传的。

如果我上传到a.example.com然后上传到b.example.com,我可以对网址做些什么来确保相同版本的文件...我可以在各自的网址上看到这两个图片

a.example.com/2和b.example.com/2

我希望我有道理。提前谢谢。

https://drive.google.com/drive/folders/0B5nDbj-RhZJMa3drNFlfRzVaLXc?usp=sharing

1 个答案:

答案 0 :(得分:2)

我查看了您提供的google驱动器链接。

view.php:第64行

$project_name_download_form = $_GET['project_name'];

除非您使用以下网址访问view.php:

a.example.com\view.php?version=1&project_name=apple

您的$project_name_download_form将有一个空字符串值,您的SQL查询将变为:

SELECT demo_id, demo_name, demo_version, demo_details, file 
                      FROM demo
                      WHERE  demo_name = ''
                      AND  demo_version = '1'

所以2个动作,将第64行改为:

$project_name_download_form = $GLOBALS['project_name'];

然后直接检查数据库以确保demo_name列中设置了值(而不仅仅是空白)。