2016-10-11 32 views
0

所以这将是很难解释,使用全局变量动态更改网址

我有一个文件夹,我有一个B文件夹。我正在为他们使用一个共同的数据库。

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

现在A是用于项目A和B是用于每个项目的项目B.

,我有网址=> a.example.com & b.example.com

在一个。 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?$版= 1,能看到的照片。

同样,对于b.example.com

我已经在.htaccess修改此做一个友好的URL这需要我

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。

为:

<?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'; ?> 

现在的问题是,如果我上传的版本1,然后B第1版,然后我去了链接,是来自a.example.com/1或b.example.com/1的友好网址...我在B上传文件后无法看到A上的文件。因为网址很难指向B,因为它是最近的上传到同一个数据库。

如何上传到a.example.com,然后上传到b.example.com,使用相同版本的文件,我可以对URL做些什么......我可以在各自的URL上看到这两个图像

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

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

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

+0

什么是图像链接中的$ new? – Luke

+0

@RyanVincent upload_id是自动生成的还是我们有没有输入? – siddparkar

+0

你将不得不生成它。但是这种解决方案对于许多上传来说是难以管理的。您的解决方案可能是类似的思路 - 但在存储上载信息的表格中添加一列,并将项目名称存储在每个上载记录中,以便您可以使用版本号和项目名称查找正确的文件名。但是,如果不告诉我们'$ new'是什么以及它来自哪里,很难说它为什么失败。 – Luke

回答

1

我通过你提供的谷歌驱动器链接看了。

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列已被设置值,它(不只是空白)。

+0

谢谢你,这是正确的解决方案! – siddparkar