Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/250.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
当Firefox浏览文件时,当这个meta标记在文件中时,PHP会执行两次操作_Php_Firefox - Fatal编程技术网

当Firefox浏览文件时,当这个meta标记在文件中时,PHP会执行两次操作

当Firefox浏览文件时,当这个meta标记在文件中时,PHP会执行两次操作,php,firefox,Php,Firefox,我想知道为什么当文件的html部分中有一个特定的元标记,并且文件被Firefox浏览时,php会执行两次而不是一次特定的操作 代码如下所示: <? /*...normal php code, including writing record to MySQL...*/ send('dan@example.com',$subject,$body); ?> <!DOCTYPE html><html> <!--PROBLEM on next line

我想知道为什么当文件的html部分中有一个特定的元标记,并且文件被Firefox浏览时,php会执行两次而不是一次特定的操作

代码如下所示:

<?  /*...normal php code, including writing record to MySQL...*/
send('dan@example.com',$subject,$body);    
?>
<!DOCTYPE html><html>
<!--PROBLEM on next line--> 
<META http-equiv=Content-Type content="text/html; charset=utf-8">
<head>
<title><?= $thisPage?></title>
<link href="<?= $cssURL?>css.freedom-and-purpose.css" rel="stylesheet" type="text/css" media="screen, projection"  />
<?
include $dataPath   . 'data.php';
?>

结果是,每当FIREFOX调用页面时,数据库中会写入两条记录,并发送两封电子邮件。IE和Chrome不会产生问题

程序中还有很多其他代码,但我显示上面部分的原因是删除了以开头的行
在此处输入代码
我建议您详细查看代码并检查其格式

Phil提到了meta标签,对此我表示同意。我更喜欢他关于
的建议

其次,发送电子邮件的线路看起来很奇怪。在php中,单引号不是数据替换的选项,因此行
send('dan@example.com“,”$subject“,“$body”)将导致主题为“$subject”且正文仅为“$body”的电子邮件

另外
send('dan@example.com“,”$subject“,“$body”)似乎在$body之后缺少报价


我建议您不要使用简短的php标记来打开和关闭php
,而是养成
的习惯。很可能这实际上是一个请求,
favicon.ico
被主php文件捕获。在
favicon.ico
中放置一个空文件或阻止您的PHP处理该URL应该可以做到这一点

可能只是因为格式不好(在
内容类型
中缺少引号)迫使Firefox以怪癖模式重新加载页面或其他什么。我不确定,但是试着用
或者更现代的
为什么不干脆把它删掉呢?没有它也行吗?抱歉,如果这是一个愚蠢的问题,如果你想在你的网站上显示unicode字符,你可能会想要它。菲尔,你建议的改变解决了这个问题!繁荣PHP不对不希望出现的行为负责。数据被插入数据库两次,并发送两封电子邮件,因为脚本被网络请求了两次。
META
元素不会告诉FF再次请求页面。您最好检查服务器的日志文件,找出请求的页面(如果您使用URL重写,则可能是您对其进行了错误配置,并且它还处理了不应处理的请求;例如,
/favicon.ico
,如建议)。谢谢您,Harry。我接受了你的建议,并浏览了我发布的代码。第一行炸弹,但它的作品,如果评论标签包围它,所以我作出了改变。send命令输入不正确,所以我也修复了这个问题。关于邮件内容,那封邮件的目的是测试邮件是否会被发送不止一次,出于这个目的,我想把与测试无关的东西删掉是可以的。我喜欢php短标记。有没有另一种编程语言使用我将提供的直接示例是xml,其中短标记非常容易混淆。此外,在HTML和php之间切换时,较长版本带来的清晰性在您自己或作为团队成员编写代码时是非常宝贵的。短标签没有好处(尽管