Bir websitemde üyeler tanıtım amaçlı kendi websitelerini girebilmektedir. Bu sistemde girilen websitesinin url adresini veritabanında aratıp var olduğunu baktırıyorum ama sadece birebir eşleşmelerde hata sağlıyor.
Örnekle anlatacak olursam
www.a.com sitesi daha önce siteye eklenmiş kişi tekrar bu adresi eklemek istediğinde hata alıyorancak www.a.com/ veya www.a.com// şeklinde türeterek sisteme eklemeye devam edebiliyor.
Bu türetmelerin önüne nasıl geçebilirim nasıl bir işlem yapmalıyım?
Şöyle anlatayım. Site adreslerini girdiği inputa sadece siteadlarını girmelerini uzantı kısmını da siz select box yapın böylelikle // v Örnek: input: Site Adınız : wcaraci Select: Uzantı seçiniz vs vs.
Diğer yöntem ise girilen url yi alıp www kısmını silip nokta (.) ları explode edip site adı ve uzantıyı tesğit edip db ye o şekilde yazmak olacaktır.
Daha basit bir yöntemi varsa da benim şuan aklıma gelmiyor.
FurkanKandemir Mesajınız için teşekkür ederim bu dediğinizi denedim ancak geri dönütler iyi olmadı bir çok kişi sayfalarına index koydukları için asıl sitelerini site.com/panel/ veya /site/ şeklinde kullandıklarını söylediler. El mecbur eski yedeği geri yüklemiştim. Phpde noktayı bulma gibi bir kod var mı eğer onunla buldurabilirsek domaindeki 2 nokta arasını seçip sorgulatabiliriz diye düşündüm
FurkanKandemir şöyle bir kullanım hazırladım çok iyi olmadığım için size de sormak istedim çalışırlığı hakkında
Eklenen sitelerin değişkeni $site şeklinde
$bol= explode('.', $site); $sorgu= $bol[1]; $varmibak= mysql_fetch_object(mysql_query("select * from server where site='$sorgu'")); if($varmibak){ echo'hata! site daha önce eklenmiş.'; }
bu kullanımda ise şu aklıma takıldı önceden eklenmiş sitelerde birebir eşleşme mi arar yoksa sorgulattığımız kelime site urlsi içerisinde var mı yok mu diye arar?
örneğin www.abcd.com sitesi daha önce eklenmiş olsun şimdi ise kişi www.abc.com sitesi eklemeye çalıştığında farklı siteler olmasına rağmen abc içerisinde geçtiği için yine de hata mı verir?
site='$sorgu' burada birebir eşleşme arar. Eğer ki where kısmında like komutunu kullansaydınız o zaman içinde geçen olarak arardı. Bu sorunuzun cevabı sql ile alakalıdır