Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/469.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 通过函数传递参数时出错。_Php_Javascript - Fatal编程技术网

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字符串,例如
第二个解决方案将为您提供如下PHP代码(请注意,
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字符串,例如
第二个解决方案将为您提供如下PHP代码(请注意,
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洞。