예제 #1
0
 $tiedot->salasana = "Huiputus";
 // Jos kirjautumissivu vanhentunut, ei pääse sisään:
 if (time() - $hamy > $tuoreusaika) {
     $_SESSION['tunnistus'] = 'stop!';
     $viesti = "Kirjautumisaika ylittyi! Kirjaudu uudelleen!";
     $ktunnus = "";
     // Ei näytetä turvallisuuden vuoksi.
     $sisalto = nayta_kirjautuminen($ktunnus, $hamynimi);
 } else {
     $_SESSION['tunnistus'] = 'kunnossa';
     // Kertoo ajan, jolloin viimeksi käyttäjä jotakin tehnyt:
     $_SESSION['viim_aktiivisuus'] = time();
     // Otetaan kirjautumisaika muistiin.
     $_SESSION['kirjautumisaika'] = time();
     $_SESSION['tiedot'] = $tiedot;
     aseta_online(true, $_SESSION['tiedot']->id, $tietokantaolio);
     // Haetaan viimeinen uloskirjautumisaika:
     $viimeksi_ulos = hae_vika_ulosaika($_SESSION['tiedot']->id, $tietokantaolio);
     // Tallennetaan viimeinen uloskirjautumisaika sessiomuuttujaan:
     // (tarvitaan esim. uusien pikakommenttien selvittämisessä)
     $_SESSION['edellinen_uloskirjausaika_sek'] = $viimeksi_ulos;
     // Haetaan ikä
     $alaikainen = true;
     if (!on_alaikainen_tai_elakkeella($_SESSION['tiedot']->id, $tietokantaolio)) {
         $alaikainen = false;
     }
     /* Luodaan teemat-olio alaikäisyyden huomioon ottoa yms. varten: */
     $teemat = new Teemat($alaikainen);
     // Asetetaan hakuajat sessiomuuttujaan ensimmäisellä kerralla:
     $teema_idt = $teemat->get_teema_arvot();
     // Seuraavassa trim, koska joskus tuli ongelmaa tyhjistä
/**
 * Kirjaa käyttäjän ulos hänen niin halutessaan tai pakolla kun
 * aikaa on kulunut laiskasti tietyn ajan verran. Ei aseta headeria ts.
 * ohjaa kirjautumissivulle.
 *
 *
 * @param <type> $online
 */
function kirjaa_ulos($tietokantaolio)
{
    $omaid = $_SESSION['tiedot']->id;
    kirjaa_vierailutiedot($omaid, $_SESSION['kirjautumisaika'], $tietokantaolio);
    aseta_online(false, $omaid, $tietokantaolio);
    // Aktiivisuusmerkintä:
    $viimeksi_aktiivi = time();
    $aktiivisuuslaji = Aktiivisuus::$ULOSKIRJAUTUMINEN;
    paivita_aktiivisuus($omaid, $tietokantaolio, $viimeksi_aktiivi, $aktiivisuuslaji);
    unset($_SESSION['tiedot']);
    // Vapauttaa muuttujan
    unset($_SESSION['tunnistus']);
    // Vapauttaa muuttujan
    unset($_SESSION['kuvat_katsottu_viimeksi']);
    unset($_SESSION['ylaluokka_id_lj']);
    //$tietokantaolio->sulje_tietokanta(); Ei tarpeen ja aiheuttaa varoituksia lokiin.
}
/**
 * Kirjaa käyttäjän ulos eli lopettaa session ja poistaa tiedot muisteista.
 * @param <type> $omaid
 * @param <type> $tietokantaolio 
 */
function kirjaudu_ulos($omaid, $tietokantaolio)
{
    if (isset($_SESSION['tiedot'])) {
        $kayttaja = $_SESSION['tiedot']->etunimi . " " . $_SESSION['tiedot']->sukunimi;
        aseta_online(false, $_SESSION['tiedot']->id, $tietokantaolio);
        // Aktiivisuusmerkintä:
        $viimeksi_aktiivi = time();
        $aktiivisuuslaji = Aktiivisuus::$ULOSKIRJAUTUMINEN;
        paivita_aktiivisuus($omaid, $tietokantaolio, $viimeksi_aktiivi, $aktiivisuuslaji);
        // Nämä ovat tärkeitä. Tiedot tahtovat jäädä muuten jonnekin muistin
        // perukoille kummittelemaan.
        unset($_SESSION['tiedot']);
        // Vapauttaa muuttujan
        unset($_SESSION['tunnistus']);
        // Vapauttaa muuttujan
        //Ohjaa turvallisesti ja nopeasti kirjautumissivulle.
        header("Location: index.php?id=" . time() . "&ilmoitus_kokon=" . $kayttaja . " " . Tekstit::$ilm_kirjautui_ulos);
        $tietokantaolio->sulje_tietokanta();
        exit;
    } else {
        return Tekstit::$virheilm_uloskirjaustoisto;
    }
}
예제 #4
0
 }
 //============= SUODATUS LOPPU =====================
 $html = "<span class='korostus'>Linjoilla</span>\n                        (viimeksi aktiivinen):<br />";
 if (sizeof($aktiivisuustaulukko) == 0) {
     $html .= "Ei muita kirjautuneita!";
 } else {
     foreach ($aktiivisuustaulukko as $aktiivi) {
         // Tarkistetaan, onko henkilö ollut liian passiivinen:
         if ($aktiivi->vika == null) {
             $html .= $aktiivi->etunimi . " (??)<br />";
             // Henkilöllä ei aktiivisuusmerkintöjä.
         } else {
             if (time() - $aktiivi->vika > $katkaisuaika) {
                 $sisaan = false;
                 // Ulos!
                 aseta_online($sisaan, $aktiivi->id, $tietokantaolio);
                 $html .= $aktiivi->etunimi . " (Aikakatkaistu!)<br />";
             } else {
                 $aika_sek = time() - $aktiivi->vika;
                 $viim_akt = $aktiivi->vika;
                 if ($aika_sek > 3599) {
                     //$viim_akt = "(yli 1 h)";
                     $viim_akt = round(($aika_sek - 3600) / 60);
                     $viim_akt = "(n. 1h " . $viim_akt . " min)";
                 } else {
                     if ($aika_sek > 60) {
                         $viim_akt = round($aika_sek / 60);
                         $viim_akt = "(n. " . $viim_akt . " min)";
                     } else {
                         $viim_akt = "(< 1 min)";
                     }