Avatar billede malte Nybegynder
05. januar 2004 - 20:29 Der er 24 kommentarer og
1 løsning

Hvorfor kan jeg ikke skrive æøå som brugernavn?

Hvorfor kan jeg ikke skrive æøå som brugernavn? i dette script uden at linie 30 giver en fejl?

function userCheck($username, $user_email) {
    global $stop, $user_prefix, $db;
    if ((!$user_email) || ($user_email=="") || (!eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,6}$",$user_email))) $stop = "<center>"._ERRORINVEMAIL."</center><br>";
    if (strrpos($user_email,' ') > 0) $stop = "<center>"._ERROREMAILSPACES."</center>";
//linie30//  if ((!$username) || ($username=="") || (ereg("[^a-åA-Å0-9_-]",$username))) $stop = "<center>"._ERRORINVNICK."</center><br>";
    if (strlen($username) > 25) $stop = "<center>"._NICK2LONG."</center>";
    if (eregi("^((root)|(adm)|(linux)|(webmaster)|(admin)|(god)|(administrator)|(administrador)|(nobody)|(anonymous)|(anonimo)|(anónimo)|(operator))$",$username)) $stop = "<center>"._NAMERESERVED."";
    if (strrpos($username,' ') > 0) $stop = "<center>"._NICKNOSPACES."</center>";
    if ($db->sql_numrows($db->sql_query("SELECT username FROM ".$user_prefix."_users WHERE username='$username'")) > 0) $stop = "<center>"._NICKTAKEN."</center><br>";
    if ($db->sql_numrows($db->sql_query("SELECT username FROM ".$user_prefix."_users_temp WHERE username='$username'")) > 0) $stop = "<center>"._NICKTAKEN."</center><br>";
    if ($db->sql_numrows($db->sql_query("SELECT user_email FROM ".$user_prefix."_users WHERE user_email='$user_email'")) > 0) $stop = "<center>"._EMAILREGISTERED."</center><br>";
    if ($db->sql_numrows($db->sql_query("SELECT user_email FROM ".$user_prefix."_users_temp WHERE user_email='$user_email'")) > 0) $stop = "<center>"._EMAILREGISTERED."</center><br>";
    return($stop);

Jeg får denne fejl på siden:
Warning: REG_ERANGE in /index.php on line 30

men vedkommende bliver registreret. Så den del virker!
Avatar billede erikjacobsen Ekspert
05. januar 2004 - 20:32 #1
Du skal nok bruge
ereg("[^a-zA-ZæøåÆØÅ0-9_-]",...)
Avatar billede nak-m Nybegynder
05. januar 2004 - 20:36 #2
brug:
preg_match("/^[ \w]+$/", $username)

i stedet for:
ereg("[^a-åA-Å0-9_-]",$username)
Avatar billede malte Nybegynder
05. januar 2004 - 20:36 #3
Takker :-)
Svarer du lige?
Er det her noget for dig? http://www.eksperten.dk/spm/447125
Avatar billede malte Nybegynder
05. januar 2004 - 20:38 #4
<erikjacobsen> var den løsning jeg brugte. Måske virker de begge? erik kom bare først
Avatar billede nak-m Nybegynder
05. januar 2004 - 20:40 #5
det er også fint ;)
men jeg vil råde dig til at bruge preg_match alligevel, fx:
preg_match("/^[a-zA-ZæøåÆØÅ1-9_-]+$/", $username)
Avatar billede malte Nybegynder
05. januar 2004 - 20:46 #6
Hvorfor? er det bedre end det andet?
Avatar billede nak-m Nybegynder
05. januar 2004 - 20:48 #7
Det skulle være en smule hurtigere i sådanne tilfælde :)
Avatar billede malte Nybegynder
05. januar 2004 - 20:48 #8
Hvad nu hvis jeg gerne vil give brugerne mulighed for at skrive 2 brugernavne? lige SKAL det være et sammenhængende
Avatar billede nak-m Nybegynder
05. januar 2004 - 20:50 #9
Hvis du gerne vil have, at brugeren må bruge mellemrum i sit navn, kan du fx skrive:
preg_match("/^[ a-zA-ZæøåÆØÅ1-9_-]+$/", $username)
Avatar billede malte Nybegynder
05. januar 2004 - 20:52 #10
kan du lave hele linie 30 til mig? Jeg kan ikke se hvor preg_match skal starte
Avatar billede nak-m Nybegynder
05. januar 2004 - 20:54 #11
//linie30//  if ((!$username) || ($username=="") || (preg_match("/^[ a-zA-ZæøåÆØÅ1-9_-]+$/", $username))) $stop

sådan ;)
Avatar billede malte Nybegynder
05. januar 2004 - 20:58 #12
Registration Error!


FEJL: Der må ikke være mellemrum i brugernavn

[ Tilbage ]
Avatar billede erikjacobsen Ekspert
05. januar 2004 - 21:00 #13
Du skal så nok fjerne
if (strrpos($username,' ') > 0) $stop = "<center>"._NICKNOSPACES."</center>";
Avatar billede malte Nybegynder
05. januar 2004 - 21:09 #14
fgjh@j.dk
ok det er gjort. Ang. email så vil den ikke acceptere at der kun er et bogstav i domænenavnet?
Avatar billede nak-m Nybegynder
05. januar 2004 - 21:15 #15
prøv at brug denne:
preg_match("/^([\w|\.|\-|_]+)@([\w||\-|_]+)\.([\w|\.|\-|_]+)$/i", $user_email)
Avatar billede malte Nybegynder
05. januar 2004 - 21:24 #16
gik ikke Lavde en fejl og spurgte til en fil der ikke var der?
if ((!$user_email) || ($user_email=="") || (preg_match("/^([\w|\.|\-|_]+)@([\w||\-|_]+)\.([\w|\.|\-|_]+)$/i", $user_email)
Var det sådan her sden skulle se ud?
Avatar billede nak-m Nybegynder
05. januar 2004 - 21:37 #17
prøv hellere dette:

if ((!$user_email) || ($user_email=="") || (!preg_match("/^([\w|\.|\-|_]+)@([\w||\-|_]+)\.([\w|\.|\-|_]+)$/i", $user_email))) $stop
Avatar billede malte Nybegynder
05. januar 2004 - 22:07 #18
Parse error: parse error in /var/www/modules/Your_Account/index.php on line 30
Sorry, such file doesn't exist...
Avatar billede nak-m Nybegynder
05. januar 2004 - 23:37 #19
Er du sikker på, at du ikke gør noget galt?
Avatar billede nak-m Nybegynder
06. januar 2004 - 05:50 #20
Jeg har selv testet det, og den tjekker emails perfekt! Hvis du stadigvæk har problemer med det, så vis din koden :)
Avatar billede malte Nybegynder
06. januar 2004 - 07:14 #21
ok i aften når jeg kommer hjem
Avatar billede nak-m Nybegynder
10. januar 2004 - 18:35 #22
Hvord'n går det egentligt her? Har du fået dit script til at dú?
Avatar billede malte Nybegynder
10. januar 2004 - 19:10 #23
Ja jeg har fået styr på det. Tak for hjælpen. Et svar måske?
Avatar billede nak-m Nybegynder
15. januar 2004 - 08:25 #24
Jeg smider svar :)
Avatar billede nak-m Nybegynder
16. januar 2004 - 02:55 #25
takker for point :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester