lostyazilim
tr.link

GET ile yapılan işlemde URL'de buton adının da görünmesi

5 Mesajlar 1.040 Okunma
lstbozum
tr.link

PorFavorDama PorFavorDama WM Aracı Kullanıcı
  • Üyelik 20.01.2014
  • Yaş/Cinsiyet 29 / E
  • Meslek -
  • Konum Adana
  • Ad Soyad B** K**
  • Mesajlar 511
  • Beğeniler 152 / 44
  • Ticaret 0, (%0)
Merhaba,

Elimde aşağıdaki gibi bir kod var. Tamamen deneme amaçlı yazıyorum ve butonun tıklanıp tıklanmamasına göre de işlemi gerçekleştirmeye çalışıyorum.

Birincisi stackoverflow'da butonun basılıp basılmadığını kontrol etmek için

if($_POST['submit']{
.
.
}


kodu da çalışır demişler fakat aşağıdaki kodlar ile denediğimde çalışmıyor $_GET['submit'] için tanımlanmamış index hatası veriyor. isset() kullandığımda çalışıyor fakat merakımdan soruyorum çünkü orada çalışıyor denmiş ve kimse bir şey dememiş anlamadım benim kodlarımda mı bir sorun var.

Ve butona bastığımda butonun değeri de URL'de görünüyor. Bunu herhangi bir şekilde önleyebilir miyim?
Yani şöyle oluyor:
".../foo.php?sayi=1&submit=Send"








if($_GET['submit']){
switch ($_GET['sayi']){
case 1:
echo "Değişken 1'dir.";
break;
case 2:
echo "Değişken 2'dir.";
break;
case 3:
echo "Değişken 3'tür.";
break;
default:
echo "Girdiğiniz sayı budur: ".$_GET['sayi'];
break;
}
}
else{
#Do nothing.
}
?>




Teşekkür ederim şimdiden.
 

 

wmaraci
reklam

Karakurt Karakurt www.cemkarakurt.com.tr Kullanıcı
  • Üyelik 03.10.2013
  • Yaş/Cinsiyet 26 / E
  • Meslek Öğrenci
  • Konum Manisa
  • Ad Soyad İ** K**
  • Mesajlar 695
  • Beğeniler 45 / 109
  • Ticaret 21, (%95)
tanımlanmamış aslında bir hata değil uyarıdır. Sıkıntı yapmaz. Dediğiniz gibi isset kullanmanız bunu çözecektir.

Url alanında gözükmesini istemiyorsanız get yazan yerleri post ile değiştirin.

Url alanında buton adı olmasın ama sayi id olsun diyorsanız da aşağıdaki gibi buton getini kullanmadan sayi get ini kullanabilirsiniz.







if($_GET['sayi']){
switch ($_GET['sayi']){
case 1:
echo "Değişken 1'dir.";
break;
case 2:
echo "Değişken 2'dir.";
break;
case 3:
echo "Değişken 3'tür.";
break;
default:
echo "Girdiğiniz sayı budur: ".$_GET['sayi'];
break;
}
}
else{
#Do nothing.
}
?>
PorFavorDama

kişi bu mesajı beğendi.

kişisel blog - https://www.cemkarakurt.com.tr - HOSTING FİRMASI ÖNERİLERİM : https://goo.gl/67KMKp

PorFavorDama PorFavorDama WM Aracı Kullanıcı
  • Üyelik 20.01.2014
  • Yaş/Cinsiyet 29 / E
  • Meslek -
  • Konum Adana
  • Ad Soyad B** K**
  • Mesajlar 511
  • Beğeniler 152 / 44
  • Ticaret 0, (%0)
Teşekkür ederim. Peki bunu uyarıyı almadan yapmanın isset()'ten başka bir yolu var mıdır?
$_SERVER['REQUEST_METHOD'] sadece method POST ise işe yarıyor. Yani method GET ise form gönderilse de gönderilmese de o IF bloğunun içine giriyor.
 

 

UmutWare UmutWare Üyeliği Durdurulmuş Banlı Kullanıcı
  • Üyelik 24.03.2017
  • Yaş/Cinsiyet 26 / E
  • Meslek Ögrenci & Yazılım
  • Konum KKTC
  • Ad Soyad U** M**
  • Mesajlar 482
  • Beğeniler 26 / 80
  • Ticaret 3, (%100)

if(isset($_GET["submit"])) && !empty($_GET["submit"]){
switch ($_GET['sayi']){
case 1:
echo "Değişken 1'dir.";
break;
case 2:
echo "Değişken 2'dir.";
break;
case 3:
echo "Değişken 3'tür.";
break;
default:
echo "Girdiğiniz sayı budur: ".$_GET['sayi'];
break;
}
}
else{
#Do nothing.
}
şeklinde kullanabilirsiniz ek olarak neden isset kullanmak istemiyorsunuz ? ve neden get ? post daha güvenlidir.
PorFavorDama

kişi bu mesajı beğendi.

wmaraci
wmaraci

PorFavorDama PorFavorDama WM Aracı Kullanıcı
  • Üyelik 20.01.2014
  • Yaş/Cinsiyet 29 / E
  • Meslek -
  • Konum Adana
  • Ad Soyad B** K**
  • Mesajlar 511
  • Beğeniler 152 / 44
  • Ticaret 0, (%0)
UmutWare Biraz geç olacak ama teşekkür ederim.
Isset kullanmak istemememin herhangi bir özel sebebi yoktu sadece merak ediyordum.
POST ya da GET olması da önemli değil onu sadece o anlık örnek yazarken GET kullanmışım. :)
 

 

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