Avatar billede scootergrisen Nybegynder
19. juni 2012 - 04:12 Der er 21 kommentarer og
1 løsning

Hvem vil kommenter min hjemmeside kildekode ?

Jeg har lavet den her hjemmeside : http://scootergrisen.dk/

Koden er primært PHP, HTML, CSS og Javascript.
Hvor PHP er det grundlæggende.

Jeg ville gerne høre jeres kommentar, mening, rettelser, ideer, forslag osv osv til alt koden så jeg kan gøre den endnu bedre.

Jeg syntes den fungere ret godt men ville da være rart og hører andres mening. Og jeg vil gerne hører jeres mening om alle filerne ikke kun PHP koden, men PHP koden er ligesom det grundlæggende så derfor oprettede jeg spørgsmålet her i PHP kategorien.

Jeg har samlet kildekode filerne i denne zip fil :
http://scootergrisen.dk/test/scootergrisen.dk_kildekode.zip

Jeg har fjerne alle de unødvendige filer som billeder og andet.
Avatar billede DeeDawg Nybegynder
19. juni 2012 - 04:26 #1
Udover at det er en virkelig dårlig idé at dele hele sin sides kildekode med andre?

Hvis vi kiggede efter det, kan du være sikker på at vi ville finde et sikkerhedshul, og det ville uden tvivl blive udnyttet af sørgelige personer.

Jeg vil foreslå dig at få fjernet det link med det samme!
Avatar billede scootergrisen Nybegynder
19. juni 2012 - 04:32 #2
#1 > Jeg har tænkt på det men det er en chance jeg er villig til at tage. Så du skal være velkommen til at kigge koden igennem.
Avatar billede olebole Juniormester
19. juni 2012 - 14:35 #3
<ole>

Jeg har kun kikket i et par enkelte (PHP-)filer, og det ser ikke ud som en kodestil, jeg vil anbefale. Umiddelbart ser det f.eks. ud til, At PHP skal knokle med at udskrive hele kildekoden, hvergang en bruger tilgår en side. Hvis det er tilfældet, hvad er så begrundelsen?

Du bør - de steder, hvor du ikke definerer konstanter - nok bruge arrays/objekter til dine konfigurationsvariabler. Ellers flyder dit globale scope med løse variabler, hvilket aldrig er hensigtsmæssigt.

Dine databasekoder ser yderst risikable ud. For det første ser jeg ikke nogen brugerstyring. En bruger, der bare kikker sider, må aldrig hente info i DB med en DB-bruger, som også har adgang til INSERT, UPDATE, ALTER, DROP, el. lign. En bruger må kun logges ind i DB med de privilegier, der lige nøjagtig er nok til det, han skal udføre. Brugerstyring er der, hvor al DB-sikkerhed begynder.

Desuden er det gamle MySQL-API dybt forældet (det var elendigt designet fra start) og afløst af MySQLI. Zend (php.net) fraråder selv brugen af MySQL og anbefaler i stedet MySQLI.

Tjek denne guide om prepared statements under MySQLI - og denne om basal fejlhåndtering.

Det var godt nok kun to filer, men der skulle vist også være nok til et pænt stykke tid  =)

/mvh
</bole>
Avatar billede scootergrisen Nybegynder
19. juni 2012 - 15:45 #4
#3>

Hvad er der i vejen med kodestilen og hvad ville være bedre ?
Hvad mener du med at PHP skal knokle med at udskrive hele kildekoden ?

Altså du mener jeg skal lave dette :

$headnoget              = '';
$sidetopbesked          = '';
$shortcuticon          = "shortcuticon0001.ico";
$datamappe              = "scooterhjemmeside";
$billedmappe            = "billeder";

om til et array eller objekt ?
Og hvorfor er det ikke godt at have løse variabler i det globale scope ?

Jeg bruger slet ikke sql da jeg ikke har kunne finde ud af det de gange jeg har forsøgt at lærer det, jeg har bare nået til at kunne finde ud af lidt med login og sende queryes men endnu ikke lykkes mig og bruge det til noget rigtigt. Så se bort fra sql.
Avatar billede olebole Juniormester
19. juni 2012 - 16:01 #5
"Hvad er der i vejen med kodestilen og hvad ville være bedre ?" >> Det, jeg skrev efterfølgende - og når det er galt, går jeg udfra, der er en hel del mere.

"Hvad mener du med at PHP skal knokle med at udskrive hele kildekoden ?" >> Jeg mener, jeg så en fil, der udskrev stort set hele HTML-koden til dokumentet. Hvorfor gør den det?

"Altså du mener jeg skal lave dette [...] om til et array eller objekt ?" >> Ja.

"Og hvorfor er det ikke godt at have løse variabler i det globale scope ?" >> Fordi du ikke har styr på dem - og risikerer roderi med navngivning.

"Jeg bruger slet ikke sql" >> Så slet funktionerne, så de ikke ligger og fylder i dokumenterne. Unødig kode sløver bare
Avatar billede scootergrisen Nybegynder
19. juni 2012 - 17:46 #6
#5 > Hvilken filer mener du som udskriver stort set hele HTML koden ?
Jeg gør sådan at jeg samler HTML koden der skal udskrives i en variabel også udskriver den når jeg vil. Jeg har de fleste funktioner gemt i funktioner.php fordi så har jeg dem samlet et sted næsten allesammen.
Er det det du mener ?

Kan du prøve at give et eksempel på sådan et global array og hvad fordelene er ved det ?

$indstilliner = array(
    'shortcuticon'          => 'shortcuticon0001.ico'
  ,'datamappe'            => 'scooterhjemmeside'
  ,'billedmappe'          => 'billeder'
  ...osv
);

også når jeg skal bruge det :

$GLOBALS[$indstillinger['shortcuticon']];

Er det sådan ?

Jeg syntes dog ikke har jeg noget koderi ved navngivning jeg bruger jo $GLOBALS[] så jeg kan sagtens have $sidetopbesked og $GLOBALS['sidetopbesked'] som 2 forskellige variabeler så vidt jeg ved.

om SQL > ok nu jeg har sat dem til kommentar, det mere så jeg kan huske det når jeg engang skal bruge det.

Kom gerne med flere forslag, kig gerne i funktioner.php filerne der er flere hvor den ene er størst og der er primært der koden er.
Avatar billede olebole Juniormester
19. juni 2012 - 18:20 #7
"Er det det du mener ?" >> Ja, hvorfor? Det svarer jo til, at Politiken skrev, satte og trykte en avis særskilt til hver kunde. Det gør man kun, hvis man har en helt særlig årsag.

Du skal ikke bruge $GLOBALS eller global indenfor funktionen. Det er dårlig og farlig kodeskik. I stedet skal du holde styr på dine variabler og sende dem med til funktionerne. Du bør kun have to huller, hvorigennem variabler kan slippe igennem, når du arbejder med funktioner:

1) Argumenter, medsendt i kaldet
2) Returværdien af funktionen

Alt andet er at betragte som roderi og medfører, at udvikleren aldrig kan holde styr på sin kode.

Filen /inc/config.inc.php:

$CNFG = array();

$CNFG['noget'] = array();
$CNFG['nogetAndet'] = array();
$CNFG['nogetTredie'] = array();
$CNFG['db'] = array(
    'host' => 'localhost',
    'user' => 'myUser',
    'pass' => 'myPass',
    'db' => 'myDefaultDB'
);

I filen /index.php medsender du den del af konfigurations array'et, som omhandler databasen, når du f.eks. kalder en funktion, der skal forbinde til din database:

<?php
$root = $_SERVER['DOCUMENT_ROOT'];
include($root.'inc/config.inc.php');
include($root.'inc/functions.inc.php');

conn2db($CNFG['db']);

// Og en masse kode
?>
Avatar billede olebole Juniormester
19. juni 2012 - 18:23 #8
- og vi kan jo godt lige putte den i en æske for dig  =)

<?php
$root = $_SERVER['DOCUMENT_ROOT'];
include($root.'inc/config.inc.php');
include($root.'inc/functions.inc.php');

conn2db($CNFG['db']);

// Og en masse kode
?>
Avatar billede scootergrisen Nybegynder
19. juni 2012 - 19:12 #9
Så hvis det var op til dig så skulle man bare aldrig bruge $GLOBALS ?

