lostyazilim
tr.link

Php Get Fonksiyonuyla ilgili Sorun

16 Mesajlar 2.054 Okunma
acebozum
tr.link

alfacan alfacan WM Aracı Kullanıcı
  • Üyelik 01.09.2017
  • Yaş/Cinsiyet 26 / E
  • Meslek Öğrenci
  • Konum Ankara
  • Ad Soyad A** C**
  • Mesajlar 15
  • Beğeniler 7 / 4
  • Ticaret 0, (%0)
Merhaba sevgili dostlar,
Öncelikle bayramınızı kutlar, karantina dönemi için sabır dilerim.

Bu sıkıcı günlerde php ve mysql kullanarak bir projeye başladım. Ancak uzun zamandır bu işlerle uğraşmadığım için unutmuşum ve bir sorun yaşadım. Yardımcı olursanız çok mutlu olurum. Şimdiden teşekkür ederim.

Öncelikle projemden bahsedeyim: Veritabanına sözler kaydediyorum ve bu sözlere MG1pI şeklinde birer id veriyorum ve bununla GET metodunu kullanarak her söze ait birer sayfa oluşturuyorum. index.php?s=MG1pI şeklinde...

localhost/proje/index.php şeklinde siteye ilk girildiğinde (yani $_GET['s'] boşsa) random olarak veritabanından bir yazı seçip ona yönlendiriyor.

Her sözün sayfası şu şekilde:



"Linki kopyala" butonuna tıkladığınızda yukarıda gördüğünüz sözün üstündeki "http://localhost/beyin/index.php?=VmQy7" şeklindeki link kopyalanıyor.

Sorun tam olarak da burada başlıyor. Kopyalanan link tarayıcıda yeni bir sayfa açıp ona yapıştırıp kopyalanan sayfaya gittiğimde link değişiyor ve başka id'li bir sayfaya gidiyor.

Örneğin:
"http://localhost/beyin/index.php?=MYOS6" linkini kopyalıyorum. Tarayıcıda yeni bir sayfa açıp bu linki yapıştırıp gidiyorum. Bu sayfa açılıyor ama yüklenirken değişip "http://localhost/beyin/index.php?s=mYyG9" şeklinde veritabanından rastgele başka bir id çekip açıyor.

Daha iyi anlatabilmek adına kısa bir video ile gösteriyorum:

Yukarıda gördüğünüz gibi şu linki açıyorum: "http://localhost/beyin/index.php?=yTtKo" (ama neden index.php?s= yok anlamadım?)
Ancak açılan sayfa bu oluyor: http://localhost/beyin/index.php?s=NUI1f

Bu konuda yardımcı olursanız çok mutlu olurum.
Sayfanın kodları:

if(empty($_GET['s'])){
$goster = mysql_query("select * from sozler group by rand() limit 1");

while($row = mysql_fetch_array($goster)){
@$idyaz = $row["id"];
@$soz_idyaz = $row["soz_id"];
@$sozyaz = $row["soz"];
@$soyleyenyaz = $row["soyleyen"];
header("Location: index.php?s=$soz_idyaz");
echo '


'.$sozyaz.'
-'.$soyleyenyaz.'



';
}
}
else{
$s = $_GET['s'];
$goster = mysql_query("select * from sozler WHERE soz_id='$s'");
while($row = mysql_fetch_array($goster)){
@$idyaz = $row["id"];
@$soz_idyaz = $row["soz_id"];
@$sozyaz = $row["soz"];
@$soyleyenyaz = $row["soyleyen"];

echo '

'.$sozyaz.'
-'.$soyleyenyaz.'



';
}
}
 

 

elektronikssl
webimgo

v4r1able v4r1able Coder Kullanıcı
  • Üyelik 04.04.2020
  • Yaş/Cinsiyet 19 / E
  • Meslek Kodlama
  • Konum İstanbul Avrupa
  • Ad Soyad L** P**
  • Mesajlar 160
  • Beğeniler 45 / 57
  • Ticaret 1, (%100)
Sorun tam olarak şurada olabilir http://localhost/beyin/index.php?= '.$soz_idyaz.' yerine http://localhost/beyin/index.php?s= '.$soz_idyaz.'

get belirtmemişsin ?= yerine ?s= yazdım
alfacan

kişi bu mesajı beğendi.

v4r1able v4r1able Coder Kullanıcı
  • Üyelik 04.04.2020
  • Yaş/Cinsiyet 19 / E
  • Meslek Kodlama
  • Konum İstanbul Avrupa
  • Ad Soyad L** P**
  • Mesajlar 160
  • Beğeniler 45 / 57
  • Ticaret 1, (%100)

v4r1able adlı üyeden alıntı

Sorun tam olarak şurada olabilir http://localhost/beyin/index.php?= '.$soz_idyaz.' yerine http://localhost/beyin/index.php?s= '.$soz_idyaz.'

get belirtmemişsin ?= yerine ?s= yazdım


Aynen çok yüksek ihtimal sorun bu sadece ?= yerine ?s= yazacaksın ki $_GET["s"] olarak devreye girsin ?= yazınca sayfada get belirtilmediği için yine random bir get oluşturuyor sana.
alfacan

kişi bu mesajı beğendi.

v4r1able v4r1able Coder Kullanıcı
  • Üyelik 04.04.2020
  • Yaş/Cinsiyet 19 / E
  • Meslek Kodlama
  • Konum İstanbul Avrupa
  • Ad Soyad L** P**
  • Mesajlar 160
  • Beğeniler 45 / 57
  • Ticaret 1, (%100)
