load->model('NotificationModel', '', TRUE); $this->load->helper('cookie'); } public function getLoginData($username) { $return = $this->db->query('SELECT * FROM users WHERE (username = lower(?) OR email = lower(?)) AND is_activated = TRUE LIMIT 1', [htmlspecialchars($username, ENT_QUOTES), $username])->result_array(); return $return; } public function getPasswordHash($password, $original_name) { $salt = md5($original_name); $passwordHash = hash('sha256', $salt . $password . $salt); return $passwordHash; } public function login($username, $password, $rememberMe) { $logindata = $this->getLoginData($username); $_SESSION['notice'] = ''; if (empty($logindata)) { $_SESSION['notice'] .= '
Der Account existiert nicht oder wurde noch nicht aktiviert! Bitte überprüfe noch einmal dein Mail-Postfach, ob du eine Aktivierungs-Mail erhalten hast.
E-Mail erneut senden
'; return; } $logindata = $logindata[0]; $encryptedPassword = $this->getPasswordHash($password, $logindata['original_name']); if ($encryptedPassword == $logindata['password']) { $this->startLoginSession($logindata, $rememberMe); } else { $_SESSION['notice'] .= '
Falsche Anmeldedaten! Benutzername und Passwort stimmen nicht überein!
'; } } public function startLoginSession($logindata, $rememberMe) { $_SESSION['user']['displayname'] = $logindata['displayname']; $_SESSION['user']['username'] = $logindata['username']; $_SESSION['user']['rank'] = $logindata['rank']; $_SESSION['user']['ID'] = $logindata['ID']; $_SESSION['user']['ads'] = $logindata['showAds']; $profilePic = $logindata['profile_picture']; if (empty($profilePic)) { $_SESSION['user']['profilePic'] = '/assets/images/steam.jpg'; } else { $_SESSION['user']['profilePic'] = $profilePic; } $this->db->query('UPDATE users SET isCurrentlyOnline = 1, lastLogin = CURRENT_TIMESTAMP() WHERE ID = ?', [$logindata['ID']]); if ($rememberMe == 'on') { $expire = time() + 3600 * 24 * 60; $userHash = $this->LoginModel->getUserHash($logindata['username'], $logindata['password'], $logindata['email'], $logindata['ID']); var_dump($expire); set_cookie('rememberMe', base64_encode($logindata['username']), $expire, base_url(), '/'); set_cookie('token', $userHash, $expire, base_url(), '/'); } } public function getUserHash($username, $password, $email, $id) { $hash = hash('sha256', $id . '//' . $username . '//' . substr($password, 0, 5) . '//' . substr($email, 0, 5)); return $hash; } public function isTrashMail($email) { $emailList = ["0-mail.com", "027168.com", "0815.ru", "0815.su", "0clickemail.com", "0wnd.net", "0wnd.org", "10mail.org", "10minutemail.cf", "10minutemail.com", "10minutemail.de", "10minutemail.ga", "10minutemail.gq", "10minutemail.ml", "123-m.com", "12minutemail.com", "1ce.us", "1chuan.com", "1mail.ml", "1pad.de", "1zhuan.com", "20email.eu", "20mail.in", "20mail.it", "20minutemail.com", "21cn.com", "24hourmail.com", "2prong.com", "30minutemail.com", "33mail.com", "3d-painting.com", "3mail.ga", "4mail.cf", "4mail.ga", "4warding.com", "4warding.net", "4warding.org", "5mail.cf", "5mail.ga", "60minutemail.com", "675hosting.com", "675hosting.net", "675hosting.org", "6ip.us", "6mail.cf", "6mail.ga", "6mail.ml", "6paq.com", "6url.com", "75hosting.com", "75hosting.net", "75hosting.org", "7days-printing.com", "7mail.ga", "7mail.ml", "7tags.com", "8mail.cf", "8mail.ga", "8mail.ml", "99experts.com", "9mail.cf", "9ox.net", "a-bc.net", "a.betr.co", "a45.in", "abusemail.de", "abyssmail.com", "ac20mail.in", "acentri.com", "advantimo.com", "afrobacon.com", "ag.us.to", "agedmail.com", "ahk.jp", "ajaxapp.net", "alivance.com", "amail.com", "amilegit.com", "amiri.net", "amiriindustries.com", "anappthat.com", "ano-mail.net", "anonbox.net", "anonymail.dk", "anonymbox.com", "antichef.com", "antichef.net", "antispam.de", "apkmd.com", "appixie.com", "armyspy.com", "asdasd.nl", "ass.pp.ua", "aver.com", "azmeil.tk", "baxomale.ht.cx", "beddly.com", "beefmilk.com", "big1.us", "bigprofessor.so", "bigstring.com", "binkmail.com", "bio-muesli.net", "bladesmail.net", "blogmyway.org", "bobmail.info", "bodhi.lawlita.com", "bofthew.com", "bootybay.de", "boun.cr", "bouncr.com", "boxformail.in", "boxtemp.com.br", "brefmail.com", "brennendesreich.de", "broadbandninja.com", "bsnow.net", "bu.mintemail.com", "buffemail.com", "bugmenot.com", "bumpymail.com", "bund.us", "bundes-li.ga", "burnthespam.info", "burstmail.info", "buyusedlibrarybooks.org", "c2.hu", "c51vsgq.com", "cachedot.net", "car101.pro", "casualdx.com", "cbair.com", "ce.mintemail.com", "cellurl.com", "centermail.com", "centermail.net", "chacuo.net", "chammy.info", "cheatmail.de", "chogmail.com", "choicemail1.com", "chong-mail.com", "chong-mail.net", "chong-mail.org", "clixser.com", "cmail.com", "cmail.net", "cmail.org", "coldemail.info", "consumerriot.com", "cool.fr.nf", "correo.blogos.net", "cosmorph.com", "courriel.fr.nf", "courrieltemporaire.com", "crapmail.org", "crazespaces.pw", "crazymailing.com", "cubiclink.com", "curryworld.de", "cust.in", "cuvox.de", "cx.de-a.org", "dacoolest.com", "daintly.com", "dandikmail.com", "dayrep.com", "dbunker.com", "dcemail.com", "deadaddress.com", "deadchildren.org", "deadfake.cf", "deadfake.ga", "deadfake.ml", "deadfake.tk", "deadspam.com", "deagot.com", "dealja.com", "despam.it", "despammed.com", "devnullmail.com", "dfgh.net", "dharmatel.net", "digitalsanctuary.com", "dingbone.com", "discard.cf", "discard.email", "discard.ga", "discard.gq", "discard.ml", "discard.tk", "discardmail.com", "discardmail.de", "disposable-email.ml", "disposable.cf", "disposable.ga", "disposable.ml", "disposableaddress.com", "disposableemailaddresses.com", "disposableemailaddresses.emailmiser.com", "disposableinbox.com", "dispose.it", "disposeamail.com", "disposemail.com", "dispostable.com", "divermail.com", "dlemail.ru", "dm.w3internet.co.uk", "dodgeit.com", "dodgit.com", "dodgit.org", "dodsi.com", "doiea.com", "domforfb1.tk", "domforfb2.tk", "domforfb3.tk", "domforfb4.tk", "domforfb5.tk", "domforfb6.tk", "domforfb7.tk", "domforfb8.tk", "domforfb9.tk", "domozmail.com", "donemail.ru", "dontreg.com", "dontsendmespam.de", "dotmsg.com", "drdrb.com", "drdrb.net", "droplar.com", "dropmail.me", "duam.net", "dudmail.com", "dump-email.info", "dumpandjunk.com", "dumpmail.de", "dumpyemail.com", "duskmail.com", "dw.now.im", "dx.abuser.eu", "dx.allowed.org", "dx.awiki.org", "dx.ez.lv", "dx.sly.io", "e-mail.com", "e-mail.org", "e4ward.com", "easytrashmail.com", "ee2.pl", "eelmail.com", "einrot.com", "einrot.de", "email-fake.cf", "email-fake.ga", "email-fake.gq", "email-fake.ml", "email-fake.tk", "email.cbes.net", "email60.com", "emailage.cf", "emailage.ga", "emailage.gq", "emailage.ml", "emailage.tk", "emaildienst.de", "emailgo.de", "emailias.com", "emailigo.de", "emailinfive.com", "emailisvalid.com", "emaillime.com", "emailmiser.com", "emailproxsy.com", "emails.ga", "emailsensei.com", "emailspam.cf", "emailspam.ga", "emailspam.gq", "emailspam.ml", "emailspam.tk", "emailtemporar.ro", "emailtemporario.com.br", "emailthe.net", "emailtmp.com", "emailto.de", "emailwarden.com", "emailx.at.hm", "emailxfer.com", "emailz.cf", "emailz.ga", "emailz.gq", "emailz.ml", "emeil.in", "emeil.ir", "emil.com", "emkei.cf", "emkei.ga", "emkei.gq", "emkei.ml", "emkei.tk", "eml.pp.ua", "emz.net", "enterto.com", "ephemail.net", "est.une.victime.ninja", "etranquil.com", "etranquil.net", "etranquil.org", "evopo.com", "explodemail.com", "eyepaste.com", "facebook-email.cf", "facebook-email.ga", "facebook-email.ml", "facebookmail.gq", "facebookmail.ml", "fake-email.pp.ua", "fake-mail.cf", "fake-mail.ga", "fake-mail.ml", "fakeinbox.cf", "fakeinbox.com", "fakeinbox.ga", "fakeinbox.ml", "fakeinbox.tk", "fakeinformation.com", "fakemail.fr", "fakemailgenerator.com", "fakemailz.com", "fammix.com", "fansworldwide.de", "fantasymail.de", "fastacura.com", "fastchevy.com", "fastchrysler.com", "fastkawasaki.com", "fastmazda.com", "fastmitsubishi.com", "fastnissan.com", "fastsubaru.com", "fastsuzuki.com", "fasttoyota.com", "fastyamaha.com", "fatflap.com", "fdfdsfds.com", "fightallspam.com", "fiifke.de", "filzmail.com", "fixmail.tk", "fizmail.com", "fleckens.hu", "flemail.ru", "flurred.com", "flyspam.com", "footard.com", "forgetmail.com", "fornow.eu", "fr33mail.info", "frapmail.com", "free-email.cf", "free-email.ga", "freemail.ms", "freemails.cf", "freemails.ga", "freemails.ml", "freundin.ru", "friendlymail.co.uk", "front14.org", "fuckingduh.com", "fudgerub.com", "fun64.com", "fux0ringduh.com", "fw.moza.pl", "g.hmail.us", "garliclife.com", "gawab.com", "gelitik.in", "get-mail.cf", "get-mail.ga", "get-mail.ml", "get-mail.tk", "get.pp.ua", "get1mail.com", "get2mail.fr", "getairmail.cf", "getairmail.com", "getairmail.ga", "getairmail.gq", "getairmail.ml", "getairmail.tk", "getmails.eu", "getonemail.com", "getonemail.net", "ghosttexter.de", "girlsundertheinfluence.com", "gishpuppy.com", "go.irc.so", "go2usa.info", "goemailgo.com", "gorillaswithdirtyarmpits.com", "gotmail.com", "gotmail.net", "gotmail.org", "gotti.otherinbox.com", "gowikibooks.com", "gowikicampus.com", "gowikicars.com", "gowikifilms.com", "gowikigames.com", "gowikimusic.com", "gowikinetwork.com", "gowikitravel.com", "gowikitv.com", "grandmamail.com", "grandmasmail.com", "great-host.in", "greensloth.com", "grr.la", "gsrv.co.uk", "guerillamail.biz", "guerillamail.com", "guerillamail.net", "guerillamail.org", "guerrillamail.biz", "guerrillamail.com", "guerrillamail.de", "guerrillamail.net", "guerrillamail.org", "guerrillamailblock.com", "gustr.com", "h.mintemail.com", "h8s.org", "hacccc.com", "haltospam.com", "harakirimail.com", "hartbot.de", "hatespam.org", "hellodream.mobi", "herp.in", "hidemail.de", "hidzz.com", "hmamail.com", "hochsitze.com", "hopemail.biz", "hot-mail.cf", "hot-mail.ga", "hot-mail.gq", "hot-mail.ml", "hot-mail.tk", "hotpop.com", "hulapla.de", "humn.ws.gy", "ieatspam.eu", "ieatspam.info", "ieh-mail.de", "ihateyoualot.info", "iheartspam.org", "ikbenspamvrij.nl", "imails.info", "imgof.com", "imstations.com", "inbax.tk", "inbound.plus", "inbox.si", "inboxalias.com", "inboxclean.com", "inboxclean.org", "inboxproxy.com", "incognitomail.com", "incognitomail.net", "incognitomail.org", "insorg-mail.info", "instant-mail.de", "instantemailaddress.com", "ip4.pp.ua", "ip6.pp.ua", "ipoo.org", "irish2me.com", "iroid.com", "iwi.net", "jetable.com", "jetable.fr.nf", "jetable.net", "jetable.org", "jnxjn.com", "jobbikszimpatizans.hu", "jourrapide.com", "jp.ftp.sh", "jsrsolutions.com", "junk1e.com", "junkmail.ga", "junkmail.gq", "kasmail.com", "kaspop.com", "keepmymail.com", "killmail.com", "killmail.net", "kimsdisk.com", "kingsq.ga", "kir.ch.tc", "klassmaster.com", "klassmaster.net", "klzlk.com", "kook.ml", "koszmail.pl", "kulturbetrieb.info", "kurzepost.de", "l33r.eu", "labetteraverouge.at", "lackmail.net", "lags.us", "landmail.co", "lastmail.co", "lastmail.com", "lazyinbox.com", "letthemeatspam.com", "lhsdv.com", "lifebyfood.com", "link2mail.net", "litedrop.com", "loadby.us", "loan101.pro", "login-email.cf", "login-email.ga", "login-email.ml", "login-email.tk", "loh.pp.ua", "lol.ovpn.to", "lookugly.com", "lopl.co.cc", "lortemail.dk", "lovemeleaveme.com", "lr7.us", "lr78.com", "lroid.com", "luv2.us", "m.ddcrew.com", "m4ilweb.info", "maboard.com", "mail-filter.com", "mail-temporaire.fr", "mail.by", "mail.mezimages.net", "mail114.net", "mail2rss.org", "mail333.com", "mail4trash.com", "mailbidon.com", "mailblocks.com", "mailbucket.org", "mailcat.biz", "mailcatch.com", "maildrop.cc", "maildrop.cf", "maildrop.ga", "maildrop.gq", "maildrop.ml", "maildx.com", "maileater.com", "mailed.ro", "mailexpire.com", "mailfa.tk", "mailforspam.com", "mailfree.ga", "mailfree.gq", "mailfree.ml", "mailfreeonline.com", "mailfs.com", "mailguard.me", "mailimate.com", "mailin8r.com", "mailinater.com", "mailinator.com", "mailinator.gq", "mailinator.net", "mailinator.org", "mailinator.us", "mailinator2.com", "mailincubator.com", "mailismagic.com", "mailjunk.cf", "mailjunk.ga", "mailjunk.gq", "mailjunk.ml", "mailjunk.tk", "mailmate.com", "mailme.gq", "mailme.ir", "mailme.lv", "mailme24.com", "mailmetrash.com", "mailmoat.com", "mailnator.com", "mailnesia.com", "mailnull.com", "mailpick.biz", "mailproxsy.com", "mailquack.com", "mailrock.biz", "mailsac.com", "mailscrap.com", "mailseal.de", "mailshell.com", "mailsiphon.com", "mailslapping.com", "mailslite.com", "mailtemp.info", "mailtothis.com", "mailzi.ru", "mailzilla.com", "mailzilla.org", "mailzilla.orgmbx.cc", "makemetheking.com", "manifestgenerator.com", "manybrain.com", "mbx.cc", "mciek.com", "mega.zik.dj", "meinspamschutz.de", "meltmail.com", "messagebeamer.de", "mezimages.net", "mfsa.ru", "mierdamail.com", "migmail.net", "migmail.pl", "migumail.com", "mintemail.com", "mjukglass.nu", "moakt.com", "mobi.web.id", "mobileninja.co.uk", "moburl.com", "mohmal.com", "moncourrier.fr.nf", "monemail.fr.nf", "monmail.fr.nf", "monumentmail.com", "mor19.uu.gl", "ms9.mailslite.com", "msa.minsmail.com", "mt2009.com", "mt2014.com", "mx0.wwwnew.eu", "my.efxs.ca", "my10minutemail.com", "mycleaninbox.net", "myemailboxy.com", "mymail-in.net", "mymailoasis.com", "mynetstore.de", "mypacks.net", "mypartyclip.de", "myphantomemail.com", "myspaceinc.com", "myspaceinc.net", "myspaceinc.org", "myspacepimpedup.com", "myspamless.com", "mytemp.email", "mytempemail.com", "mytrashmail.com", "neomailbox.com", "nepwk.com", "nervmich.net", "nervtmich.net", "netmails.com", "netmails.net", "netzidiot.de", "neverbox.com", "nice-4u.com", "nmail.cf", "no-spam.ws", "nobulk.com", "noclickemail.com", "nogmailspam.info", "nomail.xl.cx", "nomail2me.com", "nomorespamemails.com", "nonspam.eu", "nonspammer.de", "noref.in", "nospam.wins.com.br", "nospam.ze.tc", "nospam4.us", "nospamfor.us", "nospamthanks.info", "notmailinator.com", "notsharingmy.info", "nowhere.org", "nowmymail.com", "ntlhelp.net", "nurfuerspam.de", "nus.edu.sg", "nutpa.net", "nwldx.com", "objectmail.com", "obobbo.com", "odaymail.com", "olypmall.ru", "one-time.email", "oneoffemail.com", "oneoffmail.com", "onewaymail.com", "online.ms", "oopi.org", "opayq.com", "ordinaryamerican.net", "oshietechan.link", "otherinbox.com", "ourklips.com", "outlawspam.com", "ovpn.to", "owlpic.com", "pancakemail.com", "paplease.com", "pcusers.otherinbox.com", "pepbot.com", "pfui.ru", "phpbb.uu.gl", "pimpedupmyspace.com", "pjjkp.com", "plexolan.de", "po.bot.nu", "poczta.onet.pl", "poh.pp.ua", "politikerclub.de", "poofy.org", "pookmail.com", "postacin.com", "privacy.net", "privy-mail.com", "privymail.de", "proxymail.eu", "prtnx.com", "prtz.eu", "punkass.com", "putthisinyourspamdatabase.com", "pwrby.com", "qasti.com", "qisdo.com", "qisoa.com", "qs.dp76.com", "quickinbox.com", "quickmail.nl", "radiku.ye.vc", "rcpt.at", "reallymymail.com", "receiveee.chickenkiller.com", "receiveee.com", "recode.me", "reconmail.com", "recursor.net", "recyclemail.dk", "regbypass.com", "regbypass.comsafe-mail.net", "rejectmail.com", "remail.cf", "remail.ga", "rhyta.com", "rk9.chickenkiller.com", "rklips.com", "rmqkr.net", "royal.net", "rppkn.com", "rtrtr.com", "ruffrey.com", "rx.dred.ru", "rx.qc.to", "s0ny.net", "safe-mail.net", "safersignup.de", "safetymail.info", "safetypost.de", "sandelf.de", "saynotospams.com", "scatmail.com", "schafmail.de", "selfdestructingmail.com", "selfdestructingmail.org", "sendspamhere.com", "sharedmailbox.org", "sharklasers.com", "shieldedmail.com", "shiftmail.com", "shitmail.de", "shitmail.me", "shitmail.org", "shitware.nl", "shortmail.net", "shotmail.ru", "showslow.de", "sibmail.com", "sinnlos-mail.de", "siteposter.net", "skeefmail.com", "slaskpost.se", "slave-auctions.net", "slopsbox.com", "slushmail.com", "smashmail.de", "smellfear.com", "smellrear.com", "snakemail.com", "sneakemail.com", "snkmail.com", "sofimail.com", "sofort-mail.de", "softpls.asia", "sogetthis.com", "sohu.com", "soisz.com", "solvemail.info", "soodomail.com", "soodonims.com", "spam-be-gone.com", "spam.la", "spam.su", "spam4.me", "spamavert.com", "spambob.com", "spambob.net", "spambob.org", "spambog.com", "spambog.de", "spambog.net", "spambog.ru", "spambooger.com", "spambox.info", "spambox.irishspringrealty.com", "spambox.us", "spamcannon.com", "spamcannon.net", "spamcero.com", "spamcon.org", "spamcorptastic.com", "spamcowboy.com", "spamcowboy.net", "spamcowboy.org", "spamday.com", "spamdecoy.net", "spamex.com", "spamfighter.cf", "spamfighter.ga", "spamfighter.gq", "spamfighter.ml", "spamfighter.tk", "spamfree.eu", "spamfree24.com", "spamfree24.de", "spamfree24.eu", "spamfree24.info", "spamfree24.net", "spamfree24.org", "spamgoes.in", "spamgourmet.com", "spamgourmet.net", "spamgourmet.org", "spamherelots.com", "spamhereplease.com", "spamhole.com", "spamify.com", "spaminator.de", "spamkill.info", "spaml.com", "spaml.de", "spammotel.com", "spamobox.com", "spamoff.de", "spamsalad.in", "spamslicer.com", "spamspot.com", "spamstack.net", "spamthis.co.uk", "spamthisplease.com", "spamtrail.com", "spamtroll.net", "speed.1s.fr", "spikio.com", "spoofmail.de", "spybox.de", "squizzy.de", "sr.ro.lt", "ss.undo.it", "ssoia.com", "startkeys.com", "stinkefinger.net", "stop-my-spam.cf", "stop-my-spam.com", "stop-my-spam.ga", "stop-my-spam.ml", "stop-my-spam.tk", "streetwisemail.com", "stuffmail.de", "sudolife.me", "sudolife.net", "sudomail.biz", "sudomail.com", "sudomail.net", "sudoverse.com", "sudoverse.net", "sudoweb.net", "sudoworld.com", "sudoworld.net", "supergreatmail.com", "supermailer.jp", "superrito.com", "superstachel.de", "suremail.info", "svk.jp", "sweetxxx.de", "t.psh.me", "tafmail.com", "tagyourself.com", "talkinator.com", "tapchicuoihoi.com", "teewars.org", "teleworm.com", "teleworm.us", "temp-mail.com", "temp-mail.de", "temp-mail.org", "temp.bartdevos.be", "temp.emeraldwebmail.com", "temp.headstrong.de", "tempail.com", "tempalias.com", "tempe-mail.com", "tempemail.biz", "tempemail.co.za", "tempemail.com", "tempemail.net", "tempinbox.co.uk", "tempinbox.com", "tempmail.co", "tempmail.it", "tempmail2.com", "tempmaildemo.com", "tempmailer.com", "tempomail.fr", "temporarily.de", "temporarioemail.com.br", "temporaryemail.net", "temporaryemail.us", "temporaryforwarding.com", "temporaryinbox.com", "tempsky.com", "tempthe.net", "tempymail.com", "thanksnospam.info", "thankyou2010.com", "thecloudindex.com", "thisisnotmyrealemail.com", "thrma.com", "throam.com", "thrott.com", "throwawayemailaddress.com", "throwawaymail.com", "tilien.com", "tittbit.in", "tmail.ws", "tmailinator.com", "toiea.com", "toomail.biz", "tradermail.info", "trash-amil.com", "trash-mail.at", "trash-mail.cf", "trash-mail.com", "trash-mail.de", "trash-mail.ga", "trash-mail.gq", "trash-mail.ml", "trash-mail.tk", "trash2009.com", "trash2010.com", "trash2011.com", "trashdevil.com", "trashdevil.de", "trashemail.de", "trashmail.at", "trashmail.com", "trashmail.de", "trashmail.me", "trashmail.net", "trashmail.org", "trashmail.ws", "trashmailer.com", "trashymail.com", "trashymail.net", "trayna.com", "trbvm.com", "trbvn.com", "trbvo.com", "trickmail.net", "trillianpro.com", "tryalert.com", "turoid.com", "turual.com", "twinmail.de", "twoweirdtricks.com", "ty.ceed.se", "tyldd.com", "ubismail.net", "uggsrock.com", "umail.net", "unmail.ru", "upliftnow.com", "uplipht.com", "uroid.com", "username.e4ward.com", "ux.dob.jp", "ux.uk.to", "valemail.net", "venompen.com", "veryrealemail.com", "vfemail.net", "vidchart.com", "viditag.com", "viewcastmedia.com", "viewcastmedia.net", "viewcastmedia.org", "vkcode.ru", "vomoto.com", "vps30.com", "vp.ycare.de", "vubby.com", "walala.org", "walkmail.net", "walkmail.ru", "we.qq.my", "webemail.me", "webm4il.info", "webuser.in", "wee.my", "wefjo.grn.cc", "weg-werf-email.de", "wegwerf-email-addressen.de", "wegwerf-emails.de", "wegwerfadresse.de", "wegwerfemail.de", "wegwerfmail.de", "wegwerfmail.info", "wegwerfmail.net", "wegwerfmail.org", "wegwerpmailadres.nl", "wetrainbayarea.com", "wetrainbayarea.org", "wh4f.org", "whatiaas.com", "whatpaas.com", "whatsaas.com", "whopy.com", "whtjddn.33mail.com", "whyspam.me", "wickmail.net", "wilemail.com", "willselfdestruct.com", "winemaven.info", "wmail.cf", "wollan.info", "wovz.cu.cc", "wr.moeri.org", "wronghead.com", "wuzup.net", "wuzupmail.net", "www.e4ward.com", "www.gishpuppy.com", "www.mailinator.com", "wwwnew.eu", "xagloo.com", "xemaps.com", "xents.com", "xing886.uu.gl", "xmaily.com", "xoxox.cc", "xoxy.net", "xww.ro", "xyzfree.net", "yapped.net", "yeah.net", "yep.it", "yert.ye.vc", "yogamaven.com", "yomail.info", "yopmail.com", "yopmail.fr", "yopmail.gq", "yopmail.net", "youmail.ga", "ypmail.webarnak.fr.eu.org", "yuurok.com", "za.com", "ze.gally.jp", "zehnminutenmail.de", "zetmail.com", "zippymail.info", "zoaxe.com", "zoemail.com", "zoemail.net", "zoemail.org", "zomg.info", "zxcv.com", "zxcvbnm.com", "zzz.com"]; $mail = explode('@', $email)[1]; return in_array($mail, $emailList); } public function isRegistered($email) { $registered = $this->db->query('SELECT * FROM users WHERE email = ?', [$email])->result_array(); return !empty($registered); } public function isAvailable($username) { $registered = $this->db->query('SELECT * FROM users WHERE username = lower(?) OR original_name = lower(?)', [$username, $username])->result_array(); if (empty($registered)) { return ''; } return '
Fehler bei der Eingabe! Nutzername ist bereits vergeben!
'; } public function register($username, $email, $password, $login_method) { $encryptedPassword = $this->LoginModel->getPasswordHash($password, strtolower($username)); $activation_key = hash("sha512", uniqid(rand(), true)) . hash("sha512", uniqid(rand(), true)); $this->db->query('INSERT INTO users (original_name, username, displayname, login_method, password, email, rank, is_activated, activation_key) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)', [strtolower($username), strtolower($username), $username, $login_method, $encryptedPassword, $email, 1, false, $activation_key]); $this->db->cache_delete('admin', 'users'); // TODO: TRANSLATE $message = "Hallo, bitte aktiviere deinen Account: " . base_url('activate/' . md5($email) . '/' . $activation_key); // TODO: Send email mail($email, "Registrierung auf KingOfDog.eu", $message); // Send notification $createdUser = $this->db->query('SELECT ID FROM users WHERE username = ?', [$username])->result_array(); $this->NotificationModel->rankNotificationNewUserRegistered($createdUser[0]['ID'], 10); } public function autoLogin() { if (isset($_SESSION['loggedOut']) && $_SESSION['loggedOut']) { return; } if (!isset($_SESSION['user']) && isset($_COOKIE['rememberMe']) && isset($_COOKIE['token'])) { $logindata = $this->getLoginData(base64_decode($_COOKIE['rememberMe'])); if (!empty($logindata)) { $logindata = $logindata[0]; $token = $this->getUserHash($logindata['username'], $logindata['password'], $logindata['email'], $logindata['ID']); if ($_COOKIE['token'] == $token) { $this->startLoginSession($logindata, 'on'); } } } } public function hashMailExists($emailHash, $activation_key) { $results = $this->db->query('SELECT ID FROM users WHERE MD5(email) = ? AND is_activated = 0 AND activation_key = ?', [$emailHash, $activation_key])->result_array(); if (!empty($results)) { return $results[0]['ID']; } else { return NULL; } } public function activateMail($id) { $this->db->query('UPDATE users SET is_activated = 1, activation_key = NULL WHERE ID = ? LIMIT 1', [$id]); // Clear cached queries $username = $this->db->query('SELECT username FROM users WHERE ID = ?', [$id])->result_array(); $this->db->cache_delete('admin', 'users'); $this->db->cache_delete('users', $username[0]['username']); } public function changeMailAddress($email, $username) { $activation_key = hash("sha512", uniqid(rand(), true)) . hash("sha512", uniqid(rand(), true)); $this->db->query('UPDATE users SET email = lower(?), is_activated = FALSE, activation_key = ? WHERE username = ?', [$email, $activation_key, $username]); $this->db->cache_delete('admin', 'users'); } public function changePassword($newPassword, $original_name) { $encryptedPassword = $this->getPasswordHash($newPassword, $original_name); $this->db->query('UPDATE users SET password = ? WHERE original_name = ?', [$encryptedPassword, $original_name]); } public function checkPassword($password) { if (!$this->checkPasswordLength($password) || !$this->checkPasswordComposition($password)) { return false; } return true; } public function checkPasswordLength($password) { return strlen($password) >= 8; } public function checkPasswordComposition($password) { $passwordArr = str_split($password); $lower = $upper = $num = $special = 0; foreach ($passwordArr as $char) { if ($char >= 'a' && $char <= 'z') { $lower++; continue; } if ($char >= 'A' && $char <= 'Z') { $upper++; continue; } if ($char >= '0' && $char <= '9') { $num++; continue; } $special++; } return $lower > 0 && $upper > 0 && $num > 0 && $special > 0; } public function createForgetPasswordKey($username) { $activation_key = hash("sha512", uniqid(rand(), true)) . hash("sha512", uniqid(rand(), true)); $this->db->query('UPDATE users SET forget_password_key = ? WHERE username = ?', [$activation_key, $username]); return $activation_key; } public function resetKeyIsValid($username, $resetKey) { $result = $this->db->query('SELECT forget_password_key FROM users WHERE username = ?', [$username])->result_array(); return !empty($result) && $result[0]['forget_password_key'] == $resetKey; } public function unsetResetKey($id) { $this->db->query('UPDATE users SET forget_password_key = NULL WHERE ID = ?', [$id]); } }