Gå til innhold

Problem med innstillings script


Anbefalte innlegg

Videoannonse
Annonse

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 p_edit.gif-knappen i første post for å endre emnetittelen.

 

(Dette innlegget vil bli fjernet ved endring av emnetittel. Ikke kommenter dette innlegget, men p_report.gif gjerne dette innlegget når tittelen er endret, så vil det bli fjernet..)

Lenke til kommentar

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.

Lenke til kommentar

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 av Kapli
Lenke til kommentar

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 ..

Lenke til kommentar
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.
Lenke til kommentar

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 av Jonas
Lenke til kommentar

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 :p

 

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 :p 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 av Kapli
Lenke til kommentar

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 av Jonas
Lenke til kommentar

Unnskyld, jeg som er dårlig til å formulere meg :p

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 :D

Endret av Kapli
Lenke til kommentar

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å
×
×
  • Opprett ny...