Avatar billede human Nybegynder
27. december 2004 - 04:57 Der er 30 kommentarer og
1 løsning

store og små bogstaver i URL

Goodag

Vi er lige flyttet server, og jeg har så fundet ud af på vores nye server ser den forskel på store og små bogstaver i URL'en.
Den gamle server:
?Bruger=Hans
?Bruger=hans
Det var den lige glad med, men det er vores nye server altså ikke.
Så jeg ville høre om man kan inkludere et stykke kode på alle siderne, så vi ikke skal til at rette i 500 links.

150 til den som kommer med en løsning på dette problem.
Avatar billede morteeart Nybegynder
27. december 2004 - 05:07 #1
tjaa, det afhænger af hvad du tester på.

jeg ville gøre sådan her ved alle mine $_GET[]'s

$bruger = strtolower($_GET['Bruger'])

Dette burde ikke have noget med servere at gøre, da php plejer at være case-sensitiv.

Men det er uendelig dårlig skik at bruge store bogstaver i $_GET[]'s
Avatar billede morteeart Nybegynder
27. december 2004 - 05:13 #2
Du glemmer foresten at skrive hvilken server den nye er og hvilken en den gamle var.

Måske kan mod_rewirte også bruges :)

http://httpd.apache.org/docs/mod/mod_rewrite.html
Avatar billede human Nybegynder
27. december 2004 - 05:14 #3
Ja, men jeg kan jo ikke vide brugerne af siden gør..

$bruger = strtolower($_GET['Bruger'])
vil ikke holde, da deres navne bliver taget ud af db'en om smidt i URL'en, altså, jeg ved ikke om de hedder noget med storebogstaver eller ej.

Men er der noget jeg kan gøre, så ingen links er case sensitive?
Avatar billede morteeart Nybegynder
27. december 2004 - 05:16 #4
nej, det er umuligt at ændre sådan lige.

Brugernavne i get er også en dum ide, bruge en ID som du har tildelt dem i database istedet for.

tal er altid bedre end tekst når vi snakker urls.
Avatar billede morteeart Nybegynder
27. december 2004 - 05:19 #5
og at rette i 500 links er nok (forhåbenlig) overdrevent.

Din side er *sigh* vel lavet med loops, så du kun skal rette det én gang :P
eller lign.
Avatar billede human Nybegynder
27. december 2004 - 05:22 #6
Okay..
Hvis php er case sensitive, kan i så ikke give mig en forklaring på dette?:
$usertjek = mysql_query("SELECT * FROM du_users WHERE username='".$_GET['Bruger']."'");
$usertjek_sql = mysql_num_rows($usertjek);
if($usertjek_sql > 0){

Antager vi at der står HANS i databasen, men skriver hans i URL'en, vil dette stadig give et output som hans findes, selvom der står HANS i databasen.

Forklaring? For jeg forstår det ikke.
Avatar billede human Nybegynder
27. december 2004 - 05:25 #7
morteeart: Det er ikke alle der er så gode til php somdig, men laver tingene efter vores bedste kunnen.
Så nej, har ikke opbygget den i looops eller poopb eller boobs.
Avatar billede morteeart Nybegynder
27. december 2004 - 05:27 #8
hæ, ja php :)

Men mysql der varierer det efter opsætning

http://dev.mysql.com/doc/mysql/en/Name_case_sensitivity.html
Avatar billede morteeart Nybegynder
27. december 2004 - 05:28 #9
human

Det skulle tages som sarkarsme, og så som et forslag til hvordan du så bør bygge det op næste gang.

klokken er 5:30 om morgenen, der må man godt være lidt sarkastisk.
Avatar billede human Nybegynder
27. december 2004 - 05:29 #10
omg lame..

Hvad er dit bedste forslag til hvordan det nemmest kan laves om?
Avatar billede morteeart Nybegynder
27. december 2004 - 05:29 #11
eller det med mysql passer ikke.

et SELECT * FROM table WHERE bla='bla' er ikke case sencitive.
Avatar billede morteeart Nybegynder
27. december 2004 - 05:33 #12
http://se.php.net/manual/en/reserved.variables.php#reserved.variables.get

