PHP Javascript, dizi dizi, nesne nesneye

2 Cevap php

Ben HTML sayfası onları render whitout javascript geçmek istiyorum benim PHP komut görüntü yolların bir listesi var. Yani, ben bir> görünüm HTML kaynağını yaparsınız insanların yolu en avına gitmek istemiyorum.

<?php
    $images_str = "some/dir/001.jpg|*|some/dir/002.jpg|*|some/dir/003.jpg";
    $images_arr = array('some/dir/001.jpg', 'some/dir/002.jpg', 'some/dir/003.jpg');
?>
<html>
<body>
    <script type="text/javascript">

        var dynamicID = 1;

        /* String */
        _images_str = "<?= $images_str ?>";
        _images_str_arr = _images_str.split("|*|");

        // alert(_images_str_arr[dynamicID]); // OK but renders the image paths in javascript

        /* Array */
        var _images_arr = new Array();
        _images_arr = "<?= $images_arr ?>";

        // alert("<?= $images_arr ?>"); // "Array"
        // alert(_images_arr); // "Array"

        // alert(_images_arr[1]); // "r" from "Array"
        // alert("<?= $images_arr[1] ?>"); // "some/dir/002.jpg" works! but how to use dynamicID??

        // alert("<?= count($images_arr) ?>"); // works as well

    </script>
</body>
</html>

2 Cevap

I don't want people go fishing for the path's when do do a > view HTML source

Ne senin javascript bu görüntü yolları ile yapacaksın? Nihai hedefi o zaman gibi araçları gibi bunları gizlemek için hiçbir şey yapabileceği bir img etiketinin kaynağı olarak kullanmak için ise Firebug doğrudan tüm HTTP isteklerini gösterecektir tarayıcı gerçekleştirir, bu nedenle görüntü yolları elde etmek için HTML sayfasının kaynağına bakmak bile gerekli değildir.

Eğer bu yollar (?) Ile başka bir şey yapmak istiyorsanız, bir özel / ortak anahtar şifreleme algoritmasını kullanabilirsiniz. Örneğin javascript kamu / özel anahtar çifti oluşturmak ve sunucu komut için ortak anahtarı göndermek için ajax kullanmak. Komut görüntü yolları şifrelemek için bu genel anahtarını kullanır ve bunları çözmek için özel anahtar kullanan istemci komut json dizi olarak döndürür.


GÜNCELLEME:

İşte AJAX ile yolların listesini göndererek bir örnek:

<?php
    header('Content-Type: application/json; charset=utf-8');
    $images_arr = array('some/dir/001.jpg', 'some/dir/002.jpg', 'some/dir/003.jpg');
    echo json_encode($images_arr);
?>

ve javascript bunları edinin:

$(function() {
    $.getJSON('/script.php', function(data) {
        for (var x = 0; x < length; x += 1) {
            var imageUrl = data[x];
            // do something with this image url
        }
    });
});

Sana söylemek için üzgünüm ama başka seçeneğim yok. JavaScript dizi kullanmak isterseniz, müşteri bunu dışarı geçmek zorunda ve bu güç kullanıcı bunu görmek mümkün olacak demektir. Etrafında hiçbir yolu yoktur.

Bunu kodlamak ama JavaScript hata ayıklayıcı karşı tutamaz.

JavaScript kodu görünür ise, kullanıcı, bir süre görünür.