Другие ответы в правой части, , но недостаточно просто заключать в кавычки строку, если это может быть любая произвольная строка. Если сама строка содержит кавычку, обратную косую черту или символ новой строки, это нарушит строковый литерал JavaScript. Если строка содержит </script
(или просто </
в некоторых случаях), это сломает блок <script>
. В любом случае, если вводится пользовательский ввод, это дает вам большую старую дыру в безопасности межсайтового скриптинга.
Хотя вам может и не понадобиться это для конкретного значения $msg
, неплохо бы привыкнуть к экранированию JS-string-literal-любого текста, который вы выводите в строку JS. Хотя вы можете сделать это вручную, добавив обратную косую черту, обычно гораздо проще просто использовать встроенный кодер JSON, который будет работать для других типов, таких как массивы и объекты, а также строки.
<script type="text/javascript">
alert(<?php echo json_encode($msg); ?>);
return false; // huh? return, in a <script> block??
</script>