예제 #1
0
파일: clean.php 프로젝트: Ekleog/platal
function query($sql)
{
    XDB::execute($sql);
    if (XDB::errno() != 0) {
        echo "error in \"{$sql}\":\n", XDB::error(), "\n";
    }
}
예제 #2
0
/*
 * Check duplicated addresses
 */
$it = Xdb::iterRow("SELECT  s1.email, s2.email, r1.redirect\n                      FROM  email_redirect_account AS r1\n                INNER JOIN  email_redirect_account AS r2 ON (r1.redirect = r2.redirect AND r1.uid != r2.uid)\n                INNER JOIN  email_source_account   AS s1 ON (s1.uid = r1.uid AND s1.type = 'forlife')\n                INNER JOIN  email_source_account   AS s2 ON (s2.uid = r2.uid AND s2.type = 'forlife')\n                 LEFT JOIN  email_watch            AS w  ON (r1.redirect = w.email)\n                     WHERE  w.email IS NULL\n                  GROUP BY  r1.redirect\n                  ORDER BY  r1.redirect, s1.email");
$insert = array();
$conflits = array();
while (list($alias1, $alias2, $mail) = $it->next()) {
    $insert[] = "('{$mail}', 'pending', CURDATE(), NOW())";
    $conflits[] = "* {$mail} sur {$alias1} et {$alias2}";
}
if (count($conflits) > 0) {
    echo "Nouvelles adresses en doublon détectées :\n" . join("\n", $conflits) . "\n\nVous pouvez entrer les informations collectées à ce sujet sur la page :\n" . "https://www.polytechnique.org/admin/emails/duplicated";
    echo "\n\n";
    $sql = "INSERT IGNORE INTO  email_watch (email, state, detection, last)\n                        VALUES  " . join(", ", $insert);
    XDB::execute($sql);
    if (XDB::errno() != 0) {
        echo 'Error : ' . XDB::error() . "\n{$sql}";
    }
}
/*
 * Check dead emails
 */
if ($panne_level > 0) {
    $res = XDB::fetchAllAssoc("SELECT  r.redirect, a.hruid\n                                 FROM  email_redirect_account AS r\n                           INNER JOIN  accounts               AS a ON (a.uid = r.uid)\n                                WHERE  r.broken_level = {?} AND r.flags != 'broken'\n                             ORDER BY  a.hruid", $panne_level);
    if ($res) {
        echo "Nouvelles adresses en panne detectees :\n";
        foreach ($res as $assoc) {
            echo '* ' . $assoc['redirect'] . ' pour ' . $assoc['hruid'] . "\n";
        }
        echo "\n\n";
        Xdb::execute("UPDATE  email_redirect_account\n                         SET  flags = 'broken'\n                       WHERE  broken_level = 3");