javascript ile php değişkenler teslim (Linke?)

3 Cevap php

Bir tarayıcı tabanlı oyun kuruyorum ve şu anda ben o / o haritanın farklı bir bölümüne tıkladığında benim karakterin konumunu günceller senaryoyu tasarlıyorum.

Ben position_update.php adında bir php dosyası için bir istek göndermek hangi Bunu yapmak için ajax biraz kullanıyorum. Ama ben onunla birlikte iki değer göndermek gerekir çalışmak için bu nedenle yeni pozisyon Bunu nasıl yapabilirim, ne olduğunu bilir? Aşağıda php dosyasına isteği göndermek benim bağlantıdır.

<a onClick="positionUpdate();"><img src="images/transparent.gif" border="0" /></a>

Bir not olarak, ben onlar gönderilen konum değerleri almak için süper global php $ _GET kullanıyorum.

Teşekkürler, B ekledi

3 Cevap

Sen URL vurmak gerekir:

position_update.php?var1=val1&var2=val2

PHP $ _GET içine olsun dizeyi ayrıştırmak

BTW, bu non-js kullanıcılar için çalışan eşdeğer bir href değerine sahip tarafından incelikle düşürür sağlamalıdır.

Eğer URL dize kodlamak için gereken durumda, javascript işlevini kullanın encodeURL():

sUrl = encodeURL("position_update.php?dir="+sDir+"&dist="+sDist);

Ve bir istemci-sunucu mimarisinde, istemci çok fazla örtülü güven koymayın unutmayın. Oyun mekaniği ve kurallar uygulanmasını kolları uygulama mantığı tüm sunucu tarafı bileşen olarak yer almalıdır.

Birkaç yıl önce bu güvenlik konuları olmadan tasarlanmış Tetrinet (multiplayer online Tetris) adında gerçekten popüler bir oyun vardı. Bu iletişim protokolünü çatlak ve temelde blokları temizleyerek / oluşturmak için sunucu komutları kullanarak diğer oyuncuların ekranlarında çekmek için yaklaşık 3 gün sürdü. Bu sadece basit bir proxy kullanarak çok kolay hile yaptı.

Yani istemci 'tell' the server burada Oyuncu izin vermeyin. Sadece arabirimini görüntülemek giriş toplamak ve çıkışı görüntülemek için istemci kullanın. Yani istemci yasal olarak izin verilir the server oyuncuyu hamle ne dayalı oyuncunun pozisyonunu hesaplamak zorunda sonra oyuncu 'wants' to move (yön, ne kadar, vb) sunucusu anlatmak ve sahip yapmak ve onun önceki pozisyon için.