Gå til innhold

mb_strlen() eller strlen()?


Anbefalte innlegg

PHP har mange funksjoner som begynner på mb_. De fleste av disse funksjonene funnes også uten mb_ på starten av funksjonsnavnet. Etter hva jeg har forstått finnes disse mb_-funksjonene fordi noen språk benytter flere bytes per tegn (kan sikkert forklares bedre av noen som faktisk kan dette).

 

Grunnen til at jeg tar opp dette er at jeg skal sjekke data brukerne oppgir. Brukerne må velge et brukernavn på mellom 6 og 20 tegn (lovlige tegn er A-Z, a-z, 0-9, -, _). Siden jeg her kun benytter "normale" vestlige tegn, trenger jeg da ikke benytte mb_strlen()?

 

Brukerne kan velge et passord helt uten begrensninger i tegn. Det eneste kravet er at passordet må være mellom 6 og 20 tegn. Siden brukeren her kan velge et passord bestående av for eksempel kun kinesiske tegn, må jeg her bruke mb_strlen()?

 

Fint om noen kunne gi meg litt klarhet i dette :)

Lenke til kommentar
Videoannonse
Annonse

Nettsiden er på engelsk, så jeg benytter meg ikke av slike tegn. Men når jeg for eksempel skal sjekke lengden av et subjekt som brukeren skriver, kan dette subjektet bestå av tegn utenfor vårt alfabet. Må jeg da benytte mb-funksjoner for å sjekke slik brukergitt data?

Lenke til kommentar

Vel, hvis det er noen reell fare for at input ikke er ISO 8859-1 e.l. eller at det er reell fare for at noen taster inn tegn som ikke finnes i det tegnsettet så bør du jo bruke UTF-8 og i såfall kan du få et problem når input kommer inn i andre tegnsett. På samme måte får du det problemet hvis du bruker singlebyte tegnsett som f.eks ISO 8859-1 og input er UTF-8 eller et annet tegnsett som «fucker opp ting». Isåfall bør du bruke mbstring. Holder du deg konsekvent til et singlebyte tegnsett og forventer at all input er i samme tegnsett, altså at hele siten er på engelsk og all input forventes å være engelsk og ikke f.eks. japansk, så er det ingen fare. Bruker du derimot et multibyte tegnsett som f.eks UTF-8 bør mbstring brukes uannsett.

Lenke til kommentar

Når brukeren sender en melding kan han/hun skrive et subjekt/tittel på meldingen. I mySQL-databasen er maks subjektlengde satt til 50 tegn. Selve nettsiden er på engelsk, men kommunikasjon mellom brukere kan skje på alle verdens språk.

 

Si da at en kineser skriver en melding til en annen kineser med kinesisk subjekt. Hvordan kan jeg da kontrollere om subjektet <= 50 tegn?

 

Og hva med databasen? Når jeg setter limit på subjektet til 50 tegn, vil kanskje kinesere kun benytte seg av 40 tegn?

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å
  • Hvem er aktive   0 medlemmer

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