//konec logu session_start(); //inicializace db foreach ($conf["sqlconn"] as $server => $db) { try { $sqlEngine = new SQLEngine(); $sqlEngine->setSlaveConnection($db["dbhost"], $db["dbuser"], $db["dbpass"], $db["dbname"]); $adminDataQuery = "SELECT * FROM spravce_info"; $rs = $sqlEngine->query($adminDataQuery); $conf["spravce_info"] = SQLEngine::getFirstRow($rs); $pocetDnu = 7; $rozdil = 60 * 60 * 24 * $pocetDnu; $selMsg = "SELECT TIMESTAMPDIFF(DAY, vlozeno, NOW()) as naposledyVlozeno\n FROM zpravy\n INNER JOIN spravce_admini ON spravce_admini.id = zpravy.vytvoril\n WHERE TIMESTAMPDIFF(DAY, vlozeno, NOW()) >= 7"; $rs = $sqlEngine->query($selMsg); if (SQLEngine::getRowCount($rs) > 0) { $pocetDnu = SQLEngine::getFirstRow($rs); $pocetDnu = $pocetDnu["naposledyVlozeno"]; echo $server . ": " . $pocetDnu . " > " . $conf["spravce_info"]["spravceEmail"] . "<br />"; $mail = new PHPMailer(); $mail->From = $conf["spravce_info"]["odesilatelEmail"]; $mail->FromName = $conf["spravce_info"]["odesilatelName"]; $mail->set('Return-Path', $conf["spravce_info"]["odesilatelEmail"]); $mail->AddReplyTo($conf["spravce_info"]["odesilatelEmail"], $conf["spravce_info"]["odesilatelName"]); $mail->ContentType = 'text/plain'; $mail->CharSet = "utf-8"; $mail->Host = $conf["smtp"]["server"]; $mail->Mailer = "smtp"; $mail->Body = "Pri kontrole bylo zjisteno, ze j*z " . $pocetDnu . " dnu nebyla vlozena zadna nova zprava do systemu. Novou zpravu vlozte pres vasi administracni rozhrani."; $mail->Subject = $conf["spravce_info"]["subjectPrefix"] . ": pripominka vlozeni nove zpravy"; $mail->AddAddress($conf["spravce_info"]["spravceEmail"], ""); // login je emailova adresa uzivatele
unset($T_data); $T_data["userEditURL"] = getUrl("adminUzivatele", array("u" => $u["id"])); $T_data["login"] = $u["login"]; $T_data["activ"] = $u["id"] == $_REQUEST["edit"] ? "class=\"activ\"" : ""; if ($u["stav"] == "active") { $TM->assignBlockVars('uzivatel.radekAktivni', $T_data, 1); } else { $TM->assignBlockVars('uzivatel.radekNeaktivni', $T_data, 1); } } if (isset($_REQUEST["u"])) { $actionHere = getUrl("adminUzivatele", array('u' => $_REQUEST["u"])); $query = "SELECT id, login, email, sms, kredit, UNIX_TIMESTAMP(naposledyPrihlasen) as naposledyPrihlasen, poznamka, stav\n FROM uzivatele\n WHERE id = ?"; $qUzivatel = $sqlEngine->query($query, array($_REQUEST["u"])); if (SQLEngine::getRowCount($qUzivatel) == 1) { $u = SQLEngine::getFirstRow($qUzivatel); //kredit stav naposledyPrihlasen poznamka email sms unset($T_data); $T_data['uLogin'] = $u["login"]; $T_data['uEmail'] = $u["email"] == "" ? "" : $u["email"]; $T_data['uSMS'] = $u["sms"] == "" ? "" : $u["sms"]; $T_data['uKredit'] = $u["kredit"]; $T_data['actionHere'] = $actionHere; $T_data[$u["stav"] . 'Check'] = "selected=\"selected\""; $T_data['uNaposledyPrihlasen'] = $u["naposledyPrihlasen"] == 0 ? "<i>nikdy</i>" : date("j. n. Y", $u["naposledyPrihlasen"]); $T_data['uPoznamka'] = $u["poznamka"] == "" ? "<i>Nevyplněno</i>" : $u["poznamka"]; $TM->assignBlockVars('uzivatel.edit', $T_data, 1); //editace jednotlivych skupin $sql = "SELECT uzivatele_skupiny.*,skupiny.*,kanaly.nazev AS kanalNazev FROM uzivatele_skupiny\n INNER JOIN skupiny ON uzivatele_skupiny.idSkupina = skupiny.id\n\t INNER JOIN kanaly ON kanaly.id = uzivatele_skupiny.kanal\n WHERE uzivatele_skupiny.idUzivatel = ? AND skupiny.stav != 'none'\n ORDER BY skupiny.stav DESC, skupiny.nazev\n "; $rs = $sqlEngine->query($sql, array($_REQUEST["u"])); $predchozi_stav = "";
//print_r($_REQUEST); //print_r($_SESSION); //print_r($_SERVER); if (isset($_REQUEST["action"])) { switch ($_REQUEST["action"]) { case 'sendCheckemail': case 'sendChecksms': // vygenerujeme auth kod a ulozime ho do session $myAuthCode = rand(111111, 999999) . "" . rand(111111, 999999); // odesleme email s auth kodem; $_SESSION["bgWorker"]["authCode"] = $myAuthCode; $sqlEngine = new SQLEngine($conf["sqlconn"][$_REQUEST["svalue"]]["dbhost"], $conf["sqlconn"][$_REQUEST["svalue"]]["dbuser"], $conf["sqlconn"][$_REQUEST["svalue"]]["dbpass"], $conf["sqlconn"][$_REQUEST["svalue"]]["dbname"]); $sql = "SELECT * FROM spravce_info"; $rs = $sqlEngine->query($sql); unset($conf["spravce_info"]); $conf["spravce_info"] = SQLEngine::getFirstRow($rs); $odesilatel = "*****@*****.**"; $odesilatel_name = "COMBROS"; // posleme mail $mail = new PHPMailer(); $mail->From = $conf["spravce_info"]["odesilatelEmail"]; $mail->FromName = $conf["spravce_info"]["odesilatelName"]; $mail->set('Return-Path', $conf["spravce_info"]["odesilatelEmail"]); $mail->AddReplyTo($conf["spravce_info"]["odesilatelEmail"], $conf["spravce_info"]["odesilatelName"]); $mail->ContentType = 'text/plain'; $mail->CharSet = "utf-8"; $mail->Host = $conf["smtp"]["server"]; $mail->Mailer = "smtp"; $mail->Body = "Pro ověření platnosti Vašeho emailu jsme Vám vygenerovali jednorázový autorizační kód : " . $myAuthCode . "\nVložte tento kód do formuláře a stiskněte tlačítko Ověřit kód.\n\nS pozdravem správce systému COMBROS."; $mail->Subject = "Jednorázový autorizační kód systému COMBROS pro ověření emailové adresy"; $mail->AddAddress($_REQUEST["email"], "");
<?php adminLoginValidate(false); // controler, odchyceni vstupu if ($_REQUEST["login"] != "" && $_REQUEST["heslo"] != "") { // zavolame backend na overeni pristupu // kontrola zda neni uzivatel se stejnym loginem j*z registrovan $sql = "SELECT * FROM spravce_admini WHERE login=? AND heslo=SUBSTRING(MD5(?), 1, 20)"; $rs = $sqlEngine->query($sql, array($_REQUEST["login"], $_REQUEST["heslo"])); $admin = SQLEngine::getFirstRow($rs); if ($admin["id"] > 0) { // pokud je overeni ok, naplnime session, jinak vratime zpravu ze prihlaseni nebylo uspesne $_SESSION["admin"] = $admin; //tady bude redirect na userDetail header('location: ' . getUrl("adminSeznamZprav", array())); exit; } else { $chyba = "Login nebo heslo nebylo zadáno správně"; } } // promyslet jak udelat prenaseni hesla bezpecnejsi pomoci jednorazoveho hesla nebo predanim klice kterym JS MD5 zahesuje pred odeslanim heslo, heslo by bylo ulozene v session a vygeneruje se vzdy pri vytvoreni formulare nove // vybereme hlavni sablonu $T->setFile('modulX', 'srcTpl/admin.htm'); // polozky menu include_once 'moduly/menuAdmin.php'; // nastartujeme lokalni sablonu $TM = new MyTemplate(); $TM->setFile('modulY', 'srcTpl/adminLogin_modul.htm'); if (isset($chyba)) { unset($T_data); $T_data['textChyby'] = $chyba;
/** zjisti informace o uzivateli */ function detail($login, $typ = "login") { if ($typ == "login") { $sql = "SELECT uzivatel.*,uzivatel_adresa.sidlo,uzivatel_adresa.ulice,uzivatel_adresa.mesto,uzivatel_adresa.psc,uzivatel_adresa.kraj,uzivatel_adresa.uiradr_id FROM uzivatel LEFT JOIN uzivatel_adresa ON uzivatel_adresa.uzivatel_id=uzivatel.id WHERE bazar='" . $this->bazar . "' AND login=? LIMIT 1"; } else { $sql = "SELECT uzivatel.* FROM uzivatel WHERE id=? LIMIT 1"; // nesmi tu byt podminka pro bazarId } $rs = $this->db2->query($sql, array($login)); $out["result"] = SQLEngine::getErrorCode($rs); $out["result_text"] = SQLEngine::getErrorText($rs); $out["uzivatel"] = SQLEngine::getFirstRow($rs); if ($out["uzivatel"]["uiradr_id"] > 0) { $uirClass = new uirAdr(); $outUir = $uirClass->adresaDetail($out["uzivatel"]["uiradr_id"]); $out["uzivatel"]["uir"] = $outUir; } unset($out["uzivatel"]["uiradr_id"]); // pokud dotaz nevratil zadny vysledek if (!isset($out["uzivatel"]["login"])) { $out["result"] = 1; $out["result_text"] = "uzivatel neexistuje"; return $out; } $sql = "SELECT * FROM uzivatel_doprava WHERE uzivatel_id = '" . $out["uzivatel"]["id"] . "' ORDER BY poradi"; $rs = $this->db2->query($sql); foreach (SQLEngine::getRows($rs) as $radek) { $out["uzivatel"]["doprava"][$radek['poradi']]["nazev"] = $radek["nazev"]; $out["uzivatel"]["doprava"][$radek['poradi']]["cena"] = $radek["cena"]; } // jeste spocitej u kolika aktivnich aukci je $sql = "select count(*) as pocet from inzerat_ucastnici_aukce, inzerat where inzerat_ucastnici_aukce.uzivatel_id='" . $out["uzivatel"]["id"] . "' and inzerat_ucastnici_aukce.inzeratId=inzerat.id and datumKonec<=curdate()"; $rs = $this->db2->query($sql); $row = SQLEngine::getFirstRow($rs); $out["uzivatel"]["inzeraty_count"] = $out["uzivatel"]["celkem_inzeratu"]; $out["uzivatel"]["prihlaseno_aukci_count"] = $row["pocet"]; $out["result"] = 0; $out["result_text"] = "uzivatel existuje"; return $out; }
$selectedB = "selected"; } else { $selectedB = ""; } $vystup .= "\n<OPTION value=\"-1\" {$selectedA} >ne, neposílat</OPTION>"; if ($cena == NULL || $cena == 0) { $vystup .= "\n<OPTION value=\"0\" {$selectedB} >ano, zdarma</OPTION>"; } else { $vystup .= "\n<OPTION value=\"0\" {$selectedB} >ano, " . $cena . " CZK/zprávu</OPTION>"; } return $vystup; } //aktualizace stavu kreditu v sessin $sql = "SELECT * FROM uzivatele WHERE login=? AND heslo=SUBSTRING(?, 1, 12)"; $rs = $sqlEngine->query($sql, array($_SESSION["user"]["login"], $_SESSION["user"]["heslo"])); $_SESSION["user"] = SQLEngine::getFirstRow($rs); // nacteme ceny za jednotlive kanaly $sql_skupinyKanaly = "SELECT * FROM skupiny_kanaly"; $rs = $sqlEngine->query($sql_skupinyKanaly); foreach (SQLEngine::getRows($rs) as $k) { $cenaKanal[$k["idSkupina"]][$k["idKanal"]] = $k["cenaZaZpravu"] / 100; } // controler, odchyceni vstupu if (isset($_REQUEST["action2"]) && $_REQUEST["action2"] == "userSetup" && is_array($_REQUEST["data"])) { // ulozime nastaveni odberu foreach ($_REQUEST["data"] as $kanal => $skupinyKanalu) { foreach ($skupinyKanalu as $skupinaID => $nastavit) { if ($nastavit == -1) { //zrusit zaznam $sql = "DELETE FROM uzivatele_skupiny WHERE idUzivatel = ? AND idSkupina= ? AND kanal = ?"; $rs = $sqlEngine->query($sql, array($_SESSION["user"]["id"], $skupinaID, $kanal));
$sql = "SELECT * FROM uzivatele WHERE login=?"; $rs = $sqlEngine->query($sql, array($_REQUEST["login"])); $uzivatel = SQLEngine::getFirstRow($rs); // pokud takovy login neexistuje if (!isset($uzivatel["login"])) { // pokus o zalozeni noveho uzivatele $sql = "INSERT INTO uzivatele SET login=?, heslo=SUBSTRING(MD5(?), 1, 12), stav='active',naposledyPrihlasen=NOW(), poznamka=?"; $rs = $sqlEngine->query($sql, array($_REQUEST["login"], $_REQUEST["heslo"], $_REQUEST["zprava"])); $out["result"] = SQLEngine::getErrorCode($rs); $out["result_text"] = SQLEngine::getErrorText($rs); if ($out["result"] + 0 == 0) { // naplnime session jako by byl prihlasen // kontrola zda neni uzivatel se stejnym loginem j*z registrovan $sql = "SELECT * FROM uzivatele WHERE login=? AND heslo=SUBSTRING(MD5(?), 1, 12)"; $rs = $sqlEngine->query($sql, array($_REQUEST["login"], $_REQUEST["heslo"])); $uzivatel = SQLEngine::getFirstRow($rs); if ($uzivatel["id"] > 0) { // pokud je overeni ok, naplnime session, jinak vratime zpravu ze prihlaseni nebylo uspesne $_SESSION["user"] = $uzivatel; // redirect na userDetail header('location: ' . getUrl("userDetail", array())); exit; } else { $chyba = "Uživatele se nepodařilo založit"; } } else { $chyba = $out["result_text"]; } } else { $chyba = "Vybrany login je již registrován jiným uživatelem, zvolte jiný login"; }