Lad os sige vi tildeler en værdi til en variabel og $GLOBALS bruges som her :

$billede = galleri('thumbnail', 'visbilled.php?' . $GLOBALS['dataogbilledmappe'] . '/billed2655.jpg', 'billed2655');

Så skulle jeg i stedet skriver dette eller hvad ?
$billede = galleri('thumbnail', 'visbilled.php?' . $CNFG['nogetmedstier']['dataogbilledmappe'] . '/billed2655.jpg', 'billed2655');

Jeg kan da godt se det er smart at have variablerne i et array men jeg kan ikke se hvorfor det skulle være et problem at bruge $GLOBALS. Så kan man jo altid hente en variablen uden at skulle til og sende den ind i en funktion først.
Avatar billede Broxigar Praktikant
19. juni 2012 - 19:19 #10
Offtopic: olebole, hvordan får du kode ind i en blå firkant? Jeg kunne ikke finde det under Eksperten's FAQ
Avatar billede olebole Juniormester
19. juni 2012 - 19:43 #11
#10: Jeg bruger denne lille editor. I bunden af guiden står et link til en anden guide, som omtaler forskellige BB-koder, forfatteren har forsket sig frem til fungerer. De blå kasser frembringer du med [div ][/div ]. Håber, mellemrummene gør, de ikke bliver parsed - for kasser får man jo aldrig for mange/meget af  0:)

"Så hvis det var op til dig så skulle man bare aldrig bruge $GLOBALS ?" >> Hvis det stod til 99% af alle professionelle PHP-udviklere, ja!

"men jeg kan ikke se hvorfor det skulle være et problem at bruge $GLOBALS" >> Nej, det er jeg klar over, men det kan du på et senere tidspunkt, når/hvis du lærer noget mere. Globale variabler regnes for skidt kodepraksis i alle sprog, jeg kender til - og det er efterhånden en del  =)

"Så kan man jo altid hente en variablen uden at skulle til og sende den ind i en funktion først." >> Præcis - og derfor er det noget skidt, for så sker det, når du ikke forventer det og på måder, du ikke havde forudset.
Avatar billede scootergrisen Nybegynder
19. juni 2012 - 20:07 #12
det var kattens

Og hvorfor har eksperten ikke for længst lavet nogen knapper så man kan gøre sådan noget ?

Det virker total åndsvagt specielt når det er en hjemmeside hvor der skriver om kode.

Det er for mig ret ubrugeligt når der er en bruger lige lige paster hele sin CSS fil i ren tekst også fordi det kommer til at stå med store line-height.

Gider folkene bag eksperten bare ikke gøre det bedre ?
Avatar billede olebole Juniormester
19. juni 2012 - 20:35 #13
"Gider folkene bag eksperten bare ikke gøre det bedre ?" >> Folk bag Eksperten ...?!!??!!! Det er sgu den bedste idé, nogen er kommet med i mange år!

Jeg kender de to knægte, der i sin tid lavede Eksperten, og som solgte til IDG. IDG har så indsat en, der hedder Lars til at administrere sitet.

Jeg har aldrig mødt ham - og agter at lade det forblive sådan i fremtiden - men det indtryk, han efterlader sig på E er alt andet end godt. Mere arrogant fraværende, sløv og ugidelig døgenigt skal man godt nok lede længe efter! Jeg har stadig til gode at møde en bruger, der på en skala fra 1-10 bedømmer ham højere end -5 ...!!!  :o|
Avatar billede scootergrisen Nybegynder
19. juni 2012 - 20:57 #14
Det var da ærgeligt.

Nu bruger jeg ikke eksperten.dk så tit fordi jeg syntes bare udvikleren.dk og usenet er bedre men nu ville jeg hører flere folks mening fordi der ikke rigtig var nogen der svarede de andre steder.

Nu bruger jeg Firefox med adBlockplus normalt så en side som denne er til at holde ud at bruge men når man så besøger siden i en "ubeskyttet" browser så bliver man er på eksperten.dk mødt af dette syns :
http://scootergrisen.dk/test/billeder/billed0009.jpg

