Teşekkür ederim. .htaccess dosyası kullanınca sorun düzeldi.
ebykdrms teşekkür ederim.
ebykdrms evet dediğiniz gibi bir mvc yapısı kuruluyor.
İlerleyen derslere baktığımda ingilizce olduğu için anlayamadım. Türkçe altyazıya da çevrilmiyor.
İndirdiğim kaynak dosyalarında dosyaların uzantısı değiştirilmemiş, halen html olarak duruyor.
İnceleyip bana mantığını anlatabilir misiniz? Html dosyaları views klasörlerinde bulunuyor.
gokcin bilgisayarımdaki tüm dosyalarda değil.
Sadece bazı proje klasörlerinde. Örneğin sınav adında bir projem var. Tüm dosyalar etkilenmiş. Resimler bile açılmıyor.
Örnek olarak sınav projesini paylaşıyorum.
İndir
tayfunerbilen, ebykdrms, gokcin teşekkür ederim.
gokcin hocam url bir fonksiyon üzerinden geliyor.
Tam kodum şu şekilde.
<?php
$route = 0;
function parseUrl()
{
$dirname = dirname($_SERVER['SCRIPT_NAME']);
$dirname = $dirname != '/' ? $dirname : null;
$basename = basename($_SERVER['SCRIPT_NAME']);
$request_uri = str_replace([$dirname, $basename], null, $_SERVER['REQUEST_URI']);
return $request_uri;
}
function run($url, $callback, $methods = 'get')
{
$methods = explode('|', strtoupper($methods));
if (in_array($_SERVER['REQUEST_METHOD'], $methods))
{
$patterns = [
'{url}' => '([0-9a-zA-Z]+)',
'{id}' => '([0-9]+)'
];
$url = $url ? str_replace(array_keys($patterns), array_values($patterns), $url) : "";
$request_uri = parseUrl();
if (preg_match('@^' . $url . '$@', $request_uri, $parameters))
{
unset($parameters[0]);
global $route;
$route += 1;
if (is_callable($callback)){
call_user_func_array($callback, $parameters);
} else {
$explode = explode('@', $callback); // $callback'i controller ve method olacak şekilde parçala.
$controller = explode('/', $explode[0]); // controller klasöründe bulunan klasör içerisindeki dosya ismini alabilmek için parçala
$controller = end($controller); // Dosya ismini al
$method = $explode[1]; // Method ismi
$controllerFile = CONTROLLERS_DIR . strtolower($explode[0]) . '.php';
if (file_exists($controllerFile)) {
require $controllerFile;
controller($controller, $method, $parameters);
}else{
echo $controller." dosyası bulunamadı!";
}
}
}
}
}
function notfound()
{
global $route;
if($route == 0)
{
header('Location: '.URL.'/404');
}
}
Örnek run fonksiyonu kullanımı
run("/blog/goster/{id}","blog@tek_blog");
@ebykdrms aşağıdaki hatayı alıyorum hocam.
showVar($duzenlenmisYorumlar);
GÜNCELLEME
Aşağıdaki alanları gösterdiğim şekilde değiştirdiğimde hatalar kayboldu.
Herhangi bir yanlışlık var mı?
ana_yorum
// Bu kısmı
<a href="#" class="mt-2" data-ust-yorum-id="<?= $data['yorum_id'] ?>">Cevapla</a>
// Bu şekilde değiştirdim.
<a href="#" class="mt-2" data-ust-yorum-id="<?= $data['yorum']['yorum_id'] ?>">Cevapla</a>
cevap_yorum
// Bu kısmı
<a href="#" class="mt-2" data-ust-yorum-id="<?= $data['yorum_id'] ?>">Cevapla</a>
// Bu şekilde değiştirdim.
<a href="#" class="mt-2" data-ust-yorum-id="<?= $altYorum['yorum_id'] ?>">Cevapla</a>