WN

WN (https://www.wn.se/forum/index.php)
-   Domännamn (https://www.wn.se/forum/forumdisplay.php?f=16)
-   -   www.domän.se/valfrittnamn (https://www.wn.se/forum/showthread.php?t=1052918)

frecka 2012-04-04 18:30

www.domän.se/valfrittnamn
 
Hej,

Låt oss säga att jag har www.domän.se

Jag vill att användare skall kunna skriva in sig med ett valfritt namn.

Deras profil kommer nås från www.domän.se/valfrittnamn

Men jag har också andra sidor som heter t.ex www.doman.se/hjälp
www.doman.se/register
www.doman.se/login

Hur gör jag för att inte krocka där?

Anthon

Fredrik-s 2012-04-04 18:59

Det är relativt omöjligt att svara på utan att veta vad du kör för system. Är det Wordpress, Drupal, egenutvecklat?

Är det egenutvecklat kan du ju bara lägga in en spärr på att om namnet är "hjälp", "register", "login" så visas det som upptaget och går inte att registrera.

Erik Stenman 2012-04-04 20:23

Du lägger till separata regler högre upp i din .htaccess fil för de särskilda fallen.
Använd en L-flagga för att regler bara ska tillämpas en gång: [L]

Jine 2012-04-05 05:14

Citat:

Ursprungligen postat av Erik Stenman (Inlägg 20436801)
Du lägger till separata regler högre upp i din .htaccess fil för de särskilda fallen.
Använd en L-flagga för att regler bara ska tillämpas en gång: [L]

Fast det kommer ju dock resultera i att OM någon registrerar sig med det användarnamnet så brejkar sidans funktionalitet.

Dessutom är det helt tokigt att lägga sånt i .htaccess/liknande (samt att det kräver att du kör apache och linux - vilket TS inte nämner något om)

Korrekt sätt är att göra som Fredrik-s skrev. Du nämner dock inte vilket språk det gäller, men något liknande det här fungerar:

Kod:

if($username == 'hjälp') { echo 'Detta användarnamn är spärrat!'; }
elseif($username == 'register') { echo 'Detta användarnamn är spärrat!'; }
...
elseif($username == 'login') { echo 'Detta användarnamn är spärrat!'; }

Alternativt göra det snyggare kodmässigt och lägga alla spärrade användarnamn i en array, för att sedan köra if(in_array($username, $banned_usernames)) ...

frecka 2012-04-05 08:05

Aa, ja tänkte att lägga alla namn i .htaccess blir lite för jobbigt om man nu lägger till en sida då och då.

tartareandesire 2012-04-05 08:15

Jag skulle inte valt någon av de lösningar som föreslagits om jag vore du utan istället lagt användarprofilerna i en underkatalog. Sådana url:er bör aldrig ens ha möjlighet att krocka med huvudsidor på sajten och det blir en mer logisk struktur för besökaren.

frecka 2012-04-05 09:00

Men det är faktist så att jag måste ha dem direkt efter domänen, jag kan inte ha www.doman.se/undermapp/valfrittnamn

makaflOw 2012-04-05 10:27

Spar alla namn som du vill blockera i en databas. Kolla sedan vid registrering om de namnet finns där eller om någon sida heter så. Om så är fallet, neka användaren att registrera sig med de namnet.

frecka 2012-04-05 13:43

Jag har gått på din lösning makaflOw att spara det i en databas. Men nu är det såhär att jag har gjort en funktion som skriver om konstiga usernames till korrekta, alltså seo-friendly urls.

så ett namn som typ ser ut såhär:

AnThOn blir anthon

Så då blir det såhär: doman.se/anthon

Men hur kan jag nu få tillbaka identifieraren så jag kan hämta datan i databasen? Alltså datan om användaren.

Jag kan ju inte identifera med något id eller username eftersom vi har ju skrivit om användarnamnet.

Någon lösning? :)

Advocacy 2012-04-05 14:36

Du gör alla SEO-URLs unika. Dvs om user_id 1 reggar sig med "anthon" så blir hans urlnamn: sida.se/anthon. Om user_is 2 reggar sig med "änthon" så blir hans urlnamn sida.se/anthon2 eller liknande. Det är ett alternativ, finns flera.


Alla tider är GMT +2. Klockan är nu 07:19.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson