服务器似乎多次运行PHP脚本

时间:2016-04-12 05:35:16

标签: php redirect

我已经PHP编码了很长时间,从未见过这样的事情。我最近更改了Web主机,并且当它们应该只运行一次时,我已经开始看到我的一些脚本运行了两三次。但是,只有在存在标题(位置)类型的重定向时才会发生这种情况。

如果我注释掉重定向,脚本将按原样运行一次,但如果我离开重定向,它将在重定向之前运行两到三次。

我怎么知道这是脚本将信息插入到SQL数据库中,并且会插入两到三个重复的信息。

我在www.realitychurchweb.net/test1.php

创建了一个简单的测试

该页面的脚本是:

require_once("handlers/connection.php");

mysql_query("INSERT INTO AA_GENERIC (name, value)VALUES('testing', '123')");

header("Location: test2.php");

test2.php的脚本是:

require_once("handlers/connection.php");

$q = mysql_query("SELECT * FROM AA_GENERIC WHERE name = 'testing'");

$num = mysql_num_rows($q);

echo "There are now $num rows<br /><br />";

如果我输入浏览器的URL(Safari),它将在重定向到test2之前输入1,2或3行,然后显示现在有多少行。

我采访了网络主机的技术支持,他们没有任何帮助。我真的很茫然。

1 个答案:

答案 0 :(得分:1)

在脚本test1.php中调用exit;之后,您是否已经尝试header()了?

代码执行多次是不可能的,所以要么多次调用脚本(例如bots,cronjob等),要么执行一些其他代码(可能在重定向之后?)导致多个数据库行