Gå til innhold

[løst]Sjekke forskjellige ID'er


Anbefalte innlegg

Skrevet (endret)

Jeg lurer på hvordan jeg kan sammenligne to forskjellige id'er; en $_SESSION['$bID'] og en vanlig $ID som blir hentet fra en database.

 

Jeg vil at dersom disse to ikke stemmer(er like) at brukeren blir kastet tilbake til den siden brukeren kom fra. Eller at dersom disse to ID'ene er like får brukeren fortsette.

Endret av Palme
Videoannonse
Annonse
Skrevet

Det er faktisk feil:

 

//Her setter man $sessID til og være det samme som $_SESSION['$bid']
$sessID = $_SESSION['$bid'];
//Her spørrer man om $id ikke er lik $sessID
if ($id !== $sessID)
{
header("Location: http://www.dittdomene.no/logout.php")
}

Skrevet

Da må jeg nesten spørre - Famen - Hvilken forskjell utgjør det å først kopiere innholdet og deretter sjekke det? Hvorfor er noe annet feil?

Skrevet (endret)

Det var for og gjøre koden litt mer ryddig, hvis du ser godt nok etter - Jonas - så ser du at det er ikke eneste endringen jeg har gjort!

Endret av Famen
Skrevet (endret)

Du har skrevet en strict comparison istedenfor en vanlig loose, prøver du å si at det er mer riktig?

 

Edit: Det å kopiere innholdet var jammen et tragisk forsøk på å gjøre to linjer med kode mer ryddig.

Endret av Jonas
Skrevet
Du har skrevet en strict comparison istedenfor en vanlig loose, prøver du å si at det er mer riktig?

 

Ja, i dette tilfellet vil jeg si at det er mer riktig og sjekke om det er samme type.

 

jeg skrev den ekstra linjen med kode, for at det skal være mulig og bruke ID'en som er satt med session, igjen i scriptet, uten å måtte skrive $_SESSION['$bid]; gjennom hele.

Skrevet

Type comparison i dette tilfellet gjør INGEN TING mer enn hva vanlig gjør. Kan samtidig si at kode ikke blir i nærheten av ryddigere dersom du kopierer innholdet til en variabel med kortere navn - tvert imot. Kopiere du variabelinnholdet er det nesten implisert at det er en grunn til det, f.eks. dersom det skal fungerer som et buffer, men når alt du er ute etter er kortere variabelnavn så skaper det bare forvirring.

 

Du sa til å begynne med at Palme's kode var direkte feil, men det er hva som er feil.

Skrevet (endret)

Haha, djeezes. Jeg støtter Jonas 100% her - det er totalt meningsløst å korrigere koden til strict comparison og å kopiere variabelen til en annen variabel. Det er greit å lage en referanse til en session-variabel hvis man skal bruke variabelen mange flere ganger gjennom scriptet og man ikke gidder å bruke hele variabelnavnet - i alle andre tilfeller blir det bare mer unødvendig kode og ressursbruk. KISS.

 

Til trådstarter: Det er vanskelig å hjelpe deg uten å se hvordan du setter session-variabelen $bid. Og det er riktig som du gjør, det krever ikke mer enn if($var1 != $var2) { header(...); } for å oppnå målet ditt. Hva er problemet egentlig? :p

 

Edit: Så at problemet var løst nå. Never mind. :p

Endret av Lokaltog
Skrevet

Selv om jeg forsåvidt er enig så er ikke identical comparison helt meningsløst. Identical vs. equal comparison er opphav til en hel del merkelige ting. Ta f.eks følgende:

  'false' == true  => true
 'false' == false => false
 'false' == 0	 => true
  false  == 0	 => true

Altså, strengen false kan både være true og 0 alt etter som hva man sammenligner med. Det gjelder forøvrig stort sett alle andre strenger også. Uannsett, det er langt fra logisk at det er slik, og faktisk litt forvirrende til tider. Identical comparison rydder opp i slikt og gjør at man lett kan se hva resultatet av en sammenligning vil være (gitt at man kjenner verdiene til innvolverte variabler). Dette enkler debugging. Selv om det er lite sannsynliget kunne det i dette tilfellet vært slik at man er offer for denne type ulogiske greier. Derfor er det ikke bare å riste oppgitt på hodet og mene at det er totalt unødvendig å utføre identical comparison. Det vil tross alt ikke medføre noen skade/problemer, bare i enkelte tilfeller en mer logisk sammenligning.

Skrevet (endret)

Ser poenget ditt, Ernie. Det jeg reagerte mest på var ordlyden i innlegget til Famen:

Det er faktisk feil: *korrigere til strict/identical comparison*
Endret av Lokaltog
Skrevet
Ser poenget ditt, Ernie. Det jeg reagerte mest på var ordlyden i innlegget til Famen:
Det er faktisk feil: *korrigere til strict/identical comparison*

 

hehe :)

 

Var kanskje litt streng, men det er slik jeg er blitt lært og sammenligne :)

 

unnskyld til trådstarter hvis du tok deg nær av det jeg sa, jeg mener bare selv at det blir (litt) mer riktig og bruke strict comparison.

Skrevet

;)

 

Som du helt sikkert skjønner av det latterlig enkle spørsmålet mitt, så har jeg ikke allverdens erfaring enda, og da hjelper det ofte med litt stål-disiplin fra noen som har litt mer peil.

Skrevet
Ser poenget ditt, Ernie. Det jeg reagerte mest på var ordlyden i innlegget til Famen:
Det er faktisk feil: *korrigere til strict/identical comparison*

Ahh ... vel, det var vel å overdrive litt ja.

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...