|
| Typiske fejl begået i PHP for øvede Fra : Dan Storm |
Dato : 27-07-09 13:34 |
|
Hey gruppe!
Jeg er igang med at lave en slags opsamling til små artikler/guides jeg
er ved at skrive. I forbindelse med nogle tråde jeg fandt på diverse
forums er jeg stødt på.
Trådene handler i alt sin enkelthed om fejl som er begået af folk som
scripter i PHP. Ikke de enkelte fejl, men fejl man, både som nybegynder
men også rutineret, har en tendens til at begå igen og igen.
Eksempler på fejl som jeg ofte støder på:
* manglende afsluttende semikoloner
* assignment operators istedet for comparison operators
* infinite loops
* Output før headers
Altså, simple fejl såvel som kritiske fejl.
Jeg vil gerne lægge ud:
Jeg er slem til at huske at sætte de afsluttende semikolon når de er
påkrævet. Jeg har ikke lige nogen idé til hvordan jeg kan huske at gøre
det, så det bliver oftets trial'n'error.
Ydermere er jeg dårlig til at afslutte åbne forbindelser (cURL, MySQL,
fopen), men det forsøger jeg at huske ved at koble det sammen med mine
destructers i mine klasser.
Hvilke fejl begår du typisk? Og hvad gør du for at huske det fremover?
Hvad med fejl du støder på når du forsøger at hjælpe andre? Hvilke
støder du oftest på?
--
Dan Storm - storm at err0r dot dk / http://err0r.dk
People who claim they don't let little things bother
them have never slept in a room with a single mosquito.
| |
Leif Neland (27-07-2009)
| Kommentar Fra : Leif Neland |
Dato : 27-07-09 20:08 |
|
Dan Storm skrev:
> Ydermere er jeg dårlig til at afslutte åbne forbindelser (cURL, MySQL,
> fopen), men det forsøger jeg at huske ved at koble det sammen med mine
> destructers i mine klasser.
>
Lukkes de ikke automatisk når php-siden er færdig?
Leif
| |
Dan Storm (27-07-2009)
| Kommentar Fra : Dan Storm |
Dato : 27-07-09 20:58 |
|
Leif Neland skrev:
> Dan Storm skrev:
>> Ydermere er jeg dårlig til at afslutte åbne forbindelser (cURL, MySQL,
>> fopen), men det forsøger jeg at huske ved at koble det sammen med mine
>> destructers i mine klasser.
>>
>
> Lukkes de ikke automatisk når php-siden er færdig?
>
Jo, det vil de gøre i PHP's tilfælde, men for mig handler det også om
optimering af koden, også i forhold til de andre sprog jeg skriver i;
konsistens om du vil
--
Dan Storm - storm at err0r dot dk / http://err0r.dk
Tro ikke brugerne vil gøre noget for at undgå dit killfilter
- Så vigtig er du heller ikke!
| |
Martin Ploug (28-07-2009)
| Kommentar Fra : Martin Ploug |
Dato : 28-07-09 18:25 |
|
Dan Storm skrev:
> Leif Neland skrev:
>> Dan Storm skrev:
>>> Ydermere er jeg dårlig til at afslutte åbne forbindelser (cURL,
>>> MySQL, fopen), men det forsøger jeg at huske ved at koble det sammen
>>> med mine destructers i mine klasser.
>>>
>>
>> Lukkes de ikke automatisk når php-siden er færdig?
>>
>
> Jo, det vil de gøre i PHP's tilfælde, men for mig handler det også om
> optimering af koden, også i forhold til de andre sprog jeg skriver i;
> konsistens om du vil
>
Hej
Godt initiativ - jeg vil også gerne linke til det.
Jeg laver helt sikkert mange fejl - bl.a. manglende semikolon,
forkerte syntakser ( " i stedet for ' ' og den slags).
Vil du også skrive noget om, hvordan man kan undgå at få
"Websiden er forældet" og lign. når man bruger browserens frem -
og tilbageknap?
Det er der sikkert skrevet mange artikler om, men jeg kunne godt
tænke mig at få det skåret ud i pap i en artikel på dansk.
Mvh. Martin
| |
Dan Storm (28-07-2009)
| Kommentar Fra : Dan Storm |
Dato : 28-07-09 22:06 |
|
Martin Ploug skrev:
> Godt initiativ - jeg vil også gerne linke til det.
Jeg skal nok give lyd når jeg får den skrevet færdig.
> Vil du også skrive noget om, hvordan man kan undgå at få
> "Websiden er forældet" og lign. når man bruger browserens frem -
> og tilbageknap?
> Det er der sikkert skrevet mange artikler om, men jeg kunne godt
> tænke mig at få det skåret ud i pap i en artikel på dansk.
Jeg er ikke sikker på en det er 'fejl' som sådan eller det bør høre
under en slags 'tips og tricks' kategori? Men jeg skal ihvertfald nok
have det have det i tankerne - det kan jo være relevant for andre
tilbagemeldinger jeg får.
--
Dan Storm - storm at err0r dot dk / http://err0r.dk
Tro ikke brugerne vil gøre noget for at undgå dit killfilter
- Så vigtig er du heller ikke!
| |
Erik Ginnerskov (28-07-2009)
| Kommentar Fra : Erik Ginnerskov |
Dato : 28-07-09 14:05 |
|
Dan Storm wrote:
> Jeg er igang med at lave en slags opsamling til små artikler/guides
> jeg er ved at skrive. I forbindelse med nogle tråde jeg fandt på
> diverse forums er jeg stødt på.
Jeg er spændt på det ?færdige resultat. Det kunne tænkes, at siden bliver
linket til fra min side.
--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk - http://ginnerskov.dk
http://html-faq.dk
| |
Dan Storm (28-07-2009)
| Kommentar Fra : Dan Storm |
Dato : 28-07-09 14:30 |
|
Erik Ginnerskov skrev:
> Dan Storm wrote:
>
>> Jeg er igang med at lave en slags opsamling til små artikler/guides
>> jeg er ved at skrive. I forbindelse med nogle tråde jeg fandt på
>> diverse forums er jeg stødt på.
>
> Jeg er spændt på det ?færdige resultat. Det kunne tænkes, at siden
> bliver linket til fra min side.
Jeg håbede jo på nogle tilbagemeldinger fra folk herinde fra, men lige
nu ser det ud som om alle andre end jeg er 'fejlfri' ;)
Men jeg skal nok give lyd fra mig når jeg bliver færdig :)
--
Dan Storm - storm at err0r dot dk / http://err0r.dk
People who claim they don't let little things bother
them have never slept in a room with a single mosquito.
| |
Bertel Lund Hansen (28-07-2009)
| Kommentar Fra : Bertel Lund Hansen |
Dato : 28-07-09 15:24 |
|
Dan Storm skrev:
> Jeg håbede jo på nogle tilbagemeldinger fra folk herinde fra, men lige
> nu ser det ud som om alle andre end jeg er 'fejlfri' ;)
Jeg laver ikke banale fejl. Bevares, det sker at der lige smutter
et semikolon i farten, men det er ren klippeklistrefejl når jeg
kopierer dele af et statement.
De fejl jeg laver, er logiske, og dem kan man ikke redegøre for
så det hjælper andre.
Men en ting man godt kan advare imod, er det forhold at en
foreach-løkke opererer med kopier af arrayets elementer. Det var
en drilagtig fejlkilde for mig i en periode.
--
Bertel
http://bertel.lundhansen.dk/ FIDUSO: http://fiduso.dk/
| |
Dan Storm (28-07-2009)
| Kommentar Fra : Dan Storm |
Dato : 28-07-09 22:11 |
|
Bertel Lund Hansen skrev:
> Jeg laver ikke banale fejl. Bevares, det sker at der lige smutter
> et semikolon i farten, men det er ren klippeklistrefejl når jeg
> kopierer dele af et statement.
>
> De fejl jeg laver, er logiske, og dem kan man ikke redegøre for
> så det hjælper andre.
Jeg forstår godt hvad du mener.
Idéen er selvfølgelig ikke at man skal være opmærksom på de banale ting
man glemmer i farten.
Jeg tænker på sådan nogle ting som at huske at sætte de rette file
permissions (en klassisk fejl, som nybegyndere typisk ikke forstår
fejlmeddelelsen i), semikolon efter while() angivelser eller bruge de
forkerte sammenlignings operatorer.
> Men en ting man godt kan advare imod, er det forhold at en
> foreach-løkke opererer med kopier af arrayets elementer. Det var
> en drilagtig fejlkilde for mig i en periode.
Den er hermed noteret - mange tak for input.
--
Dan Storm - storm at err0r dot dk / http://err0r.dk
Tro ikke brugerne vil gøre noget for at undgå dit killfilter
- Så vigtig er du heller ikke!
| |
Bertel Lund Hansen (28-07-2009)
| Kommentar Fra : Bertel Lund Hansen |
Dato : 28-07-09 22:22 |
|
Dan Storm skrev:
> Den er hermed noteret - mange tak for input.
Forresten er der en anden ting som ikke er en fejl, men et godt
råd. Det ved jeg ikke om du vil have med?
Hver gang jeg skriver noget med en åbne- og en lukkedel, så
skriver jeg begge de to dele på en gang, og så fylder jeg
indholdet i bagefter. Det er helt generelt for al min kodning.
Eksempler hvor cursorbevægelser ikke er noteret:
strpos($line,"Goddag")
skrives
strpos() $line , "" Goddag
<style type= 'text.css'>
Bla bla bla
</style>
skrives
<> style type = '' text.css
<> /style
Bla bla bla
I f.eks. komplekse parentesudtryk er det en uvurderlig hjælp til
at holde tungen lige i munden.
--
Bertel
http://bertel.lundhansen.dk/ FIDUSO: http://fiduso.dk/
| |
Dan Storm (28-07-2009)
| Kommentar Fra : Dan Storm |
Dato : 28-07-09 22:38 |
|
Bertel Lund Hansen skrev:
> Forresten er der en anden ting som ikke er en fejl, men et godt
> råd. Det ved jeg ikke om du vil have med?
Well, jeg bliver nok nød til at dele det op i to artikler, når man også
tænker på indlægget fra Martin. En med fejl/fælder/misforståelser og en
med forskellige tips og tricks. F.eks. hvordan man skabe overblik over
sin kode, når udtryk skal blive komplicerede eller hvad man kan gøre for
at undgå dobbeltposts, hvordan man kan sikre sine forms mod spam og
lignende - så ja, jeg noterer det og benytter idéen i en anden artikel.
I virkeligheden ville det også være meget interessant at udvide tråden
med brugernes egne tips og tricks - hvadenten det er for at skabe
overblik i koden eller hvordan man undgår at folk smider html i ens
kommentarsystem - altså alt hvad folk nu er stødt på og er kommet på
smarte løsninger på.
Det kunne være en lærerig oplevelse for mig og sikkert også for andre.
--
Dan Storm - storm at err0r dot dk / http://err0r.dk
Tro ikke brugerne vil gøre noget for at undgå dit killfilter
- Så vigtig er du heller ikke!
| |
Erik Ginnerskov (29-07-2009)
| Kommentar Fra : Erik Ginnerskov |
Dato : 29-07-09 15:44 |
|
Bertel Lund Hansen wrote:
> Hver gang jeg skriver noget med en åbne- og en lukkedel, så
> skriver jeg begge de to dele på en gang, og så fylder jeg
> indholdet i bagefter. Det er helt generelt for al min kodning.
Lyder lidt lige som når jag skal lave lister i lister i ..., tager jeg et
niveau ad gangen, risikerer jeg ikke at glemme at lukke et listepunkt.
> I f.eks. komplekse parentesudtryk er det en uvurderlig hjælp til
> at holde tungen lige i munden.
Uafsluttede ting i såvel html som css, js eller serverside scripting kan få
underlige ting til at ske, ting der kan være svære at finde årsagen til.
--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk - http://ginnerskov.dk
http://html-faq.dk
| |
Stig Johansen (29-07-2009)
| Kommentar Fra : Stig Johansen |
Dato : 29-07-09 16:03 |
|
Nu koder jeg ikke rigtig i PHP, men:
Bertel Lund Hansen wrote:
> Eksempler hvor cursorbevægelser ikke er noteret:
>
> strpos($line,"Goddag")
> skrives
> strpos() $line , "" Goddag
Ville jeg starte som:
strpos(
$line - eller 'noget'
,"
Goddag
")
for til sidst at fjerne linebreaks.
På samme måde, hvis jeg skal kigge/rette i kode, så starter jeg med at lave
linebreaks på 'strategiske' steder.
I øvrigt bruger jeg HAPEdit til ASP/Javascript
< http://hapedit.free.fr/>
som også understøtter syntax highlighting til PHP.
En af de ting jeg sætter pris på er, at hvis man placerer curseren under
( eller { , så fremhæves den tilhørende ) eller }.
--
Med venlig hilsen
Stig Johansen
| |
Bertel Lund Hansen (29-07-2009)
| Kommentar Fra : Bertel Lund Hansen |
Dato : 29-07-09 16:24 |
|
Stig Johansen skrev:
> En af de ting jeg sætter pris på er, at hvis man placerer curseren under
> ( eller { , så fremhæves den tilhørende ) eller }.
Er syntaksfarvning og parentesmatching ikke efterhånden indbygget
standard i alle editorer? Det er i dem jeg har afprøvet, og min
yndlingseditor har da 4 år på bagen i den version jeg bruger.
--
Bertel
http://bertel.lundhansen.dk/ FIDUSO: http://fiduso.dk/
| |
Philip Nunnegaard (29-07-2009)
| Kommentar Fra : Philip Nunnegaard |
Dato : 29-07-09 17:02 |
|
Bertel Lund Hansen skrev:
> Er syntaksfarvning og parentesmatching ikke efterhånden indbygget
> standard i alle editorer? Det er i dem jeg har afprøvet, og min
> yndlingseditor har da 4 år på bagen i den version jeg bruger.
Den eneste editor jeg kender som ikke har det, og som jeg brugte indtil
for et par år siden, er Notepad (altså den der følger med Windows).
I dag bruger jeg Notepad++ til html/php og TopstyleLite til css. De har
selvfølgelig begge syntaksfarvning.
--
Philip - http://chartbase.dk
| |
Dan Storm (29-07-2009)
| Kommentar Fra : Dan Storm |
Dato : 29-07-09 19:34 |
|
Philip Nunnegaard skrev:
> Den eneste editor jeg kender som ikke har det, og som jeg brugte indtil
> for et par år siden, er Notepad (altså den der følger med Windows).
>
> I dag bruger jeg Notepad++ til html/php og TopstyleLite til css. De har
> selvfølgelig begge syntaksfarvning.
>
Endnu et interessant punkt at nævne i en tips og tricks/typiske fejl
artikel; diverse editore med deres små finurligheder - BOM, UTF-8
autocompletion og sådan noget...
--
Dan Storm - storm at err0r dot dk / http://err0r.dk
Tro ikke brugerne vil gøre noget for at undgå dit killfilter
- Så vigtig er du heller ikke!
| |
Vagn Kofoed (30-09-2009)
| Kommentar Fra : Vagn Kofoed |
Dato : 30-09-09 02:25 |
|
Dan Storm wrote in dk.edb.internet.webdesign.serverside.php:
>
> Jeg håbede jo på nogle tilbagemeldinger fra folk herinde fra, men lige
> nu ser det ud som om alle andre end jeg er 'fejlfri' ;)
>
> Men jeg skal nok give lyd fra mig når jeg bliver færdig :)
>
>
Jeg laver konstant fejl når jeg har med arrays at gøre, og hvis jeg har
brug for en 3-dimensional tabel er jeg på herrens mark. Jeg har arbejdet
med tabeller i alle mulige andre sprog, mem jeg har simpelthen aldrig
forstået logikken i php-arrays.
Vagn
--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
| |
|
|