Og så går jeg i seng, inden jeg kommer mere flere dårlige besvarelser fordi jeg læser forkert pga. træthed.
Avatar billede human Nybegynder
27. december 2004 - 05:35 #13
k, den side kunne jeg ikke bruge til noget.

Håber i andre har nogle mere konstruktive svar.
Avatar billede erikjacobsen Ekspert
27. december 2004 - 08:57 #14
human: selv om det er sent, så svar på de spørgsmål, der stilles:

"at skrive hvilken server den nye er og hvilken en den gamle var."

Før vi ved hvad problemet er, kan vi ikke løse det. Kan du lave et
dump af tabeldefinitionen af du_users (fx med phpmyadmin)?

Præcis i hvilke tilfælde har du et problem med store og små bogstaver?
Avatar billede danny_k Nybegynder
27. december 2004 - 09:04 #15
Måske kan du lave et script der trækker alle brugernavnene ud af db, giver dem en strtolower("bruger") og derefter updater dem. har ikke lige tid til at komme med koden.
Derefter sørger du for at når brugere opretter sig i databasen bliver deres brugernavn indsat med strtolower(). Og så skal søgningen naturligvis også anvende strtolower()
Avatar billede morteeart Nybegynder
27. december 2004 - 15:05 #16
btw. human det er høfligt at sætte navn på sine karma angivelser.

Ellers er man jo bare en annonym nar.
Avatar billede human Nybegynder
27. december 2004 - 16:06 #17
den gamle server var wannafind.dk, den nye er fariweb.dk.

