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();の前flush();に使用してみてください。echo 'start';

于 2013-02-19T13:24:22.827 に答える
0

URL には、データベース サーバーの IP、ユーザー名、およびパスワードが含まれています。これは非常に危険であり、非常に悪い習慣です。

そのようなものを本当に更新したい場合は、クライアント側で行う必要があります。既存の DOM メンバーの HTML コンテンツをリロードする JavaScript メソッドを用意するのは非常に簡単です。

ページの更新またはフォームの投稿を使用して、ビューを更新するサーバーへの別のラウンド トリップを完了することもできます。

于 2013-02-19T13:26:20.017 に答える