将变量从php传递给javascript

-1 javascript php

我想知道为什么变量用户不起作用.

<script type="text/javascript">
     var user = <?php echo $r;?>;
     document.write(user);
</script>

<form method="post" action="<?PHP echo $_SERVER["PHP_SELF"]?>">
     <input type="text" name="username" placeholder="username"><br><br>
     <input type="password" name="pw" placeholder="password"><br>
     <input type="submit" value="UPDATE" ="loadXMLDoc()">
</form>
Run Code Online (Sandbox Code Playgroud)

MrC*_*ode 5

假设$r是一个字符串,您需要将其包装在引号中:

var user = '<?php echo $r;?>';
Run Code Online (Sandbox Code Playgroud)

没有引号,浏览器会看到:

var user = Sandeep;
Run Code Online (Sandbox Code Playgroud)

更好的是,使用PHP对JSON编码字符串,这将转义任何引号并防止XSS漏洞:

var user = <?php echo json_encode($r);?>;
Run Code Online (Sandbox Code Playgroud)

旁注,回应$_SERVER["PHP_SELF"]HTML是已知的XSS漏洞.你应该运行它htmlspecialchars():

<form method="post" action="<?PHP echo htmlspecialchars($_SERVER["PHP_SELF"])?>">
Run Code Online (Sandbox Code Playgroud)