Düzeltilmiş şekilde ;

if(empty($_GET['s'])){
$goster = mysql_query("select * from sozler group by rand() limit 1");

while($row = mysql_fetch_array($goster)){
@$idyaz = $row["id"];
@$soz_idyaz = $row["soz_id"];
@$sozyaz = $row["soz"];
@$soyleyenyaz = $row["soyleyen"];
header("Location: index.php?s=$soz_idyaz");
echo '


'.$sozyaz.'
-'.$soyleyenyaz.'



';
}
}
else{
$s = $_GET['s'];
$goster = mysql_query("select * from sozler WHERE soz_id='$s'");
while($row = mysql_fetch_array($goster)){
@$idyaz = $row["id"];
@$soz_idyaz = $row["soz_id"];
@$sozyaz = $row["soz"];
@$soyleyenyaz = $row["soyleyen"];

echo '

'.$sozyaz.'
-'.$soyleyenyaz.'



';
}
}
alfacan

kişi bu mesajı beğendi.

wmaraci
wmaraci

alfacan alfacan WM Aracı Kullanıcı
  • Üyelik 01.09.2017
  • Yaş/Cinsiyet 26 / E
  • Meslek Öğrenci
  • Konum Ankara
  • Ad Soyad A** C**
  • Mesajlar 15
  • Beğeniler 7 / 4
  • Ticaret 0, (%0)
Sağ olun dostlar, sorun buymuş. Bu kadar basit bir nedenden sorun yaşayacak kadar unutmuş olabileceğimi düşünmezdim. Tekrar hayırlı bayramlar. :)
mimarcan v4r1able

kişi bu mesajı beğendi.

v4r1able v4r1able Coder Kullanıcı
  • Üyelik 04.04.2020
  • Yaş/Cinsiyet 19 / E
  • Meslek Kodlama
  • Konum İstanbul Avrupa
  • Ad Soyad L** P**
  • Mesajlar 160
  • Beğeniler 45 / 57
  • Ticaret 1, (%100)

alfacan adlı üyeden alıntı

Sağ olun dostlar, sorun buymuş. Bu kadar basit bir nedenden sorun yaşayacak kadar unutmuş olabileceğimi düşünmezdim. Tekrar hayırlı bayramlar. :)


Sana da dostum.
 

 

alfacan alfacan WM Aracı Kullanıcı
  • Üyelik 01.09.2017
  • Yaş/Cinsiyet 26 / E
  • Meslek Öğrenci
  • Konum Ankara
  • Ad Soyad A** C**
  • Mesajlar 15
  • Beğeniler 7 / 4
  • Ticaret 0, (%0)
Bir soru daha sorsam... Söz konusu kodlar şu şekilde bildiğiniz üzere:
$_GET['s'] boşsa {
random bir id çek
}else{
id'yi çek
}

Bunu şu şekilde nasıl yaparım:

$_GET['s'] boşsa {
random bir id çek
}else{

veritabanında id'yi ara, eğer bu id veritabanında yoksa (mesela kafadan sallayıp asdfgh şeklinde girildiyse){
random bir id çek
}else{
id'yi çek
}


}
 

 

v4r1able v4r1able Coder Kullanıcı
  • Üyelik 04.04.2020
  • Yaş/Cinsiyet 19 / E
  • Meslek Kodlama
  • Konum İstanbul Avrupa
  • Ad Soyad L** P**
  • Mesajlar 160
  • Beğeniler 45 / 57
  • Ticaret 1, (%100)

alfacan adlı üyeden alıntı

Bir soru daha sorsam... Söz konusu kodlar şu şekilde bildiğiniz üzere:
$_GET['s'] boşsa {
random bir id çek
}else{
id'yi çek
}

Bunu şu şekilde nasıl yaparım:

$_GET['s'] boşsa {
random bir id çek
}else{

veritabanında id'yi ara, eğer bu id veritabanında yoksa (mesela kafadan sallayıp asdfgh şeklinde girildiyse){
random bir id çek
}else{
id'yi çek
}


}


if(empty($_GET["s"])) {

//?s= boş random id çekme işlemini yaz

} else {

//?s= dolu girilen değer veritabanında aranıyor
$id = $_GET["s"];
$sql = "select * from sozler WHERE soz_id = '$id'";

$sorgu= mysqli_query($baglan,$sql);
$sonuc=mysqli_num_rows($sorgu);

if ($sonuc>0) {
// id veritabanında var id çek

} else {
// id veritabanında yok random çekiceksin burada

}

}
 

 

v4r1able v4r1able Coder Kullanıcı
  • Üyelik 04.04.2020
  • Yaş/Cinsiyet 19 / E
  • Meslek Kodlama
  • Konum İstanbul Avrupa
  • Ad Soyad L** P**
  • Mesajlar 160
  • Beğeniler 45 / 57
  • Ticaret 1, (%100)
Bu arada veritabanı bağlantısını $baglan olarak belirttim düzenlersin
 

 

v4r1able v4r1able Coder Kullanıcı
  • Üyelik 04.04.2020
  • Yaş/Cinsiyet 19 / E
  • Meslek Kodlama
  • Konum İstanbul Avrupa
  • Ad Soyad L** P**
  • Mesajlar 160
  • Beğeniler 45 / 57
  • Ticaret 1, (%100)
Telefondan yazınca mysqli yerinde mysql yazmışım :D
 

 

wmaraci
wmaraci
Konuyu toplam 2 kişi okuyor. (0 kullanıcı ve 2 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al