Can a username begin and/or end with an "x"?

Options

Is it true that a username cannot begin or end with an "x"?

 

If this is true, is there anything in place to prevent the user from choosing a username that begins and/or ends with an "x" or do we need to build something like that ourselves?

 

Thanks,

Adam

Tagged:

Comments

  • Hey Adam,

     

    Yes, usernames can begin or end with an x.  You could write some javascript to prevent users from doing this, but depending on your reason for wanting to do this there might be an easier/better solution.  Why are usernames beginning and/or ending with X an issue?

  • Chris Backus:

    Hey Adam,

     

    Yes, usernames can begin or end with an x.  You could write some javascript to prevent users from doing this, but depending on your reason for wanting to do this there might be an easier/better solution.  Why are usernames beginning and/or ending with X an issue?

    Thanks for your response, Chris.

     

    This "issue" was brought to me by somebody else on my team, but I had a hard time believing that it really is an issue and I'm happy to hear you don't think so either.

     

    I've just confirmed that I'm able to create a user whose username begins and ends with an "x" on our sandbox site, so I think we're all set.

     

    Thanks again.

     

    Adam

  • Adam Kaye:

    Thanks for your response, Chris.

     

    This "issue" was brought to me by somebody else on my team, but I had a hard time believing that it really is an issue and I'm happy to hear you don't think so either.

     

    I've just confirmed that I'm able to create a user whose username begins and ends with an "x" on our sandbox site, so I think we're all set.

     

    Thanks again.

     

    Adam

    Let me jump in and say that we actually did have an issue with user names ending with the letter X. It manifested itself on our donation thank you page, where it didn't understand how to render the participants/donors name. The issue was that the letter 'x' is used to delineate the beginning and end of string values in certain conditionals. When the last name of the participant "Fox" was parsed, TeamRaiser saw the 'x' as the end of his name which created issues. We got around this issue by replacing the Xs with XYZ in the conditionals. Bad example:

     

    From: [[?x19xTRUEx::x[[S4]]x[[S45:1234]]x::<!--doing stuff-->::<!--doing other stuff-->]]

    To: [[?xyz19xyzTRUExyz::xyz[[S4]]xyz[[S45:1234]]xyz::<!--doing stuff-->::<!--doing other stuff-->]]

     

    Disclaimer: We have a heavily customized site and this conflict was an edge case for us, but still a case we ran into.

     

  • Dustin Rambo:

    Let me jump in and say that we actually did have an issue with user names ending with the letter X. It manifested itself on our donation thank you page, where it didn't understand how to render the participants/donors name. The issue was that the letter 'x' is used to delineate the beginning and end of string values in certain conditionals. When the last name of the participant "Fox" was parsed, TeamRaiser saw the 'x' as the end of his name which created issues. We got around this issue by replacing the Xs with XYZ in the conditionals. Bad example:

     

    From: [[?x19xTRUEx::x[[S4]]x[[S45:1234]]x::<!--doing stuff-->::<!--doing other stuff-->]]

    To: [[?xyz19xyzTRUExyz::xyz[[S4]]xyz[[S45:1234]]xyz::<!--doing stuff-->::<!--doing other stuff-->]]

     

    Disclaimer: We have a heavily customized site and this conflict was an edge case for us, but still a case we ran into.

     

    Thanks very much, Dustin.

     

    While it's true that Convio doesn't mind a username that begins or ends with an 'x,' we are continuing to see issues when the user chooses a username that begins or ends with an 'x' during the TeamRaiser registration process.

     

    Their account ends up getting created properly, but when the registration process is complete, the conditionals that usually show the user as logged in appear to be failing.

     

    I'm going to try your suggestion and will report back here. Thanks again.

     

    Adam

  • Dustin Rambo:

    Let me jump in and say that we actually did have an issue with user names ending with the letter X. It manifested itself on our donation thank you page, where it didn't understand how to render the participants/donors name. The issue was that the letter 'x' is used to delineate the beginning and end of string values in certain conditionals. When the last name of the participant "Fox" was parsed, TeamRaiser saw the 'x' as the end of his name which created issues. We got around this issue by replacing the Xs with XYZ in the conditionals. Bad example:

     

    From: [[?x19xTRUEx::x[[S4]]x[[S45:1234]]x::<!--doing stuff-->::<!--doing other stuff-->]]

    To: [[?xyz19xyzTRUExyz::xyz[[S4]]xyz[[S45:1234]]xyz::<!--doing stuff-->::<!--doing other stuff-->]]

     

    Disclaimer: We have a heavily customized site and this conflict was an edge case for us, but still a case we ran into.

     

    Dustin,

     

    That issue only occurs if you've written your conditional like this:

     


    [[?x[[S1:last_name]]x::xx::you don't have a last name::you have a last name]]

     This syntax is often used, but it's actually backwards. The conditional should instead be written:



    [[?xx::x[[S1:last_name]]x::you don't have a last name::you have a last name]]

    The first conditional says "if xlast namex contains xx then return 'you don't have a last name', else return 'you have a last name'." As you described, this returns a false positive if the constituent's last name begins or ends with x, since "xxavierx" contains "xx" and so does "xfoxx".



    The second conditional says "if xx contains xlast namex". This won't ever be true unless the last name is truly blank -- "xx" does not contain "xxavierx" or "xfoxx".

  • Noah Cooper:

    Dustin,

     

    That issue only occurs if you've written your conditional like this:

     


    [[?x[[S1:last_name]]x::xx::you don't have a last name::you have a last name]]

     This syntax is often used, but it's actually backwards. The conditional should instead be written:



    [[?xx::x[[S1:last_name]]x::you don't have a last name::you have a last name]]

    The first conditional says "if xlast namex contains xx then return 'you don't have a last name', else return 'you have a last name'." As you described, this returns a false positive if the constituent's last name begins or ends with x, since "xxavierx" contains "xx" and so does "xfoxx".



    The second conditional says "if xx contains xlast namex". This won't ever be true unless the last name is truly blank -- "xx" does not contain "xxavierx" or "xfoxx".

    Thanks very much, Noah.



    This was exactly what was wrong with our conditional, so a very simple fix of swapping the first and second elements within the conditional immediately caused everything to snap right into place.



    Hopefully this thread will prove useful to others in the future. I know we'll be careful to avoid the same mistake over here.



    Thanks again.



    Adam
  • This is an old post, but I just cleared up a similar case where we had a bug matching an event's city (Phoenix) against a blank value, in the wrong search order (i.e., resulting in:


    [[?xPhoenixx::xx::{etc.}::{etc.}}]]

    ...and the code thinks the city name is blank).

    I'm not sure why any alphanumeric character is suggested for the delimiter, but coming from the world of regular expressions (where "^" denotes the beginning of a line, "$" the end of a line), I've taken to changing all our conditionals to use these two characters as delimiters. This also has the benefit of being able to write the conditional in either direction, i.e.:


    [[?^[[C1:event_city]]$::^$::{IS BLANK}::{IS NOT BLANK}]]

    or


    [[?^$::^[[C1:event_city]]$::{IS BLANK}::{IS NOT BLANK}]]

    ...plus an example for multiple possible matches, where order necessarily matters:


    [[?^Kingman$^Phoenix$^Seligman$^Tucson$::^[[C1:event_city]]$::{MATCH}::{NO MATCH}]]

    I can't think of any plausible scenario where you'd run up against ^$ in any string that wasn't already a regular expression of some kind. Maybe if you had some kind of exponential expression followed by a dollar amount. However one prefers to delimit searches, ^$ or otherwise, it's a good idea to just stay away from alphanumeric characters for the purpose.

Categories