Palme Skrevet 7. juli 2008 Del Skrevet 7. juli 2008 (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 7. juli 2008 av Palme Lenke til kommentar
Palme Skrevet 7. juli 2008 Forfatter Del Skrevet 7. juli 2008 Jeg gjorde bare slik: if ( $id != $_SESSION['$bid'] ) { header("Location: ../logout.php"); } Lenke til kommentar
Wackamole Skrevet 7. juli 2008 Del Skrevet 7. juli 2008 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") } Lenke til kommentar
Jonas Skrevet 7. juli 2008 Del Skrevet 7. juli 2008 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? Lenke til kommentar
Wackamole Skrevet 7. juli 2008 Del Skrevet 7. juli 2008 (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 7. juli 2008 av Famen Lenke til kommentar
Jonas Skrevet 7. juli 2008 Del Skrevet 7. juli 2008 (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 7. juli 2008 av Jonas Lenke til kommentar
Wackamole Skrevet 7. juli 2008 Del Skrevet 7. juli 2008 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. Lenke til kommentar
Jonas Skrevet 7. juli 2008 Del Skrevet 7. juli 2008 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. Lenke til kommentar
Lokaltog Skrevet 7. juli 2008 Del Skrevet 7. juli 2008 (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? Edit: Så at problemet var løst nå. Never mind. Endret 7. juli 2008 av Lokaltog Lenke til kommentar
Ernie Skrevet 7. juli 2008 Del Skrevet 7. juli 2008 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. Lenke til kommentar
Lokaltog Skrevet 8. juli 2008 Del Skrevet 8. juli 2008 (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 8. juli 2008 av Lokaltog Lenke til kommentar
Wackamole Skrevet 8. juli 2008 Del Skrevet 8. juli 2008 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. Lenke til kommentar
Palme Skrevet 9. juli 2008 Forfatter Del Skrevet 9. juli 2008 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. Lenke til kommentar
Ernie Skrevet 9. juli 2008 Del Skrevet 9. juli 2008 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. Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå