2015-02-20 2 views
0

Существует ряд руководств по передаче переменных PHP в Javascript (for example). Есть 3 альтернативных методов Я знаю:Передача переменных PHP на Javascript

  1. Использование AJAX: отдельный файл Javascript используется для загрузки необходимых данных, а затем загрузить на все страницы HTML (или PHP), где требуется
  2. скрытые входы формы: например <input type="hidden" id="X" value="<?php echo $X;?>"/>, а затем с помощью Javascript для получения значения
  3. Внедрение Javascript в возвращаемый HTML: например. <script> var X = "<?php echo $X;?>";</script>

Но я обеспокоен тем, что эти методы не являются действительно безопасным (EDIT: то, что мне нужно просто скрыть переменные из исходного кода, более не представляется возможным), и может привести к путанице, когда число переменные для передачи являются большими.

Есть ли советы или рекомендации для передачи большого количества переменных, от PHP до Javascript? Какие методы используют основные веб-сайты (Wikipedia, Google и т. Д.)?

EDIT2:, например
себе представить, что я собираюсь пройти ROOTPATH ​​моего проекта и некоторых ключей формы для Js
Я передаю ROOTPATH ​​в этом случае, так что я не могу связать все перед ним (я нельзя использовать внешние JS)
и это действительно Негоже иметь что-то вроде этого:

<script> 
    rootpath = "example/foo"; 
    KEY1 = "example"; 
    KEY2 = "example"; 
</script> 

, а также это:

<input type="hidden" id="rootpath" value="example/foo"/> 
<input type="hidden" id="KEY1" value="example"/> 
<input type="hidden" id="KEY2" value="example"/> 

думать о более крупного проекта с много переменных, чтобы быть переданы

+0

Как вы имеете в виду, они не "закреплены"? Какую безопасность вы ожидаете от JavaScript - она ​​выполняется на машине клиента. Он может быть отредактирован клиентом. Все данные, с которыми работает JavaScript, могут видеть посетители страницы. – MilanG

+0

моя ошибка!Я имел в виду показ кода, наконец, нет надежного способа защитить переменную в JS, но я ищу способ скрыть ее из исходного кода – mahdi

ответ

0

Javascript может быть совершенно безопасным, если используется какой-то здравый смысл и пару чеков здесь и там, но скрывает переменную выглядит непрактичным (или может быть, избыток) для меня.

Однако это не означает, что вы не можете приблизиться к своей цели, указав свои переменные. Возможно, вы могли бы попробовать что-то вроде mcrypt_encrypt(), чтобы определить вашу переменную как зашифрованное значение и использовать mcrypt_decrypt() на стороне сервера, чтобы получить значение, которое вы пытаетесь скрыть.

Не принимайте меня неправильно ... это как перебор, поскольку скрытие или обфускание кода, плюс вы должны сохранить вектор инициализации и ключ где-нибудь, чтобы иметь возможность расшифровать значение на своем пути назад.

Таким образом, это больше похоже на смесь между этапами C и A. Шифруйте ваши переменные, отправляйте их на PHP через AJAX и расшифровывайте их впоследствии.

Надежда, что помогает :)

0

Попробуйте этот код ...

<?php 
    $php_var="Hello World"; 
?> 

<script> 

    var js_var = "<?php echo $php_var; ?>"; 
    alert(js_var); 
</script>