Передача ссылок на переменные в PHP из Javascript через AJAX

У меня есть идея для «использования» или «ссылки» на переменные PHP в Javascript. Это будет относиться к веб-странице, которая будет отправлять электронную почту. Упрощенный пример показан ниже. Примечание: это вызывается через AJAX, поэтому я не пытаюсь вызвать переменную PHP из сценария, который уже был выполнен.

Javascript будет содержать строку «$ midSection» в теле письма для отправки, а затем отправлять все тело в сценарий PHP. Скрипт PHP будет хранить эту строку, создавать и присваивать значение $ fmidSection и отправлять строку тела в электронном письме. Если это работает, получающееся электронное письмо будет включать основное тело, отправленное со стороны клиента, со вставленным «midSection» в середине электронного письма (возможно, в зависимости от имени человека и информации, хранящейся в базе данных).

Мне кажется, что это должно работать, учитывая мое понимание PHP. Однако мне также кажется, что это откроет окно для атаки, похожее на SQL-инъекцию (где «возможно, мы можем обмануть скрипт, например, для присвоения другого значения $ midSection). Кто-нибудь воспользовался этим подходом, и если да, можете ли вы проверить, сработает ли это, и открыть ли дыры в безопасности?

Спасибо.

РЕДАКТИРОВАТЬ: приложение для списка рассылки, а не контактная форма. У меня есть панель администратора, которая позволяет мне отправлять электронные письма в список рассылки, и я думаю, что это хороший способ включить переменные из PHP аналогично тому, как я делал бы в сценарии PHP, поместив $ var в сама строка Я понимаю, как работает передача переменных из JS в PHP, я хочу, чтобы JS по существу ссылался на переменную PHP. Я не использую это в целях проверки, я использую это для простого способа вставки информации, вместо того, чтобы выполнять разбор строк вручную. Переменная будет создана и сохранена на стороне сервера в сценарии, который я создал.

Кроме того, JAVASCRIPT будет выполнять вызов AJAX для сценария PHP. Поэтому Javascript будет выполняться первым. По сути, я отправляю шаблон электронной почты в PHP, где PHP будет циклически проходить по списку электронной почты и динамически добавлять информацию, такую ​​как имя, фамилия и т. Д. Вместо того, чтобы выполнять обработку строк, я думаю отправить «Hello». , $ firstName $ lastName ….. «по сути, в надежде, что PHP-скрипт вставит переменную информацию.

-3

Решение

Из комментариев выше я вижу, что вы пытаетесь сделать, но это не сработает.

Рассмотрим следующий код:

$(document).ready(function() {
$.ajax({
url: 'ajax.php',
data: {'name' : 'andy'},
method: "POST",
}).done(function (data) {
console.log(data);
});
});

Это ajax.php:

<?php
echo $_POST['name'];
?>

Все, что вы делаете в javascript, это делает POST-запрос к ajax.php, Он может дать вам вывод «andy» в вашей консоли, потому что вы передаете эту строку данных, а не ссылку на что-либо. Пока все просто.

Теперь представьте, если вы измените data: в jquery к следующему:

data: {'name' : '$var'}

В вашей консоли вы получите строку «$ var».

Даже если у вас было это в ajax.php:

<?php
$var = 'foo';
echo $_POST['name'];
?>

Вы никогда не получите вывод «foo».

Это потому, что PHP и Javascript совершенно разные. Так что если вы пройдете $varэто просто будет восприниматься как строка. Нет никакого способа попросить JavaScript иметь в виду переменную PHP или какую-либо ссылку. Вы должны передать сами данные.

В случае вашего приложения вы обычно передаете в запрос ajax что-то, на что может ссылаться PHP (например, идентификатор первичного ключа для конкретной записи). Затем PHP сгенерирует весь необходимый контент и отправит его обратно в браузер. Если вам нужно сделать что-то с шаблоном, str_replace твой друг.

2

Другие решения

Я хочу, чтобы JS ссылался на переменную PHP

Невозможно.

Это разные программы, работающие на разных компьютерах. К тому времени, когда JS начнет работать, программа PHP будет завершена, и ее переменные больше не будут существовать.

Самое близкое, что вы могли бы получить, — это где-то хранить данные (например, базу данных) с идентификатором. Затем отправьте этот идентификатор в JS. Затем, если вы хотите получить данные в JS, используйте Ajax для запроса.

1

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector