Php 如果页面没有';不存在显示404

Php 如果页面没有';不存在显示404,php,html,variables,include,Php,Html,Variables,Include,我有一个代码,我正在努力使之生效。请原谅我的无知,我正在努力学习,但我找不到任何特别帮助我的东西 我想做的是: 在我的索引上,显示show_news.php 当使用index.php?page=blank时,显示blank.php 如果选择的页面不存在,我想显示一个自定义404页面。如果使用了blank2.php但不存在,则包括404.php 404页是我正在努力解决的问题 <?php $number = 4; if(!$_GET[page]){ include "show_ne

我有一个代码,我正在努力使之生效。请原谅我的无知,我正在努力学习,但我找不到任何特别帮助我的东西

我想做的是:

在我的索引上,显示show_news.php

当使用
index.php?page=blank
时,显示
blank.php

如果选择的页面不存在,我想显示一个自定义404页面。如果使用了
blank2.php
但不存在,则包括
404.php

404页是我正在努力解决的问题

<?php
$number = 4;
if(!$_GET[page]){ 
    include "show_news.php"; 
} elseif ($_GET[page]) { 
    include $_GET[page].".php"; 
} else { 
    include "404.php"; 
} 
?>

尝试使用file\u exists()函数


我不太明白你的问题。 但我会这样做:

if (isset($_GET['page']))
    include_once(dirname(__FILE__) . '/' . $_GET['page'] . '.php');
else
    include_once(dirname(__FILE__) . '/show_news.php');
然后在.htaccess文件中:

RewriteEngine On
RewriteBase /
ErrorDocument 404 /404.php
编辑:
使用mysqli\u real\u escape\u string将其传递给$\u GET

之前,请使用
中的逻辑。如果
条件没有意义,它将永远不会到达
else
语句。请看,这就是我需要帮助的地方。哈哈。说到这个,我还是个年轻人。它怎么可能不到达其他地方呢?我认为顺序应该是“if,elseif,else”变量不能神奇地检查文件的存在,你需要它。你所做的也是。永远不要相信用户的输入。您可以对照字符串对其进行检查,然后使用指定的字符串在文件系统上执行操作,但在没有对其进行清理的情况下,不要在任何事情上使用用户提供的变量。您的代码允许用户通过传递“page”的正确值(如果您也使用
$\u GET['page']
正确访问超全局值)将任何文件包括在您的文件系统中。我尝试了这一点,但出现了一个错误。“致命错误:函数名必须是第79行/home/**/public_html/news/index.php中的字符串”第79行是
$is_file_existing=$file_exists($project_path.$page..php”)行谷歌搜索显示有一个错误的$,将其从
文件中删除\u exists
将删除错误,但它的工作方式与我的原始代码相同
RewriteEngine On
RewriteBase /
ErrorDocument 404 /404.php