Php 通过函数传递参数时出错。
我的代码中有此错误Php 通过函数传递参数时出错。,php,javascript,Php,Javascript,我的代码中有此错误 echo "<input type='button' value='send mails' onclick=\"sendmails(".$sendQuestion.")\">"; 在其周围添加引号: echo "<input type='button' value='send mails' onclick=\"sendmails('".$sendQuestion."')\">"; echo”“; 如果没有引号,javascript会误读字符串。在
echo "<input type='button' value='send mails' onclick=\"sendmails(".$sendQuestion.")\">";
在其周围添加引号:
echo "<input type='button' value='send mails' onclick=\"sendmails('".$sendQuestion."')\">";
echo”“;
如果没有引号,javascript会误读字符串。在其周围添加引号:
echo "<input type='button' value='send mails' onclick=\"sendmails('".$sendQuestion."')\">";
echo”“;
如果没有引号,javascript会误读字符串。如果您查看生成的HTML,它将如下所示:
<input type='button' value='send mails' onclick="sendmails(Type your Question here testin to post from chrome)">
echo "<input type='button' value='send mails' onclick=\"sendmails('".$sendQuestion."')\">";
编辑:添加更多内容…
但是,如果$sendQuestion
包含引号,则会出现另一个错误。。。因此,这可能有助于
- 坏主意:要么用
替换那些\'
,要么用'
- 或者将字符串“转换”为有效的JS字符串,例如
json_encode
在字符串周围添加双引号…因此直接嵌入函数调用变得更加困难…因此让我们使用一个变量):
$sendQuestion=“在此处键入您的问题”测试从chrome发布”;
$json=json_encode($sendQuestion);
回显“”。“\n”;
回显“var myString=”$json.;”。“\n”;
回显“”。“\n”;
回声“;
生成的HTML将是:
<script type="text/javascript">
var myString = "Type your Question' here testin to post from chrome";
</script>
<input type='button' value='send mails' onclick="sendmails(myString)">
var myString=“键入您的问题‘在此处测试以从chrome发布’;
哪个更好:-)
也许还不完美。。。但是,现在,我想你明白了;-)
作为旁注:
json_encode
仅在PHP5.2之后存在。。。因此,您可能需要检查正在使用的PHP版本…如果您查看生成的HTML,它将如下所示:
<input type='button' value='send mails' onclick="sendmails(Type your Question here testin to post from chrome)">
echo "<input type='button' value='send mails' onclick=\"sendmails('".$sendQuestion."')\">";
编辑:添加更多内容…
但是,如果$sendQuestion
包含引号,则会出现另一个错误。。。因此,这可能有助于
- 坏主意:要么用
替换那些\'
,要么用'
- 或者将字符串“转换”为有效的JS字符串,例如
json_encode
在字符串周围添加双引号…因此直接嵌入函数调用变得更加困难…因此让我们使用一个变量):
$sendQuestion=“在此处键入您的问题”测试从chrome发布”;
$json=json_encode($sendQuestion);
回显“”。“\n”;
回显“var myString=”$json.;”。“\n”;
回显“”。“\n”;
回声“;
生成的HTML将是:
<script type="text/javascript">
var myString = "Type your Question' here testin to post from chrome";
</script>
<input type='button' value='send mails' onclick="sendmails(myString)">
var myString=“键入您的问题‘在此处测试以从chrome发布’;
哪个更好:-)
也许还不完美。。。但是,现在,我想你明白了;-)
作为旁注:
json_encode
仅在PHP5.2之后存在。。。因此,您可能需要检查您正在使用的PHP的版本…您做错的第一件事是在JavaScript引擎报告错误时发布一些PHP代码
要调试它,JavaScript很重要。我们可以猜测JS可能是什么样子,但是如果我们能从JS开始就看到它,那就容易多了
在本例中,最有可能的解释是,您希望编写一些包含字符串文字的JS,但是您没有用引号括住JS参数。您做错的第一件事是在JavaScript引擎报告错误时发布一些PHP代码 要调试它,JavaScript很重要。我们可以猜测JS可能是什么样子,但是如果我们能从JS开始就看到它,那就容易多了
在本例中,最有可能的解释是,您希望编写一些包含字符串文字的JS,但是您没有用引号括住JS参数。将PHP视为模板引擎。试试这个:
?>
<input
type="button"
value="Send mails"
onClick="sendmails('<?php echo $sendQuestion; ?>');">
<?php
?>
将PHP看作一个模板引擎。试试这个:
?>
<input
type="button"
value="Send mails"
onClick="sendmails('<?php echo $sendQuestion; ?>');">
<?php
?>
+1提及$sendQuestion包含报价的可能性。实际上,这是一个潜在的XSS漏洞。+1用于提及$sendQuestion包含引号的可能性。这实际上是一个潜在的XSS洞。