等待iframe加载在php
问题描述:
我在这个论坛上看了很多,但找不到我需要的东西。等待iframe加载在php
我想使用一个PHP脚本来清理desknow数据库,我设法让它通过我所有的录制循环并发送命令给一个iframe,但我的问题是,我需要它等到iframe作为在它执行下一个循环之前完成加载,因为它将数据库命令发送到desknow服务器。我试图在循环中进行睡眠,但是当我这样做时,它只会等待指定时间的循环次数,然后同时输出所有iframe。它不必为每个记录打开一个新的iframe,就像它在这里做的那样,如果有一种方法可以在每个循环中更改iframe的src,它会更好。
<?php
echo "start";
@ $db = new mysqli('localhost', 'desknow', 'xxxxxxxx', 'desknow');
if (mysqli_connect_errno()) {
echo "fail";
exit;
}
echo "pass";
for ($i=1; $i <4; $i++) {
flush();
sleep(2);
$query = "select email from compte where no = $i";
$result = $db->query($query);
$row= $result->fetch_assoc();
$email = htmlspecialchars(stripslashes($row['email']));
echo "<br>";
echo "<iframe onload=\"load()\" src=\"http://0.0.0.0:81/desknow/admin?pwd=xxxxxx&action=mail_deleteemails&username=$email&domain=mydomain.com&path=inbox&before=20121231_1300/\"></iframe>";
}
$result->free();
$db->close();
?>
答
尝试flush();
前使用ob_flush();
,并echo 'start';
答
你的URL拥有IP,用户名和数据库服务器的密码 - 这是非常不安全的,非常糟糕的做法。
如果你真的要更新之类的东西,你需要做的客户端。使用JavaScript方法可以非常简单,它将重新加载现有DOM成员的HTML内容。
您还可以使用页面刷新或表单后,完成另一个往返于这将更新视图服务器。
这是不安全的,应该被认为是一个非常糟糕的做法! – jeroenvisser101 2013-02-19 13:21:44
尝试使用'file_get_contents'或'curl' – bitWorking 2013-02-19 13:24:16