dump:
CREATE TABLE `du_users` (
  `userid` int(255) NOT NULL auto_increment,
  `first_name` varchar(25) NOT NULL default '',
  `last_name` varchar(25) NOT NULL default '',
  `email_address` varchar(255) NOT NULL default '',
  `username` varchar(25) NOT NULL default '',
  `password` varchar(255) NOT NULL default '',
  `sex` varchar(25) NOT NULL default '',
  `age` varchar(25) NOT NULL default '',
  `location` varchar(25) NOT NULL default '',
  `cevil` varchar(25) NOT NULL default '',
  `search` varchar(25) NOT NULL default '',
  `mobile` varchar(25) NOT NULL default '',
  `website` varchar(100) NOT NULL default '',
  `info` longtext NOT NULL,
  `signup_date` datetime NOT NULL default '0000-00-00 00:00:00',
  `ip` varchar(15) NOT NULL default '',
  `onlinetime` varchar(255) NOT NULL default '0',
  `online` int(11) NOT NULL default '0',
  `ban` tinyint(1) NOT NULL default '0',
  `bangrund` text NOT NULL,
  `admin` tinyint(4) NOT NULL default '0',
  `supporter` tinyint(4) NOT NULL default '0',
  `photo` varchar(255) NOT NULL default 'nopic.jpg',
  `photo_acc` tinyint(1) NOT NULL default '0',
  `last_login` datetime NOT NULL default '0000-00-00 00:00:00',
  `akt_kode` varchar(10) NOT NULL default '',
  `kode` varchar(10) NOT NULL default '',
  `svar1` varchar(255) NOT NULL default '',
  `svar2` varchar(255) NOT NULL default '',
  `svar3` varchar(255) NOT NULL default '',
  `svar4` varchar(255) NOT NULL default '',
  `svar5` varchar(255) NOT NULL default '',
  `svar6` varchar(255) NOT NULL default '',
  `svar7` varchar(255) NOT NULL default '',
  `svar8` varchar(255) NOT NULL default '',
  `svar9` varchar(255) NOT NULL default '',
  `svar10` varchar(255) NOT NULL default '',
  PRIMARY KEY  (`userid`),
  UNIQUE KEY `username` (`username`),
  UNIQUE KEY `email_address` (`email_address`)
) TYPE=MyISAM COMMENT='Alle brugere i' AUTO_INCREMENT=77 ;
Avatar billede human Nybegynder
27. december 2004 - 16:09 #18
morteeart: Sorry, men jeg har ikke givet dig karma.
Avatar billede erikjacobsen Ekspert
27. december 2004 - 16:10 #19
Hvad siger du til Kommentar: morteeart 27/12-2004 15:05:59
Jeg syness ikke at det lyder til at jeg har spor lyst til at hjælpe dig i fald det er korret.
Avatar billede human Nybegynder
27. december 2004 - 16:12 #20
problemet er, jeg tjekker fx om en bruger kigger i sin egen gæstebog, hvor ejeren ikke har tilladelse til at skrive.
Så jeg tjekker med:
$usertjek = mysql_query("SELECT username FROM du_users WHERE username='".$_GET['Bruger']."'");
$usertjek_sql = mysql_num_rows($usertjek);
if($usertjek_sql > 0){
if($_GET['Bruger'] == $_SESSION['username']) {

Den tjekker om brugeren er i db'en, og om det er brugeren selv som kigger på siden.
Men hvis han retter hans navn i URL'en, til store elller små bogstaver som de ikke bliver brugt i databasen, så har han adgang til at skrive i den.
Avatar billede human Nybegynder
27. december 2004 - 16:16 #21
erikjacobsen: Det har jeg vist svaret på.
Avatar billede erikjacobsen Ekspert
27. december 2004 - 17:51 #22
Ja, det er jo nemt nok at sige. Kan du bevise det ikke er dig?
Karma er grundlæggende inderligt ligegyldigt, men for mit vedkommende står
jeg stille i dette spørgsmål indtil videre.
Avatar billede human Nybegynder
27. december 2004 - 17:58 #23
MAn er uskyldíg til modsatte er bevidst.

Altså er det ikke mig som skal bevise det er mig som ikke har skrevet det, men ham som skal bevise det er mig.

MEn ved du hvad, lad være med at svar hvis du ikke har lyst, sværre er det ikke.
Avatar billede human Nybegynder
27. december 2004 - 18:00 #24
Og så lad venligt være med at spamme mit spørgsmål (27/12-2004 17:51:06), det har intet relevant til spørgsmålet overhovedet.

Hvis du skal skrive her, så skriv noget jeg kan bruge til noget.
Avatar billede erikjacobsen Ekspert
27. december 2004 - 18:14 #25
Man er desværre ikke uskyldig indtil det modsatte er bevist, med det elendige
karmasystem vi har her. Den karma bliver lagt 1 minut efter dit sidste indlæg her,
på et tidspunkt hvor der ikke er mange brugere. I karmaen anvendes "omg" som du
også bruger. Det er indicier, ikke andet. Men du kan modbevise det er dig, og så
får du hjælp. Sværere er det ikke.
Avatar billede human Nybegynder
27. december 2004 - 18:17 #26
Tjahh.. Så må jeg desværre lade være med at få hjælp fra dig, for det kan jeg ikke.
Avatar billede erikjacobsen Ekspert
27. december 2004 - 18:23 #27
Hvis du vil, så kan du. Jeg kan fortælle dig hvordan.
Avatar billede human Nybegynder
27. december 2004 - 18:25 #28
hvordan?
Avatar billede erikjacobsen Ekspert
27. december 2004 - 19:09 #29
Og her skulle jeg så skrive hvordan du kunne bevise det ved at lægge en ny karma-beskrivelse,
men det jeg ville foreslå er jo li'så hullet et bevis, som alt det andet. Klag din nød til IDG
over at deres elendige karmasystem ødelægger muligheden for at få kvalificeret
hjælp på eksperten.dk.

Jeg holder mig til dit råd fra 17:58:48, og holder min mund.
Avatar billede human Nybegynder
27. december 2004 - 19:18 #30
lol din store idiot.
Avatar billede snowball Novice
30. december 2004 - 22:35 #31
human: Du bedes venligst holde dine indlæg i en sober tone sådan som reglerne foreskriver.

Du tildeles hermed en advarsel for overtrædelse af punkt 2.2 i reglerne - http://www.eksperten.dk/regler.phtml

Snowball / CoAdmin
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