Store og små bokstaver.

En tråd i 'PHP, SQL og databaser' startet av Mr Vest, 2 Okt 2009.

  1. Mr Vest

    Mr Vest Sjefen over alle sjefer!

    Innlegg:
    2.079
    Jeg husker for en lengre tid tilbake hvor jeg faktisk tok kontakt med host og spurte hvorfor en URL til webhotellet ikke fungerte. Det viste seg at svaret var en stor bokstav som skulle vært liten. Da fikk jeg bekreftet at på Linux så var det viktig at store og små bokstaver var riktige, og at f.eks Atle ikke ville være det samme som atle.

    Nå er jeg i en lignende situasjon igjen. Det som er greia er at dersom jeg registrerer meg på min side med brukernavn Atle, og profilen min da blir hxxp://minside.no/atle/ , da vil det ikke fungere med hxxp://minside.no/Atle ...

    Vet dere om noe jeg kan gjøre for at det skal fungere med begge to, uavhengig om navnet på brukeren står med liten eller stor bokstav i mysql-databasen?
     
  2. olafmoriarty

    olafmoriarty Medlem

    Innlegg:
    751
    Kan umiddelbart tenke meg to måter:

    1. Bruk strtolower på stringen du henter fra url før du sjekker mot databasen. Forutsetter at alle søkeord i basen er med små bokstaver, så klart.

    2. Gjør databasesøket med LIKE i stedet for = -- det er case-insensitivt.
     
  3. Mr Vest

    Mr Vest Sjefen over alle sjefer!

    Innlegg:
    2.079
    Dersom jeg bruker strtolower og det ikke finnes noen store bokstaver i navnet, vil denne da gi meg en feilmelding?

    Takk for tips om LIKE. Jeg skal sjekke det litt mer ut. Ser ut til og kunne fungere greit etter hva jeg leste etter et googlesøk. Takk! :)
     
  4. olafmoriarty

    olafmoriarty Medlem

    Innlegg:
    751
    Ingen feilmelding. strtolower('atle') == 'atle'.

    Ulempen med strtolower og strtoupper er at det ikke virker på spesialtegn, så strtolower('BLÅBÆRSYLTETØY') == 'blÅbÆrsyltetØy'. Det kan løses ved å lage en egen funksjon der du bruker strtolower kombinert med en str_replace for de vanligste spesialtegnene.
     

Del denne siden