I have a simple if statement that works on my local machine but when i uploaded it tom ypaid site i got an error on my home page.
Error:
Warning: include(./pages/.php) [function.include]: failed to open stream: No such file or directory in /home/a5410474/public_html/index.php on line 33
Warning: include() [function.include]: Failed opening './pages/.php' for inclusion (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/a5410474/public_html/index.php on line 33
The Code:
<?php
if (isset($_GET['p']) && $_GET['p'] != NULL || $_GET['p'] != '') {
$p = mysql_real_escape_string($_GET['p']);
}elseif ($_GET['p'] == '' || $_GET['p'] == NULL){
$p = 'home';
}
include("./pages/".$p.".php");
?>
$pvariable to make sure it doesn't include something like../../../../usr/share/php/something. You probably only want letters. An even better approach is to keep an array of valid files that actually exist in./pagesand check the input value against it.