İyinet'e Hoşgeldiniz!

Türkiye'nin En Eski Webmaster Forum'una Hemen Kayıt Olun!

Kayıt Ol!

Get Methodu Kullanımı!

zodiac90

0
İyinet Üyesi
Katılım
18 Şubat 2013
Mesajlar
6
Reaction score
0
Merhaba.

Php'de pek bilgim olduğu söylenemez ama basit bir veri tabanı, ve istediğim verileri site üzerinde göstermeyi yaptım. Sitede gösterdiğim verilere açılmasını istediğim farklı bir sayfanın linkini verdim. Ancak o sayfa içerisinde basılan yazıya göre değişim olmasını istiyorum.

Yani örneğin bir kanalın adı, kanalın linkinin bulunduğu bi veritabanı için diyelim. Sitede kanal çıktığında kanal.php dosyasına aktaracak ve orada verdiğim iframe içinde url kısmına o basılan kanalın url si gönderilecek.

Anlatabildim mi bilmiyorum ama yardımcı olabiliseniz sevinirim.

Get methoduyla yapılıyor diye biliyorum ama hep form ile kulanılmış örneklerde, o yüzden bulamadım yolunu.
 

silverking

0
İyinet Üyesi
Katılım
30 Eylül 2010
Mesajlar
128
Reaction score
2
İsteğinizi tam anlayamasamda biraz yardımcı olmak için anladığım kadarıyla yardım edeyim.

İlk önce kanal sayfasına gidildiğinde url satırında kanal adresi geçmesi gibi bir isteğiniz olmuş gailba.

Örnek: site.com/kanald.html

Tarzı bir url yapısı olsun istiyorsanız linklerinizi bu şekilde verip gelen istekleri ise .htaccess ile karşılamanız yeterli olucaktır. Şu anda bu iş için iki seçeneğiniz var. Birincisi "php costum url" ki bu ileri seviye bir tekniktir. İkinci seçenek olarak ise başında dediğim gibi ".htaccess" tekniği.

Şimdi .htaccess ile gelen istekleri nasıl kanal.php' ye yönlendireceğinize bir örnek ile bakalım;

Options +FollowSymlinks
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*).html$ kanal.php?kanal=$1 [L,NC]

Yukaradaki yapıyı .htaccess dosyanıza kaydedip sitenizin bulunduğu sunucuya atmanız durumunda yukarıdaki site url'sinde verdiğim gibi bir url yapısına sahip olacaksınız. Bu yapıda belirtmek istediğim iki nokta var.

Kırmızı ile işaretlenmiş olan "(.*).html" bu kısım GET olarak url yapısını nasıl kabul ettiğinizi belirtir. Yani örnek vericek olursak;

(.*).html = (istediğin şey).html => kanald.html, showtv.html, atv.html gibi

Gelelim mavi ile işaretli olan "kanal.php?kanal=$1" bu kısıma bu kısımda sayfadaki url yapısı örnek olarak site.com/kanald.html olduğunda size GET ile kanald değerini gönderir. Yani (.*).html kısmında ki (.*) olan yere ne yazıldıysa onu gönderir. Eğer showtv.html ise url showtv gönderir.

Buraya kadar olan kısımları adım adım uygularsanız istediğiniz url yapısını elde edersiniz. .htaccess hakkında eğer fazla bilgi sahibi değilseniz aşağıdaki kaynaklardan bilgi edinebilirsiniz;

http://forum.iyinet.com/apache-htaccess-mod_rewrite/138504-htaccess-ile-sef-url-yapimi.html
httpd.apache.org/docs/2.2/howto/htaccess.html (ingilizce)
htaccess-guide.com (ingilizce)

Bundan sonraki adımlarda yapmak istediğiniz size kalmış. Kanal.php de kanalın bilgilerini listelemek için;

$_GET['kanal']; şeklinde kanal adını aldırabilirsiniz.

GET ile gelen kanal adını aldıktan sonra kanal adı ile veritabanında arama yaptırarak ilgi kanalın bilgilerini ufak bir kod ile çektirebilirsiniz.

İyi günler.
 

zodiac90

