You are here
Drupal 8 API tutorials
Want to learn about the Drupal 8 APIs, with worked examples? Follow my series of tutorials, covering routing, caching, entities, config and much more!
Want to hire me?
Recent blogposts
-
Altering the length of a Drupal 8 text field that contains data
Friday, July 21, 2017 - 11:31 -
A menagerie of testing: behavioural, unit, system, smoke, regression, oh my!
Friday, June 2, 2017 - 10:11 -
Including Javascript in Behat tests, all inside a headless, virtual machine
Tuesday, May 30, 2017 - 16:51
About me
I'm J-P Stacey, and I'm a freelance technical developer and software architect, working with Drupal, Javascript, Symfony, PHP and devops, with experience in project and process management and an emphasis on usability.
I live in the UK; my website is self-hosted on bigv.io; my email is hosted by Google, and that's also what I use to share files. (More info|What is this?)
The function does not take
The function does not take case-insensitive collations into account.
E.g. if submitted name is "FOO", the query will (correctly) find user named "foo".
But when checked using isset(), which IS case sensitive, the "foo" user is not seen, and the function happily returns FOO as unique. This can cause nasty, fatal errors when Drupal goes to save the record.
To fix:
Change the select statement to: "SELECT LOWER(name) as name ..."
Change the found logic to: $found = isset($existing_names[strtolower($username)]);