Kapli Skrevet 25. mai 2008 Skrevet 25. mai 2008 (endret) Hei, vet det er noe galt med koden min siden den funker ikke helt .. http://pastebin.com/m39954e5a Takker for alle svar Endret 25. mai 2008 av Kapli
Haraldson Skrevet 25. mai 2008 Skrevet 25. mai 2008 Emnetittelen i denne tråden er lite beskrivende for trådens innhold og det er derfor ingen god emnetittel. Jo bedre og mer beskrivende emnetittelen er, jo lettere er det for andre å skjønne trådens innhold og det vil være lettere å treffe den riktige forumbrukeren med det rette svaret. Ber deg derfor om å endre emnetittel slik at du unngår at en moderator stenger tråden. Vennligst forsøk å ha dette i tankene neste gang du starter en tråd, og orienter deg om hva vår nettikette sier om dårlig bruk av emnetitler. Bruk -knappen i første post for å endre emnetittelen. (Dette innlegget vil bli fjernet ved endring av emnetittel. Ikke kommenter dette innlegget, men gjerne dette innlegget når tittelen er endret, så vil det bli fjernet..)
Ernie Skrevet 25. mai 2008 Skrevet 25. mai 2008 Hva er det som ikke fungerer? Å bare si at «noe er galt» hjelper oss veldig lite Forøvrig, et lite tips kan være at det er fult mulig å oppdatere flere felter i samme rad i samme omgang. UPDATE tabell SET felt1 = 'verdi1', felt2 = 'verdi2' WHERE felt3 = 'verdi3' Videre er alt fra $_COOKIE, brukerdata og må valideres/ufarliggjøres. Siden det er brukerdata er det også en veldig dårlig ide å ha en «cookie» 'innlogget' satt til true bare for å bli innlogget. Dette er noe enhver bruker kan sette selv, ergo særdeles lite sikkert.
Kapli Skrevet 25. mai 2008 Forfatter Skrevet 25. mai 2008 (endret) Hadde jeg bare visst hva jeg skulle valgt som emnetittel, noen forslag? Nei, får ingen feilmeldinger. Jeg syns det var merkelig at jeg ikke kunne slenge sammen flere i en UPDATE, men jeg bare fant ikke noe om det på google så jeg var usikker. Hva mener du med valideres/ufarliggjøres, skal jeg kryptere det? Jeg må jo få ha en måte å echo'e det. Tenkte aldri på at noen andre bare kunne sette en cookie selv, har du noen andre forslag på hvordan jeg bør gjøre det? Angående topic, jeg vet det er noe galt mellom linje 27 og 36. Poenget er jo ganske klart, jeg skal sjekke om passordene matcher osv.. Dette skal være et innstillings script hvor man kan endre på installingene. Btw, må jeg ha noe etter en if? Hvis jeg ikke satt de { } etter if'en på linje 27 så får jeg unexpected else på linje 28. Trodde en if kunne funke som en sjekk for at scriptet skal gå videre. Edit: Endret emnetittel, bedre? Edit2: Jeg vet ikke helt hva problemet er, det er derfor emnetittelen sier at jeg har et problem, og jeg trenger hjelp med å finne problemet og løse det. Endret 25. mai 2008 av Kapli
Haraldson Skrevet 25. mai 2008 Skrevet 25. mai 2008 Edit: Endret emnetittel, bedre? Beskriv hva problemet er, ikke at du har et problem. Først da forsvinner mine to innlegg fra denne tråden.
Jonas Skrevet 25. mai 2008 Skrevet 25. mai 2008 Jeg aner ikke hva du mener med at det ikke funker, men når du sier mellom linje 27 og 36, ser jeg med en gang mye rart. if ($passord == $passord2) { } Her kan du bruke not equal. (!=) Måten du sjekker etter det motsatte av det ønskelige og deretter legge på '{ } else { ..' er ganske unødvendig. if (!empty($passord) && !empty($passord2) || !empty($passord) || !empty($passord2)) { if (!empty($epost) && !empty($epost2) || !empty($epost) || !empty($epost2)) { Å blande and og or er særdeles lite lurt, men mindre du vet nøyaktig vet hvordan PHP parser koden din. Ellers har noen du ingen anelse om hvordan koden oppfører seg. Bruk paranteser. Det øker i tillegg lesbarheten betraktelig. Og indeter koden ..
Ernie Skrevet 25. mai 2008 Skrevet 25. mai 2008 Hva mener du med valideres/ufarliggjøres, skal jeg kryptere det? Jeg må jo få ha en måte å echo'e det.Nei, det er ikke snakk om å kryptere det. Det jeg snakker om er at du må sjekke at input du får er av den typen du forventer eller blandt et sett verdier du forventer. F.eks at tall faktisk er tall, og ev. mellom 0 og 100. Alternativet til dette er å ufarliggjøre dataene hvis de skal brukes i den SQL-spørring. Hvis man ikke gjør det, og alikevel bruker dataene i en SQL-spørring, kan man være utsatt for SQL-injection. Tenkte aldri på at noen andre bare kunne sette en cookie selv, har du noen andre forslag på hvordan jeg bør gjøre det?Vel, bruk det bare til ting det ikke er så farlig om brukeren endrer. Altså f.eks valg av stilsett, språk e.l. Til innlogging bør du holde deg til session e.l. metoder.
Kapli Skrevet 25. mai 2008 Forfatter Skrevet 25. mai 2008 (endret) Har gjort noen endringer, vil dette funke? http://pastebin.com/m71dbea6a Det gjorde det ikke, får at "Det gamle passordet matchet ikke passordet ditt i vår database." hvis jeg prøver å skifte brukernavnet mitt. Endret 25. mai 2008 av Kapli
Jonas Skrevet 25. mai 2008 Skrevet 25. mai 2008 (endret) Linje 27 if (!empty($gpassord) && md5($gpassord) == md5($rad['passord'])) { Det betyr enten at $gpassord er tom eller at md5($gpassord) ikke er lik md5($rad['passord']). Har du prøvd å se hva disse variablene inneholder? Det å kjøre strtolower() på et inntastet passord er for øvrig heller ikke et sjakktrekk, da du kanskje bruker både store og små bokstaver? Endret 25. mai 2008 av Jonas
Kapli Skrevet 25. mai 2008 Forfatter Skrevet 25. mai 2008 (endret) Det jeg prøver å oppnå er å sjekke om den ikke er tom og at passordet skrevet inn passer med passordet i databasen, hvis den ikke passer med passordet i databasen så skal den avbryte og gi feil melding. Hvis det ikke står noe der da skal den bare gå videre. Jeg skal ikke ha case sensitivity, derfor gjør jeg alt til små bokstaver. Så jeg må omformulere eller ha noe som if (empty($gpassord)) { ContinueScript(); } tenker jeg.. men jeg er nybegynner så spar meg Ernie, du mener da at jeg skal bruke strip tags og sånt på $_COOKIE variablen hver gang jeg bruker den da? Det er jo ikke noe stress. Hvis jeg må bruke session greia da må jeg drive å henge på den på hver eneste link, tungvindt og det ser stygt ut imo Er det ikke noe sånt at jeg kan lagre session id'n i en cookie og bruke den for å verifisere at personen er logget inn? Endret 25. mai 2008 av Kapli
Jonas Skrevet 25. mai 2008 Skrevet 25. mai 2008 (endret) Hvorfor argumenterer du, når jeg prøver å forklare deg hva som er galt? Selvsagt ser jeg at du ønsker å oppnå ha case insensitivity, men har det slått deg at passordet i databasen kanskje inneholder store og små boksaver? Hashen vil da ikke stemme overens med hverandre. Som jeg sa, prøv å se hva variablene faktisk inneholder, så ser du fort hvor feilen ligger. Endret 25. mai 2008 av Jonas
Kapli Skrevet 25. mai 2008 Forfatter Skrevet 25. mai 2008 (endret) Unnskyld, jeg som er dårlig til å formulere meg Jeg bruker strtolower på registrerings scripet mitt også, sånn at alt i databasen er i små bokstaver, fordi jeg ikke vil ha case sensitivity, alt skal være i små bokstaver. Jeg tror ikke at det er der problemet ligger. Siden den sjekker om $gpassord er tom. Og jeg tenker da at når den ikke er tom, da blir den else'en kalt inn og blalbblal.... fant ut av problemet Fungerer nesten perfekt nå. http://pastebin.com/m1fe3815c Men det funker ikke å oppdatere brukernavnet, fornavnet eller etternavnet, er det fordi jeg allerede har satt en verdi på dem? Må være derfor, noen løsning på dette problemet? Jeg vil gjerne vise brukernavnet, fornavnet og etternavnet i boksene fra før av, og endre dem. Btw takk for all hjelpen Endret 25. mai 2008 av Kapli
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å