亲爱的
我的处境非常迫切:-(
几个月前,我开始学习Javascript,并写了几页关于无效的侄女到本星期五生日的娱乐。单独的页面可以。但是我仍然无法设置php,这让我感到非常震惊。我有两个较早的网站,其php代码运行得很好,因此我曾经将代码从那些网站复制到了我的新index.php。当然,我更改了文件夹的名称和文件的名称。我的两个网站都有菜单和子菜单,我的新网站只有菜单,没有子菜单,但是每个文件都有自己的文件夹。 我迅速将其翻译为英文,并使其简短,但原理是相同的。我尝试过:
<?php
$x = isset($_GET['x']) ? $_GET['x'] : 'hello';
if (isset($x) && preg_match('/^[a-zA-Z0-9_-]+$/', $x)) {
if (file_exists ("../pokus/".$x.".php")) {
include "../pokus/".$x.".php";
} else {
include (__DIR__)."/404.php";
}
}
?>
,但据称文件“在此服务器上找不到”。自然,它们全部都上传到了我的服务器。
我的HTML代码:
<ul>
<li>
<a href="/hello/"<?php echo $x == "hello" ? 'class="choice"' : '';?>>
<img src = "pictures/hello.jpg" width = "320" height = "240">
</a>
</li>
<li>
<a href="/folder1/file1/" <?php echo $x == '../file1' ? 'class="choice"' : '';?>>
<img src = "pictures/pict1-menu.jpg" width = "320" height = "240">
</a>
</li>
<li>
<a href="/folder2/file2/" <?php echo $x == '../file2' ? 'class="choice"' : '';?>>
<img src = "pictures/pict2-menu.jpg" width = "320" height = "240">
</a>
</li>
<li>
<a href="/folder3/file3/" <?php echo $x == '../file3' ? 'class="choice"' : '';?>>
<img src = "pictures/pict3-menu.jpg" width = "320" height = "240">
</a>
</li>
</ul>
在名为pokus的文件夹中,我有index.php和hello.php(=她生日的一些句子)。然后,我内部有子文件夹folder1和file1.php,内部有子文件夹folder2和file2.php等。我被迫使用许多子文件夹,因为每个子文件夹包含许多图片A1.jpg,A2.jpg ... D4.jpg使用JS FOR循环因此无法将它们混合在一起。
我非常惊讶,甚至无法将无法加载的index.php旁边的hello.php文件包含在内。我的Apache说“在此服务器上找不到此文件”。但是文件hello.php随打开index.php立即加载!为什么Apache如此偏执?
以下为现场插图:http://pokus.zlatberry.cz/
任何人都可以投入您的时间来帮助我吗?提前非常感谢!
答案 0 :(得分:0)
我认为问题是您的文件夹名称很好,但是您的链接指向的是hello,而不是hello.php
如果提供php扩展名,它将正确显示文件。
答案 1 :(得分:0)
我在编程时已经意识到的事情:如果它太复杂或太复杂,则意味着必须更改逻辑。我建议您组织混乱,以便更轻松地进行调试。
尝试此文件是否存在:
$filename = "../pokus/".$x.".php";
if (file_exists($filename)) {
include ($filename);
} else {
include (__DIR__)."/404.php";
}
除此之外,请尝试将代码分成小块。很多三元运算符。他们有必要吗?如果您的所有文件都在上述文件夹中,则该程序会向您发送404,因为它不了解您的逻辑。我说的是为了调试,请尝试使用其他逻辑。回到基础。简单性通常效果很好。
示例:
if(isset($_GET['x'])){
$x = $_GET['x'];
}...etc.