0

我在这个论坛上阅读了很多,但找不到我需要的东西。

我正在尝试使用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();
?>
4

2 回答 2

0

尝试使用ob_flush();before flush();,并且echo 'start';

于 2013-02-19T13:24:22.827 回答
0

您的 URL 包含您的数据库服务器的 IP、用户名和密码——这是非常不安全且非常糟糕的做法。

如果你真的想更新这样的东西,你需要在客户端进行。拥有一个重新加载现有 DOM 成员的 HTML 内容的 javascript 方法将非常简单。

您还可以使用页面刷新或表单发布来完成到服务器的另一次往返,这将更新视图。

于 2013-02-19T13:26:20.017 回答