Hov. Du er ikke logget ind.
DU SKAL VÆRE LOGGET IND, FOR AT INTERAGERE PÅ DENNE SIDE

Brugernavn med ÆØÅ kan ikke registreres. Wordpress

Side 1 ud af 2 (11 indlæg)
Fra København
Tilmeldt 13. Jan 11
Indlæg ialt: 400
Fra  Kampgear Skrevet kl. 07:13
Hvor mange stjerner giver du? :

Kære aminoer

Først vil jeg lige nævne, at jeg tidligere lavede en tråd med dette emne, men den gik desværre død halvvejs. Jeg har derfor oprettet denne med min nye viden omkring situationen.

Jeg har en side, hvor jeg ønsker, at mine brugere skal kunne registrere sig med et brugernavn, hvor de kan bruge ÆØÅ i navnet. Det er pt ikke muligt. Hvis man forsøger, får man en fejl, det lyder "Ugyldige tegn i brugernavnet". Jeg er blevet henvist til en funktion, som man kan tilføje i functions.php, men den lader ikke til, at gør arbejdet korrekt. Nedenfor har jeg vist den brugte funktion. Er der nogen, der ved, hvordan den skal rettes til, så mine brugere kan bruge ÆØÅ ved registrering?

/**
* Overrides the Wordpress sanitize_user filter to allow special characters
*/
function wscu_sanitize_user ($username, $raw_username, $strict)
{
//Strip HTML Tags
$username = wp_strip_all_tags ($raw_username);
//Remove Accents
$username = remove_accents ($username);
//Kill octets
$username = preg_replace ('|%([a-fA-F0-9][a-fA-F0-9])|', '', $username);
//Kill entities
$username = preg_replace ('/&.+?;/', '', $username);
//If strict, reduce to ASCII, Cyrillic and Arabic characters for max portability.
if ($strict)
{
//Read settings
$settings = get_option ('wscu_settings');
//Replace
$username = preg_replace ('|[^a-z\p{Arabic}\p{Cyrillic}0-9 _.\-@]|iu', '', $username);
}
//Remove Whitespaces
$username = trim ($username);
// Consolidate contiguous Whitespaces
$username = preg_replace ('|\s+|', ' ', $username);
//Done
return $username;
}
add_filter ('sanitize_user', 'wscu_sanitize_user', 10, 3);

Jeg ser frem til at høre fra jer og takker på forhånd for jeres hjælp!

Mvh
Casper

Fra Silkeborg
Tilmeldt 3. Apr 07
Indlæg ialt: 1958
Fra  Vipindi Skrevet kl. 09:24
Hvor mange stjerner giver du? :

Hej Casper

Casper Nybroe:
Først vil jeg lige nævne, at jeg tidligere lavede en tråd med dette emne, men den gik desværre død halvvejs.

Jeg kan desværre ikke hjælpe dig, men grunden til at din forrige tråd går død kan være at et iværksætterforum som Amino, ikke er det oplagte sted at finde hjælp til kompliceret teknisk fejlsøgning i WordPress installationer.

Så min "hjælp" vil være at foreslå dig at slå det op i Wordpress fora, evt. GooglePlus-gruppen om Wordpress. Der er også en række udviklerfora på nettet, nogle med specielt fokus på php, det kunne også være en mulighed.

Med hensyn til at oprette en ny tråd med nye oplysninger fordi den gamle "gik død", så vil jeg bede dig om (næste gang) at føje de nye oplysninger til den gamle tråd, det gør det meget lettere for de andre aminoer at følge debatten og vi undgår at sprede debatten i flere tråde. Jeg har låst den anden tråd denne gang.

Held og lykke med projektet
/Brian 

Tilmeldt 21. Sep 06
Indlæg ialt: 2606
Fra  StreetPatrol.com StreetPatrol.dk Skrevet kl. 12:58
Hvor mange stjerner giver du? :

remove_accents() ændrer æ, ø og å til ae, oe og aaa - så når du kører den funktion er du lige vidt.

Udover det, er der også en  get_option ('wscu_settings'), som ikke er defineret. 

Der er også noget andet, der går galt, hvor jeg synes det var nemmere at starte forfra end at lede efter problemet. 

Denne her jeg lige har skrevet virker, men er ikke absolut ikke komplet. Du skal virkeligt have styr på hvordan du håndterer bogstaverne. Du kan evt hyre en gut som Martin Hjort til det - eller udbyde opgaven på Amino Freelancer

Personligt ville jeg hellere skrive til mine brugere at de ikke kan bruge æ, ø og å - ligesom det er et fænomen de ofte må accepterer i brugernavne og e-mailadresser. 

function sp_sanitize_user($user, $raw_user, $strict = true) {
$user = $raw_user;
$user = wp_strip_all_tags( $user );
// $user = remove_accents( $user );
// Kill octets
$user = preg_replace( '|%([a-fA-F0-9][a-fA-F0-9])|', '', $user );
$user = preg_replace( '/&.+?;/', '', $user ); // Kill entities

// If strict, reduce to ASCII for max portability.
if ( $strict )
$username = preg_replace( '|[^a-z0-9 _.\-@]|i', '', $username );

$user = trim( $user );
// Consolidate contiguous whitespace
$user = preg_replace( '|\s+|', ' ', $user );

return $user;
}
add_filter('sanitize_user', 'sp_sanitize_user', 10, 3);

 

Sparetips på Sparefeber.dk

Fra København
Tilmeldt 13. Jan 11
Indlæg ialt: 400
Fra  Kampgear Skrevet kl. 19:13
Hvor mange stjerner giver du? :

@Brian - Jeg må indrømme, at jeg var lidt i tvivl om det var det rigtige forum at poste ting som dette. Tak for din tilbagemelding.

@Gita - Mange tak for dit gennemførte svar! Du skal have tusind tak for din hjælp! Jeg vil prøve din kode ad. :)

Mvh
Casper 

Tilmeldt 21. Sep 06
Indlæg ialt: 2606
Fra  StreetPatrol.com StreetPatrol.dk Skrevet kl. 18:04
Hvor mange stjerner giver du? :

Casper Nybroe:
Mange tak for dit gennemførte svar! Du skal have tusind tak for din hjælp! Jeg vil prøve din kode ad. :)


Selv tak, det var sjovt lige at tage en lille udfordring op for at se hvor langt jeg er nået i at have styr på WordPress.

Det virkede i hvert fald herfra, men problemet med koden, er at det filter, der bliver brugt er beregnet til at filtrere efter standardfilteret er kørt. Altså en endnu hårdere på brugernavne.

Med første linje kode ($user = $raw_user; ) i funktionen resetter du det der allerede var blevet filtreret. Det er så sikkerheden, der er at på spil her - og at der er forskellige måder Æ, Ø og Å kan repræsenteres på som potentielt kan give problemer, hvis ikke der bliver kodet noget PHP til at tjekke det. Noget jeg ikke er nok inde i endnu. 

Sparetips på Sparefeber.dk

Fra København
Tilmeldt 13. Jan 11
Indlæg ialt: 400
Fra  Kampgear Skrevet kl. 18:16
Hvor mange stjerner giver du? :

Du har tydeligvis meget godt styr på det, må jeg sige. :)
Jeg har prøvet din kode og det lader til at virke fint. Jeg er stadig lidt skeptisk, om jeg eventuelt senere hen skulle få problemer i backenden eller databasen. Men indtil nu er der ingen problemer. Du skal have stor tak endnu en gang!

//Casper 

Tilmeldt 21. Sep 06
Indlæg ialt: 2606
Fra  StreetPatrol.com StreetPatrol.dk Skrevet kl. 18:28
Hvor mange stjerner giver du? :

Tak, ja, det er også derfor det er vigtigt at fortælle koden er inkomplet.

Når du omgår sikkerheden ved brugerinput, skal du virkeligt have styr på hvordan du håndterer dette.

På det punkt har jeg ikke lavet det ekstra, der skal til.  

Jeg husker også du har fået lavet noget specielt i forvejen og at der var problemer med det, og det giver et usikkerhedsmoment mere.

Sparetips på Sparefeber.dk

Fra København
Tilmeldt 13. Jan 11
Indlæg ialt: 400
Fra  Kampgear Skrevet kl. 19:38
Hvor mange stjerner giver du? :

Just præcis. :)
Det er godt husket Gita. Smider jeg virkelig så meget op her, at folk kan huske mine indlæg? :D
Men ja. Grundet jeg har fået lavet noget custom, som bestemt ikke er 100% pålideligt, så er jeg meget varsom med at rode rundt i kernen af wordpress, da det allerede har resulteret i et par crash'.

//Casper 

Tilmeldt 21. Sep 06
Indlæg ialt: 2606
Fra  StreetPatrol.com StreetPatrol.dk Skrevet kl. 19:57
Hvor mange stjerner giver du? :

Det er ikke så svært at huske :-) 

Du er den eneste jeg har set herinde have et et brugersystem noget lignende det jeg er i gang med når jeg har brug for afveksling fra at arbejde med WordPress-themes. 

Sparetips på Sparefeber.dk

Fra København
Tilmeldt 13. Jan 11
Indlæg ialt: 400
Fra  Kampgear Skrevet kl. 20:03
Hvor mange stjerner giver du? :

Fantastisk. Jeg er glad for, at mine projekter kan være med til at afveksle dit arbejde! :)

Endnu en gang tak og jeg håber, du får en rigtig god søndag aften.

//Casper 

Side 1 ud af 2 (11 indlæg)