Vi ringrazio in anticipo per il vostro tempo ad aiutare questo problema ..preg_match(): Compilazione non riuscita: gamma non valida in classe di caratteri all'offset 20
preg_match(): Compilazione non riuscita: gamma non valida in classe di caratteri all'offset 20 session.php on line 278
io non sono sicuro perché questo ha smesso di funzionare all'improvviso dopo mesi di lavoro potrebbe essere un aggiornamento nel codice ..
ecco il codice
else{
/* Spruce up username, check length */
$subuser = stripslashes($subuser);
if(strlen($subuser) < $config['min_user_chars']){
$form->setError($field, "* Username below ".$config['min_user_chars']."characters");
}
else if(strlen($subuser) > $config['max_user_chars']){
$form->setError($field, "* Username above ".$config['max_user_chars']."characters");
}
/* Check if username is not alphanumeric */
/* PREG_MATCH CODE */
else if(!preg_match("/^[a-z0-9]([0-9a-z_-\s])+$/i", $subuser)){
$form->setError($field, "* Username not alphanumeric");
}
/* PREG_MATCH CODE */
/* Check if username is reserved */
else if(strcasecmp($subuser, GUEST_NAME) == 0){
$form->setError($field, "* Username reserved word");
}
/* Check if username is already in use */
else if($database->usernameTaken($subuser)){
$form->setError($field, "* Username already in use");
}
/* Check if username is banned */
else if($database->usernameBanned($subuser)){
$form->setError($field, "* Username banned");
}
}
... o PHP stesso è stato aggiornato. Secondo RegexBuddy, PHP 5.5 richiede il trattino di escape o spostato alla fine dell'elenco se si desidera che corrisponda a un trattino letterale. Prima di ciò, a quanto pare, si supponeva che volevi dire questo perché '_- \ s' non ha senso come intervallo. –
Sì, PHP raggruppa anche una versione di PCRE, in modo da finire con lo stesso problema. Buona pesca. – MatsLindh
@AlanMoore: una possibilità troppo poco conosciuta è quella di mettere il trattino immediatamente dopo una classe di caratteri abbreviata: '\ s-_' –