waktu tersisa untuk klaim Potongan harga Rp 300.000 dalam program Membership. Klaim Promo!

Memasukan type data yang tidak di harapkan di url dengan method GET

Ditanyakan pada tanggal 8 September 2020 oleh Rifal Nurjamil Edit  Hapus  Buka Kembali  Tandai 
Hai , 
Saya punya url http://localhost/myproject/get.php?get_int=13
Ketika saya tangkap : 
$int =  $_GET['get_int'];
terus saya looping 

for($i = 1 ; $i <= $int ; $i++) {
echo 'ini no ' .  $i; 


Trouble nya di url ketika saya memasukan String , jadi  :
Url nya  http://localhost/myproject/get.php?get_int=INISTRING

Muncul error karena saya ingin mengharapkan int pada akhir get_int di url.

Bagaimana solusi dan cara mengatasinya ? apakah bisa di validasi ketika user memasukan type selain number/int , kita harus munculkan peringatan?



3 JAWABAN / 0 KOMENTAR

User avatar
Muhammad Rizqy menjawab pada tanggal 8 September 2020 Jadikan Jawaban Terbaik  Edit  Hapus  Ubah ke Komentar 
Hai kak.
Validasi seperti itu biasanya dilakukan pada inputan form, soalnya gak mungkin sepertinya user disuruh memasukkan input lewat url, contoh salah satu validasi inputan harus berupa number bisa seperti ini.
<input type="number" name="get_int"/>
jika tetap ingin mencoba melakukan validasi seperti kasus diatas bisa coba gunakan pengkondisian, seperti code dibawah ini:
$int =  $_GET['get_int'];

if ($int <= 0) {
    echo "Inputan harus berupa angka dan minimal 1";
} else {
    for ($i = 1; $i <= $int; $i++) {
        echo 'ini no ' .  $i . "<br/>";
    }
} 
jika inputan berupa huruf maka akan dianggap == 0, karena tipe data yang dikembalikan dari varibel $_GET selalu string walaupun kita memasukkan number, jadinya tidak bisa melakukan pengkondisian dengan tipe datanya, alhasil mungkin seperti kurang lebih pengkondisiannya.
User avatar
Hasan Marzuki menjawab pada tanggal 9 September 2020 Jadikan Jawaban Terbaik  Edit  Hapus  Ubah ke Komentar 
.
User avatar
Yusuf Fazeri menjawab pada tanggal 10 September 2020 Jadikan Jawaban Terbaik  Edit  Hapus  Ubah ke Komentar 
Kamu bisa menggunakan type casting di php untuk mengkonversi tipe data dari suatu variabel. Contoh pada kasus kamu jika ingin nilai variabel dari get selalu bernilai integer, maka yang harus kamu lakukan adalah dengan menuliskan type casting seperti ini:
$int =  (int) $_GET['get_int'];
Semua yang kamu dapatkan dari $_GET selalu bernilai string. Kamu bisa mengecek dengan perintah var_dump($int). Ketika melakukan type casting, tipe data dari variabel adalah pasti sesuai dengan tipe data yang kamu ingin definisikan. 

 
The casts allowed are: (sumber: php.net)
  • (int), (integer) - cast to integer
  • (bool), (boolean) - cast to boolean
  • (float), (double), (real) - cast to float
  • (string) - cast to string
  • (array) - cast to array
  • (object) - cast to object
  • (unset) - cast to NULL