500.shtml
Ah! A programação... é por isso que gosto dela. Uma hora, funciona, então de repente, já não funciona mais.
É emoção o tempo todo :v
O problema dessa vez é o título do post. Já pesquisei e pelo que entendi é um redirecionamento feito .htaccess para erro do tipo 500, porém, a pergunta que não quer calar é, porque agora e do de repentemente?
O erro só acontece ao incluir a página home.php que é a página inicial.
O .htaccess
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]
</IfModule>
A classe que inclui a página
class IncludePage {
private $page;
private $pieceOfUrl;
// Call the methods automatically
public function __construct($pieceOfUrl) {
$this->pieceOfUrl = $pieceOfUrl;
$this->definePage();
$this->includeFile();
}
/**
* <b>checkProduct(): </b>Check if we are look for an ads
*
* @return boolean
*/
private function checkProduct() {
$read = new Read;
$read->ExeRead('table', '*', 'WHERE modelo_tratado = :filter', "filter={$this->pieceOfUrl}");
if($read->getResult()):
$clicks = new RegistryClicks('product', $this->pieceOfUrl);
$clicks->registryClick();
return true;else:
return false;
endif;
}
/**
* <b>checkCategory(): </b>Check if we are look for an category or a search
*
* @return boolean
*/
private function checkCategory() {
$read = new Read;
$read->ExeRead('table', '*', 'WHERE nome_tratado = :filter', "filter={$this->pieceOfUrl}");
if($read->getResult()):
$clicks = new RegistryClicks('category', $this->pieceOfUrl);
$clicks->registryClick();
return true;else:
return false;
endif;
}
/**
* <b>definePage(): </b> Define the value for $this->page
*
* @return string The page to be include
*/
private function definePage() {
if(empty($this->pieceOfUrl)):
$this->page = 'home.php';
elseif(file_exists("pages/{$this->pieceOfUrl}.php")):
$this->page = "{$this->pieceOfUrl}.php";
elseif($this->checkProduct() == true):
$this->page = 'anuncio.php';
elseif($this->checkCategory() == true || $this->pieceOfUrl == 'search'):
$this->page = 'pesquisa.php';else:
$this->page = '404.php';
endif;
}
/**
* <b>includeFile(): </b> Include the page
*
* @return boolean
*/
private function includeFile() {
if(require_once DIR . "pages/{$this->page}"):
return true;else:
return false;
endif;
}
}
E por fim, a chamada de tudo isso na index.php
$sep=explode('/',filter_input(INPUT_GET,'url',FILTER_DEFAULT));
$page = new IncludePage($sep[0]);
Não se espantem com o código, ele funciona. Exceto no trecho que inclui a home.php, que funcionava e agora e agora ele criou essa paixão compulsiva e desconhecida pela página 500.shtml :v
Agradeço muito quem puder ajudar! :)
Discussão (14)
Carregando comentários...