Programim dhe zhvillim, javascript, python, php, html

isset dhe if funksion në php me ose operator

Unë kam disa kode PHP për të kontrolluar statusin e hyrjes së përdoruesit, i cili kontrollon nëse variablat e sesionit janë vendosur ose skedarët e skedarëve. Nëse secili prej kushteve është i vërtetë, atëherë leja e madhe përndryshe ridrejtohet në faqen e hyrjes. Kodi duket si ky:

if(isset($_SESSION["userid"]) || isset($_COOKIE["userid"]) && isset($_SESSION["username"]) || isset($_COOKIE["username"])  && isset($_SESSION["password"]) || isset($_COOKIE["password"])){
} else {
header("location : register.php");
}

Problemi është se nëse sesioni shkatërrohet (duke mbyllur shfletuesin ose ndonjë arsye tjetër), ai ridrejton përdoruesin në faqen e hyrjes. Por ajo që duhet të bëjë është të lexojë të dhënat e cookie-ve dhe t'i japë përdoruesit akses pasi kukit janë ende të pranishëm (kam kontrolluar që cookie-t janë ende të pranishme nga të dhënat e echo cookies).

02.04.2016

  • Kur ta publikoni atë kod, a mund të më jepni një lidhje? Unë do të provoj diçka. 02.04.2016
  • Ju rekomandoj seriozisht të mësoni më shumë rreth OOP ose të përdorni një kornizë si Slim ose Silex. phptherightway.com 02.04.2016
  • Jo vetëm OOP, por edhe siguria. Sidomos ku të përdorni cookie-t, të besoni kukit dhe çfarë të mos ruani në cookie. shih: || (isset($_COOKIE["userid"]) && isset($_COOKIE["username"]) && isset($_COOKIE["password"])) 02.04.2016

Përgjigjet:


1

Duhet ta ndryshoni pak gjendjen tuaj sepse po e ngatërroni brenda SESSION dhe Cookie. Bashkojini ato me && dhe ndajini me || si më poshtë:-

if((isset($_SESSION["userid"]) &&  isset($_SESSION["username"]) && isset($_SESSION["password"])) || (isset($_COOKIE["userid"]) && isset($_COOKIE["username"])  && isset($_COOKIE["password"]))){

    // your action that you want

} else {

   header("location : register.php");
}

Shënim:- Kujdesuni që të njëjtat gjëra të zbatohen kudo (në faqet dhe kushtet e njëra-tjetrës), përndryshe do të përballeni me problem.

Gjithashtu varësia më e madhe nga cookie nuk është e mirë, sepse ajo mund të ndryshohet nga përdoruesi në çdo kohë.

02.04.2016

2

&& ka një përparësi më të lartë se ||, kështu që ju duhet të ruani || me kllapa. Gjithashtu, të kesh një deklaratë bosh if është thjesht e tepërt:

if(!(isset($_SESSION["userid"]) || isset($_COOKIE["userid"]) ||   
   !(isset($_SESSION["username"]) || isset($_COOKIE["username"])) || 
   !(isset($_SESSION["password"]) || isset($_COOKIE["password"]))) {
    header("location : register.php");
}
02.04.2016

3

Ju duhet të shtoni disa ndërprerës për të grupuar deklaratat tuaja si kjo:

    if( 
    ( isset($_SESSION["userid"]) || isset($_SESSION["username"]) && isset($_SESSION["password"]) ) 
||
    ( isset($_COOKIE["userid"]) || isset($_COOKIE["username"]) && isset($_COOKIE["password"]) )
){
    // Your action
} else {
header("location : register.php");
}

Një deklaratë e tillë do të kontrollojë nëse është vendosur COOKIE ose SESSION dhe kontrolloni ose user_id ose emrin e përdoruesit DHE fjalëkalimin. Nëse keni nevojë DHE user_id DHE emrin e përdoruesit, atëherë zëvendësoni || në kllapa midis funksioneve isset() për këto fusha.

02.04.2016

4

Mendoj se kushtit tuaj if i mungon disa kllapa. Për ta bërë kodin tuaj më të lexueshëm, mund të krijoni dy funksione

function isSessionValid()
{
    return isset($_SESSION["userid"]) && isset($_SESSION["username"]) && isset($_SESSION["password"]);
}

function isCookieValid()
{
    return isset($_COOKIE["userid"]) && isset($_COOKIE["username"]) && isset($_COOKIE["password"]);
}

dhe më pas përdorni këto funksione në deklaratën tuaj if:

if (isSessionValid() || isCookieValid()) {

} else {

}
02.04.2016
Materiale të reja

Masterclass Coroutines: Kapitulli-3: Anulimi i korutinave dhe trajtimi i përjashtimeve.
Mirë se vini në udhëzuesin gjithëpërfshirës mbi Kotlin Coroutines! Në këtë seri artikujsh, unë do t'ju çoj në një udhëtim magjepsës, duke filluar nga bazat dhe gradualisht duke u thelluar në..

Faketojeni derisa ta arrini me të dhënat false
A e gjeni ndonjëherë veten duke ndërtuar një aplikacion të ri dhe keni nevojë për të dhëna testimi që duken dhe duken më realiste ose një grup i madh të dhënash për performancën e ngarkesës...

Si të përdorni kërkesën API në Python
Kërkesë API në GitHub për të marrë depot e përdoruesve duke përdorur Python. Në këtë artikull, unë shpjegoj procesin hap pas hapi për të trajtuar një kërkesë API për të marrë të dhëna nga..

Një udhëzues hap pas hapi për të zotëruar React
Në këtë artikull, do të mësoni se si të krijoni aplikacionin React, do të mësoni se si funksionon React dhe konceptet thelbësore që duhet të dini për të ndërtuar aplikacione React. Learning..

AI dhe Psikologjia — Pjesa 2
Në pjesën 2 të serisë sonë të AI dhe Psikologji ne diskutojmë se si makineritë mbledhin dhe përpunojnë të dhëna për të mësuar emocione dhe ndjenja të ndryshme në mendjen e njeriut, duke ndihmuar..

Esencialet e punës ditore të kodit tim VS
Shtesat e mia të preferuara - Git Graph 💹 Kjo shtesë është vërtet e mahnitshme, e përdor përpara se të filloj të punoj për të kontrolluar dy herë ndryshimet dhe degët më të fundit, mund të..

Pse Python? Zbulimi i fuqisë së gjithanshme të një gjiganti programues
Në peizazhin gjithnjë në zhvillim të gjuhëve të programimit, Python është shfaqur si një forcë dominuese. Rritja e tij meteorike nuk është rastësi. Joshja e Python qëndron në thjeshtësinë,..