Доброго времени суток! Прошу прощения за запутанное название. У меня есть php файл (session.php), в котором есть небольшой js скрипт, отвечающий за websocket подключение: Код (Text): <?php if($auth == 1) { ?> <script type="text/javascript"> var socket = new WebSocket("ws://xx.xx.xx.xx:xxxx"); socket.onopen = function() { // Сюда нужно передать ключ, который мы вводили при входе var protect = '<?php echo $authcode ?>'; socket.send("New connect: " + protect); }; socket.onmessage = function(event) { var mauth = 'Auth Ok'; if(event.data == mauth) { // Авторизация пройдена, шлем сообщение var msg = '<?php echo $msg_snd ?>'; socket.send(msg); <?php // php ответ успешной отправки, сюда я хочу вставить php код, который будет выполняться по условию с JS выше ?> } }; </script> <?php } ?> У меня возникает следующая проблема: я не могу выполнить php код по условию, находящемуся в js: Код (Text): if(event.data == mauth) { // Авторизация пройдена, шлем сообщение var msg = '<?php echo $msg_snd ?>'; socket.send(msg); <?php // php ответ успешной отправки, сюда я хочу вставить php код, который будет выполняться по условию с JS выше ?> } Этот php кусок кода выполняется в любом случае, независимо от условия в js, что не есть хорошо. Как сделать так, чтобы по условию в js коде я смог запустить php код?
Могу предположить, что ПХП просто игнорирует твои JS условия, ему это не понятно и не видно и он обрабатывает только свои куски кода. Могу ошибаться, но предполагаю, что тут нужно смотреть в сторону AJAX Либо js содержимое запускать через echo или PHP: echo <<<EOT ............. ............. ............. EOT;
@Glebiys, http://phpfaq.ru/newbie/na_tanke. JS выполняется на клиенте, php на сервере. Для php твой js - просто кусок текста,который надо вывести.
PHP: <?php if($auth == 1) { echo '<script type="text/javascript"> var socket = new WebSocket("ws://xx.xx.xx.xx:xxxx"); socket.onopen = function() { // Сюда нужно передать ключ, который мы вводили при входе var protect = ', $authcode, '; socket.send("New connect: " + protect); }; socket.onmessage = function(event) { var mauth = 'Auth Ok'; if(event.data == mauth) { // Авторизация пройдена, шлем сообщение var msg = ', $msg_snd, '; socket.send(msg);'; // пишешь сюда на php ответ успешной отправки echo '} }; </script>'; } ?>
ошибся, нужны точки Короче выводишь js-код с помощью php через echo вот так: PHP: <?php $num = 77; echo '<script> var num = '. $num. '; document.write (num); </script>'; ?>
@yanuzay, там все путем было написано кроме непроэкранированных кавычкек у 'Auth Ok'. --- Добавлено --- Также можно не экранировать, а использовать дв. кавычки, как двумя строками выше.
Ну ты лучше отдели PHP от JavaScript, вынеси JS в отдельные файлы, информацию передавай через веб-сокет.