• 02-02-2020, 20:01:35
    #1
    Arkadaşlar merhaba,

    Laravel öncesinde daha iyi kavramak açısından MVC eğitimi aldım internet üzerinden. Aşağıdaki kısımda bir sorun yaşıyorum, çeşitli varyasyonlar denesem de aşmayı başaramadım.


    $pathCheck=preg_match("@^{$link}$@","$this->nowPath",$params);
    print_r($params);
    Şimdi $this->nowPath kısmı girilen url'yi takip ediyor.$link kısmı da bizim tarayıcıya girdiğimiz url.
    Örneğin; proje/index.php şeklinde girince $params; Array 1 sonucunu veriyor, hatalı url girilirse proje/test.php gibi, o zaman Array 0 döndürüyor. Kursta bu şekilde çalışıyor
    Ama bende çalışmıyor. Her şekilde Array boş dönüyor. preg_match içerisindeki şu kısımda bir problem olduğunu düşünüyorum: "@^{$link}$@"
    Localhost üzerinden çalışıyorum PHP Versiyon 7.3

    Fikri olan?
  • 02-02-2020, 20:03:53
    #2
    İlgili kod bloğuna yakın satırları eğer yazabilirseniz veya ekran görüntüsü yollayabilirsiniz, yardımcı olalım.
  • 02-02-2020, 20:08:29
    #3
    G3da adlı üyeden alıntı: mesajı görüntüle
    İlgili kod bloğuna yakın satırları eğer yazabilirseniz veya ekran görüntüsü yollayabilirsiniz, yardımcı olalım.
    İlginiz için teşekkür ederim. Tabii, açmaya çalışayım.
    getAction metodunun çalıştığı route.php;
    <?php
    App::getAction('/index','/default/index',false);
    ?>
  • 02-02-2020, 20:08:49
    #4
    Üyeliği durduruldu
    @^{$link}$@ değilde @^{$link}$@si olarak dener misiniz sonundaki 'si' kısmını ekleyerek.
  • 02-02-2020, 20:12:56
    #5
    Larus adlı üyeden alıntı: mesajı görüntüle
    @^{$link}$@ değilde @^{$link}$@si olarak dener misiniz sonundaki 'si' kısmını ekleyerek.
    Maalesef sonuç vermedi yine,
    Array ( ) Array ( ) Array ( ) Array ( ) Array ( ) şeklinde boş döndürüyor.

    Bir üstteki mesajımda ekran görüntüsü de ekledim daha iyi fikir vermesi açısından. Kullandığım editör PHP Storm, ^ ve $ işaretlerini turuncu renkte işaretliyor. Bu o kısımda bir sorun olduğu anlamına geliyor olabilir mi? Normalde Sublime Text kullanıyordum, php storm'a yeni geçtim de.
  • 02-02-2020, 20:14:51
    #6
    Üyeliği durduruldu
    $işaretini kaldırıp benim dediğim şekilde dener misiniz ?
  • 02-02-2020, 20:38:13
    #7
    Larus adlı üyeden alıntı: mesajı görüntüle
    $işaretini kaldırıp benim dediğim şekilde dener misiniz ?
    Bu şekilde yapınca 0 döndürdü evet. Sanırım link yapımdan kaynaklı başka bir sorun var gailiba. Yeni baştan inceliyorum. Yardımınız için teşekkür ederim.
  • 02-02-2020, 20:46:12
    #8
    Şuan kod yazıp gönderemediğimi farkettim.
    Kod bloğunu injection olarak algılıyor Cloudflare uyarı veriyor.

    $pathCheck = ($link == str_replace('.php', '', substr($this->nowPath, strlen('/proje'
    //preg_match olmadan direk böylede uygulayabilirsiniz.

    değişken 4 parantez ile kapanacak gülemiyorum bile şuan



    En son $link ve $this->nowPath yerini değiştirdim. Test eder misiniz.
  • 02-02-2020, 21:03:18
    #9
    G3da adlı üyeden alıntı: mesajı görüntüle
    Şuan kod yazıp gönderemediğimi farkettim.
    Kod bloğunu injection olarak algılıyor Cloudflare uyarı veriyor.

    $pathCheck = ($link == str_replace('.php', '', substr($this->nowPath, strlen('/proje'
    //preg_match olmadan direk böylede uygulayabilirsiniz.

    değişken 4 parantez ile kapanacak gülemiyorum bile şuan




    En son $link ve $this->nowPath yerini değiştirdim. Test eder misiniz.
    Hocam str replace işlemine sanırım gerek yok. Zaten htaccess yapısı mevcut.

    İlk foreach döngüsünde ekrana yazdırınca şöyle döndürüyor:
    GET
    /index
    /emvc/default/index


    EDİT:

    Sorun çözüldü arkadaşlar. Kodlarda değil dizinle alakalı bir problemdi sanırım.

    Hoca AppServ içerisinde www klasörü içerisindeki proje dosyasını hosta müdahale ederek çalıştırmıştı. Yani tarayıcıya direk http://dosyadi şeklinde yazınca giriyordu.
    Öyle yapınca localhost'a erişimi kaybettim. Bende www klasörünü komple host gibi davranmasını sağlamıştım. Nasılsa benimde proje dosyalarım www altında diye.

    Ama o zaman sayfada dizinler sanırım değişiyor. Hocada proje/index diye sayfa açılrıken bende/proje/index gibi açılıyordu. Başı yanlış yazmış olabilirim ama tam aynı değildi yani.

    Kafayı yedirtti yahu.

    Yardımcı olan @G3da ve @Larus arkadaşlar çok teşekkür ederim.