0
İyinet Üyesi
Katılım
18 Şubat 2013
Mesajlar
6
Reaction score
0
Öncelikle cevabınız için gerçekten çok teşekkür ederim. Kendi yazdığımı okuduğum da ben de sorunumu tam olarak açıklayamadığımı farkettim aslında evet. :) Ama siz kanal için farklı html linklerine göndermeyi, ordan da bilgileri çekip kanal.phpye yönlendirmeyi söylemişsiniz gibi. Ya da tam anlayamadım.

Şöyle diyeyim, ben kanalı ve kanılın linkini yönetim panelinden ekliyorum. Daha sonra sitenin anasayfasında eklediğim kanalları listeliyorum.
<img class="bayrak bayrak-<?=$row['ulke'] ?>" src="..." /><a href="kanal.php"> <?PHP echo $row['kanal']; ?></a> şeklinde.

şimdi listedeki tüm kanalların linki kanal.php oldu. kanal.php dosyasında da iframe ile yayını eklemek istiyorum. Ama basılan kanala göre iframe kodunun içindeki yayın linki yerine, o kanalın yayın linkinin gelmesini istiyorum.
<iframe allowtransparency="true" src="KANALIN YAYIN LİNKİ" frameborder="0" style="width:100%; height:410px; border:none;" scrolling="no">

Yani tek problemim basılan kanalın hangi kanal olduğunu bir sonraki sayfaya bildirebilmek ama beceremiyorum.

Teşekkürler, ilginiz için.
 

silverking

0
İyinet Üyesi
Katılım
30 Eylül 2010
Mesajlar
128
Reaction score
2
Tekrar iyi günler. Konunuzu tam olarak anladım gailba. Öncelikle kanal.php dosyasında tüm kanalları listeleyeceksiniz ve sabit bir iframe'niz olacak kanalları canlı izletmek için yanılmıyorsam. Bunun için js kullanmanız yeterli olacaktır. Basit bir js kodu yazdım bunu kabaca size açıklayım.

Kod:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Kanal Değiştirme Örneği</title>
<script type="text/javascript">
function iframe_change (kanal) 
{
document.getElementById('kanalizle').src = kanal;
}
</script>
</head>
<body>
<iframe id="kanalizle" src="about:blank" width="400" height="400" frameborder="0" scrolling="no"></iframe>
<a href="#" onclick="iframe_change('kanald.html');">kanald</a>
<a href="#" onclick="iframe_change('showtv.html');">showtv</a>
<a href="#" onclick="iframe_change('atv.html');">atv</a>
</body>
</html>

Üst taraftaki kodları bir html veya php dosyası oalrak farklı kaydedip çalıştırırsanız işleyişini anlayacaksınız. Fakat ben biraz detaya gireyim kafanızda karışıklık olmasın.

<script type="text/javascript">
function iframe_change (kanal)
{
document.getElementById('kanalizle').src = kanal;
}
</script>

Bu js kodunda sizin belirlemiş olduğunuz id'li iframenin src yani uzantı adresini değiştiriyoruz. Yuakrıda kırmızı ve kalın punto ile belirttiğim yere iframe id'nizi yazıyorsunuz ben kanalizle yazdım ve şöyle bir şekilde kullandım;

<iframe id="kanalizle" src="about:blank" width="400" height="400" frameborder="0" scrolling="no"></iframe>

Yuakrdaki gibi iframizi hazırladıktan sonra iframeyi tetiklemek için js kodunu kanal linklerimizde kullanıyoruz;

<a href="#" onclick="iframe_change('showtv.html');">showtv</a>

Bu link yapısında gördüğünüz gibi yukarda yazdığımız iframe_change adlı fonksiyonu linke tıklanması durumunda çağırıyoruz. iframe_change fonksiyonun içinde tırnakla belirttiğimiz kısma ise hangi kanalı canlı izletmek istiyorsak canlı izleme sayfasının adresini yazıyoruz.

Tüm yapmanız gereken bu kadar. Yukardaki kod satırı çalıştırıp test ettim sizde eğer bir kere çalıştırırsanız çalışma mantığını daha iyi anlarsınız diye düşünüyorum.

