5

В чем разница между клиентским и серверным программированием?

652

У меня есть такой код:

<script type="text/javascript">
    var foo = 'bar';
    <?php
        file_put_contents('foo.txt', ' + foo + ');
    ?>

    var baz = <?php echo 42; ?>;
    alert(baz);
</script>

Почему этот код не записывает "bar" в мой текстовый файл, но выводит "42" в алерте?


Примечание: Ранее в вопросе говорилось о PHP на стороне сервера и JavaScript на стороне клиента. Сущность проблемы и решения такие же для любой пары языков, когда один работает на клиенте, а другой на сервере (даже если это один и тот же язык). Пожалуйста, учитывайте это, когда будете видеть ответы, касающиеся конкретных языков.

1 ответ(ов)

0

Ваш JavaScript выполняется на клиентской стороне, а не на сервере. Это означает, что переменная foo не вычисляется на стороне сервера, и, следовательно, её значение не может быть записано в файл на сервере.

Лучше всего представлять этот процесс как динамическое создание текстового файла. Сгенерированный текст становится исполняемым кодом только тогда, когда браузер его интерпретирует. Всё, что вы помещаете между тегами <?php, выполняется на сервере.

Кстати, приучение вставлять случайные фрагменты логики PHP в HTML или JavaScript может привести к сильно запутанному коду. Я говорю это из болезненного опыта.

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь