Estou tentando aprender PDO com MVC através de aulas no youtube. Estou com um problema no desenvolvimento de um framework quando chamo o parâmetro. Estou debugando o codigo para tentar achar o erro e parece que o paramentro chamado é o anterior.
Quando uso o seguinte link http://localhost/framework_mvc/paginas e debugo aparece o seguinte:
Ate ai tudo certo. Quando uso o seguinte link http://localhost/framework_mvc/paginas/sobre e debugo aparece o seguinte:
object(Rota)#1 (3) { ["controlador":"Rota":private]=> object(Paginas)#2 (0) { } ["metodo":"Rota":private]=> string(5) "sobre" ["parametros":"Rota":private]=> array(1) { [0]=> string(7) "paginas" } }
Quando o que deveria ocorrer era um erro e ser necessário que fosse adicionado mais um parametro na url ficando por exemplo assim: http://localhost/framework_mvc/paginas/sobre/24.
Codigos usados:
Rota.php
<?php
class Rota{
private $controlador = 'Paginas';
private $metodo = 'index';
private $parametros = [];
public function __construct(){
$url = $this->url() ? $this->url() : [0];
if(file_exists('../app/Controllers/'.ucwords($url[0]).'php')):
$this->controlador = ucwords($url[0]);
unset($url[0]);
endif;
require_once '../app/Controllers/'.$this->controlador.'.php';
$this->controlador = new $this->controlador;
if(isset($url[1])):
if(method_exists($this->controlador, $url[1])):
$this->metodo = $url[1];
unset($url[1]);
endif;
endif;
$this->parametros = $url ? array_values($url) : [];
call_user_func_array([$this->controlador,$this->metodo], $this->parametros);
var_dump($this);
}
private function url(){
$url = filter_input(INPUT_GET,'url',FILTER_SANITIZE_URL);
if(isset($url)):
$url = trim(rtrim($url,'/'));
$url = explode('/',$url);
return $url;
endif;
}
}
Paginas.php
<?php
class Paginas{
public function index(){
}
public function sobre($id){
echo $id."<hr/>";
}
}
index.php
<?php
include './../app/Libraries/Rota.php';
?>
<!DOCTYPE html>
<html lang="pt-br">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Frameword de PHP7 - MVC</title>
</head>
<body>
<?php
$rotas = new Rota();
?>
</body>
</html>
A video aula que estou assistindo é essa:
Olá a todos, estou com uma dúvida se alguém puder me ajudar.
Qual seria a melhor forma de filtrar e como filtrar $_SERVER['REQUEST_METHOD']?
Tenho um formulário simples
<form action="deletar/10" method="post">
<input type="submit" class="btn btn-sm btn-danger" value="Deletar">
</form>
Então recebo o id 10, ai como eu poderia validar esse formulário tendo certeza que ele veio pelo método post do meu servidor aplicando esse ou outro filtro ou método mais eficiente?
Exemplo sem sucesso
<?php
public function deletar($id) {
$id = filter_var($id, FILTER_VALIDATE_INT);
$metodo = filter_var($_SERVER['REQUEST_METHOD'], FILTER_DEFAULT);
if(isset($id) && isset($metodo)):
echo 'pode salvar os dados';
endif;
echo '<hr>';
var_dump($id);
echo '<hr>';
var_dump($metodo);
}
?>
Eu consigo acessar o meu site com iptvaiomi.com, mas quando eu coloco o www ele não entra e aparece a mesagem: Erro 503 service Temporarily Unavailable. Como resolver?