İyi günler. kolay gelsin, gün içinde yer yer forumda olacağım takıldığınız nokta olursa çekinmeden yazabilrisiniz.
 

zodiac90

0
İyinet Üyesi
Katılım
18 Şubat 2013
Mesajlar
6
Reaction score
0
Dediğinizi tam olarak anladım ama şöyle bir problem var. Ben her kanal için ayrı ayrı html sayfası oluşturmuyorum. Yani mesela youtube videosu eklemek istediğimde de onun için de ayrıca sayfalar oluşturmak sıkıntı yaratır. Yani sadece sabit kanallar olursa dediğiniz olur gibi. Ancak dediğim gibi veritabanından kanalları listeledim. Hepsinin linki kanal.php ve bu kanal.php içindeki iframe'in src kısmındaki linkin değişmesini istiyorum. Kanallar için ayrı ayrı html sayfası olmadan yani. :/

Gerçekten size zahmet veriyorum kusura bakmayın. :(
 

silverking

0
İyinet Üyesi
Katılım
30 Eylül 2010
Mesajlar
128
Reaction score
2
Demek istediğinizi anladım fakar bu kod ile zaten istediğinizi yapabilirsiniz. Her kanal için ayrı sayfa kullanmanıza gerek yok. Videoyu listelemek için kullandığınız sayfayı js fonksiyonu linki içinde verebilirsiniz. Yani benim fonksiyon içnie yazdığım showtv.html .htaccess ile zaten izle.php?id=showtv sayfasına get yapıyor karşılık değeri olarak. Siz istediğiniz şekil js fonksiyonu içinde iframe içine sayfa çağırabilirsiniz yani tek tek sayfa oluşturmanıza gerek yok.

Örnek;

<a href="#" onclick="iframe_change('izle.php?id=showtv');">showtv</a>

Yani isterseniz bu şekil kullanırsınız izle.php'de de showtv yayınını db den çektirirsiniz. Başta belirttiğim gibi zaten tek bir sayfa ile yapıcaksınız bunu.

<a href="#" onclick="iframe_change('showtv.html');">showtv</a>

Bu şekil de kullanabilrisiniz. Bu sadece sef yapısı olarak değiştirilmiş url.

Yani .htaccess dosyasındaki şu kod satırı RewriteRule ^(.*).html$ izle.php?id=$1 [L,NC] size showtv.html yazıldığında izle.php?id=showtv sayfasının içeriğini verir. Anlıyacağınız istediğiniz şekilde size belirttiğim js fonksiyonunu kullanabilirsiniz. İyi akşamlar.
 

tahsindemirkan

Mikro Yazılım Bayi
İyinet Üyesi
Onaylı Üye
Katılım
24 Aralık 2011
Mesajlar
148
Reaction score
1
Konum
İstanbul
adres: kanal.php?kanalid=x
"x" veritabanında kanala ait id olsun
linklere "x" yerine kanallara ait idleri yazalım.

$_GET['kanalid']; //bu kod ile "x"i çekersin.

veriyi çekerken where id="x" şartını vereceksin. // ör: $id=$_GET['kanalid']; ----- where id=$id ----- gibi...
veritabanındaki x nolu id nin satırında kanalın linkini çekeceksin.
mysql_fetch_assoc komutunu kullanarak while ile döngü yapmadan tek bir veriyi çekebilirsin.

--------------------------------------------------------------------------------------------------
ör:
$id=$_GET['kanalid'];
$veri=mysql_fetch_assoc(mysql_query(select * from kanallar where id=$id));
echo $veri['kanalkodu'];
gibi
--------------------------------------------------------------------------------------------------
özelden sorarsan da yardımcı olabilirim.
 

Türkiye’nin ilk webmaster forum sitesi iyinet.com'da forum üyeleri tarafından yapılan tüm paylaşımlardan; Türk Ceza Kanunu’nun 20. Maddesinin, 5651 Sayılı Kanununun 4. maddesinin 2. fıkrasına göre, paylaşım yapan üyeler sorumludur.

Backlink ve Tanıtım Yazısı için iletişime geçmek için Skype Adresimiz: .cid.1580508955483fe5

Üst