Og det jo fint nok folk vil tjene penge fordi det koster penge at holde kørende og sådan men jeg forstår bare ikke hvorfor folk vil svine deres hjemmeside til på den måde.

Men helt ærligt hvor svært kan det være at lave en knap hvor man kan marker noget tekst/kode også trykke på knapper også kommer der div uden om. Hvis man kan lave sådan en hjemmeside her så kan man vel også lave sådan en knap. Også til fed og kursiv hvorfor skal man sidde og skrive det selv det ville desuden være flottere hvis der bare var nogen små knapper istedet for forklaring om hvordan man bruger dem som her under hvor jeg skriver.
Avatar billede olebole Juniormester
19. juni 2012 - 21:26 #15
Det er ikke spor svært, men for Lars er det tydeligvis en kamp bare at holde sig oprejst. Det sker absolut nada med de bunker af bugs, der har været kendt i årevis! Trestjernet usympatisk adfærd!

Egentlig er der ikke noget merkantilt i vejen for bare at fortsætte, sålænge indholdsleverandørerne (brugerne) fortsætter med at levere ganske gratis indhold, selvom vi bliver tisset i ansigtet. At der så er tale om elendig etik og uforskammet ligegyldighed, er en helt anden ting ... men det koster jo ikke umiddelbart i lommen. Og vi finder os bare i at blive behandlet som (næsten) umælende kvæg!

Én ting er reklamerne, men tjek, hvad du får smidt i hovedet af cookies! Der må ikke engang laves et login, uden brugeren skal spørges, om det er i orden, at der bruges en cookie.

Det skal tydeligt fremgå, hvem der sætter kagen, hvilke info der gemmes og hvad de skal bruges til. Brugeren skal eksplicit give sit samtykke (f.eks. med en checkbox), og et samtykke skal til hver en tid kunne tilbagekaldes. Dette skal vel at mærke ske hvergang siden vil sætte en cookie med et nyt formål eller indhold.

Loven er forholdsvis ny i dansk sammenhæng, og der er rigtig mange, som ikke overholder den. Måske, Eksperten burde være prøveklud forn en anmeldelse  =)
Avatar billede scootergrisen Nybegynder
19. juni 2012 - 22:15 #16
Hvis du siger der er en anden end de oprindelige som har overtaget siden så er det måske derfor da det kan være den nye ejer ikke kender koden osv og derfor har svært ved at rette i den måske eller bare ikke har tid og lyst hvis han har gang i andre sider.
Avatar billede scootergrisen Nybegynder
19. juni 2012 - 22:20 #17
Og hvorfor hulan kan alle de indlæg der skrives dog ikke være potentielle svar så spørgeren kan vælge mellem alt det der er skrevet som svar og folk ikke skal til og skrive "skriv igen som svar så kan du få point".

Altså det virker jo ikke for folk når de skal bestemme svar og give point og låse og alt det.

Ville være bedre på en anden måde som virker logisk for folk så det bare virker.
Avatar billede inteeeL Nybegynder
20. juni 2012 - 16:32 #18
@17: Tjaa, tjo.. Synes nu ikke pointsystemet er den substantielle skavank på eksperten - der har såmænd fungeret ganske fint, forudsat at brugerne gider tage sig til til at læse FAQ'en. Men jeg er helt med jeres andre problemstillinger.
Avatar billede inteeeL Nybegynder
21. juni 2012 - 00:29 #19
Rettelse: Synes nu ikke pointsystemet er den substantielle skavank på eksperten - det har såmænd fungeret ganske fint, forudsat at brugerne gider tage sig sammen til at læse FAQ'en. Men jeg er helt enig med jeres andre problemstillinger.
Avatar billede scootergrisen Nybegynder
18. juli 2012 - 02:17 #20
Nu har jeg så rettet en del på min kode så næsten alle indstillinger er i den samme variabel i stedet for en masse variabler.

Kom gerne med flere forslag.
Avatar billede olebole Juniormester
18. juli 2012 - 16:46 #21
'Scooterbacon' ... nu med funky avatar! kører det for dig! Cool!  *o)
Avatar billede scootergrisen Nybegynder
17. august 2012 - 10:58 #22
lukker
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