Avatar billede Asky Forsker
08. december 2012 - 16:23 Der er 20 kommentarer og
1 løsning

PHP og HTML5

Da jeg er blevet ret begejstret for html5, har jeg designet mange af mine sider om, og har sparet masser af overflødig kode væk. Der er dog lige en detalje, som er værd at få frem. I mine formularer brugte jeg tidligere at definere et indputfelt med fx name="adresse". Samtidig kører der på feltet en PHP programmerering, der tjekker om feltet er udfyldt.
Jeg har forstået at i HTML5 definerer man felter med id="adresse".
Men den går ikke! Selvom feltet er udfyldt vil PHP-en komme med en fejlmelding, som om feltet var tomt. Jeg har derfor rettet tilbage til name=. Spørgsmålet er, hvad eksperterne vil gøre?
skrive både id= og name=? Eller bare fortsætte med name=?
Til oplysning: på serveren kører PHP4.
Avatar billede Slettet bruger
08. december 2012 - 16:40 #1
De skal stadig have et name.
- id'et er kun til brug for javascript ude i browseren

id'et bor i dokumentets "namespace", name i formens.
Avatar billede olebole Juniormester
08. december 2012 - 18:24 #2
<ole>

@Asky: Du har misforstået, hvad HTML5 definerer som lovligt. For de fleste elementer er attributten id tilladt.

For enkelte elementer er name attributten også lovlig - nemlig for kontrolelementer til brug i en form. Har disse ikke en name attribut, sendes de ikke med til serveren ved submit af den omkransende form.

Bruger du JavaScript i dokumentet, har du både mulighed for at finde et enkelt element med document.getElementById eller en collection af elementer med document.getElementsByName.

Hvis din server stadig kører PHP4, bør du nok i første omgang bruge mere energi på at opdatere dén side. PHP5 er trods alt over otte år gammel, så PHP4 er nærmest at betragte som en antikvitet  *o)

/mvh
</bole>
Avatar billede Asky Forsker
09. december 2012 - 12:22 #3
Tak for svarene. Jeg er nu en del klogere.
For øvrigt forsøger jeg at bruge html5 i stedet for JavaScript, hvor det er muligt. Nogle slår nemlig JaveScript fra i deres browsere.
I min sendkommando i formularerne står både id og name, hvad siger man til det?
<div class="submit">
<input type="submit" value="Bestil" name="send" id="send"></div>

<div class="reset">
<input type="reset" value="Ryd formular" name="slet" id="slet"></div>
Avatar billede olebole Juniormester
09. december 2012 - 15:13 #4
Det sker der ikke noget ved, så længe der er tale om et element, hvor name er tilladt.

Til gengæld behøver du ikke være nervøs for de fire WWW-brugere, som slår JavaScript fra. Store dele af nettet er totalt ubrugeligt uden JS, så der er stort set ingen, der slår det fra.
Avatar billede scootergrisen Nybegynder
09. december 2012 - 20:37 #5
Se her for flere muligheder med form og input tags i HTML 5 : http://scootergrisen.dk/htmlgrisen/kode_form_tag.php
Avatar billede Asky Forsker
09. december 2012 - 22:06 #6
Tak for det. Det er en rigtig lærerig side.
Jeg kan konstatere, at ingen af felterne har et "name", men at de browsere, der forstår html5 (IE9, CROME, Firefox m fl) tjekker feltet for det korrekte input.
Jeg er nok nødt til stadigvæk at have "name" på felterne og lave PHP, da ikke alle har de sidste nye versioner af browserne.
Forretningsføreren, der modtager bestillingerne kører fx Windows XP og IE8! Jeg laver også særskilte Stylesheets for IE<9.
Til Ole
Serveren er TDCWebmore, hvor PHP-en så vidt jeg er orienteret stadigvæk er PHP4. På min private side (asky.dk) er det dog PHP5 (Webhosting)
Avatar billede olebole Juniormester
09. december 2012 - 22:25 #7
I langt de fleste tilfælde er det stadig nødvendigt at bruge HTML4.01 og JavaScript, da der stadig er mange på XP/IE8 - ikke mindst, hvis man laver sider til erhvervs-/organisationslivet.

TDC skriver på denne side:

Her følger nogle informationer om PHP og MySQL på TDC Webmores Classic Webhotel.

Der bliver brugt følgende af MySQL version på Webhotel Classic: 3.23.49

Der bliver brugt følgende af PHP version på Webhotel Classic: 4.4.5

Desværre kan vi ikke tilbyde nyere versioner på Webhotel Classic, Hvis der er brug for nyere versioner af PHP og/eller MySQL bør i overveje at skifte til vores nyere produkt Mail+Web Linux, som kan findes på vores Hjemmeside: http://www.tdcwebmore.dk/[/div]
I bør helt klart opdatere. De versioner har ikke længere noget at gøre på WWW
Avatar billede olebole Juniormester
09. december 2012 - 22:26 #8
Ups ... den sidste linje er min kommentar, som ikke hører med til citatet  =)
Avatar billede arne_v Ekspert
10. december 2012 - 00:02 #9
Og id= er ikke noget nyt i HTML 5 - det var ogsaa en mulighed i HTML 4.
Avatar billede scootergrisen Nybegynder
10. december 2012 - 05:54 #10
Du bruger bare <input type="x" name="y"> i din HTML kode.
Også $_POST['y'] i din PHP kode.

Så har du væriden at det input felt når formularen er sendt.

Det er din PHP koden der skal checke det indsendte data på den seriøse måde.
HTML og CSS kan du bruge til at gøre oplevelsen bedre for brugeren fordi så behøver brugeren ikke sende formularen for at få afvide om det indtastede er rigtigt.

Det der er rigtigt smart med de nye HTML5 formular koder og CSS koder er at du kan bruge det nu uden ulempe. Din formular virker også i de gamle browsere, det er bare mere smart i de nye browesere som forstår koden.

Men ellers kom med et link til din kode så kan vi kigge på den og komme med forslag til forbedringer.
Avatar billede Asky Forsker
10. december 2012 - 08:50 #11
vi har faktisk dette abonnement"Mail+Web Linux".
"Det der er rigtigt smart med de nye HTML5 formular koder og CSS koder er at du kan bruge det nu uden ulempe. Din formular virker også i de gamle browsere, det er bare mere smart i de nye browsere som forstår koden." Dette citat er jeg meget enig i. Formularer med runde hjørner i inputfelterne får bare ikke de runde hjørner i IE8, men virker upåklageligt. Smarte farveskift med musen virker heller ikke. Jeg har leget med det her: http://www.bibliodan.dk/Konference_Soerup2013.php
Jeg har prøvet et plugin til IE8, som også giver runde hjørner, men det giver en M e g e t langsom browser. Det har jeg taget væk igen.
Avatar billede olebole Juniormester
10. december 2012 - 15:34 #12
Det er ikke svært at lave runde hjørner på input felter med grafik. To små billeder - og det virker lynhurtigt i alle browsere.

Der er næppe nogen, der vil være uenig i kommentaren:

"Det der er rigtigt smart med de nye HTML5 formular koder og CSS koder er at du kan bruge det nu uden ulempe. Din formular virker også i de gamle browsere, det er bare mere smart i de nye browsere som forstår koden.".

Men det kræver, man har de browsere, som ikke understøtter de pågældende features - og løbende husker at teste i dem - så man kan udvikle et alternativ.

Et alternativ er vigtigt i de situationer, hvor den HTML5 feature, man ønsker at benytte, har indflydelse på funktionaliteten. Man bør således ikke nøjes med HTML5 validering, men bør tilbyde ældre browsere (f.eks. IE7 og 8) alternativet.

Har man tænkt seriøse tanker, da man designede siden, er det naturligvis heller ikke helt ligegyldigt, hvordan siden ser ud - og om felterne har runde eller firkantede hjørner. Så også her bør man nok tilbyde et alternativ  =)
Avatar billede Asky Forsker
10. december 2012 - 17:16 #13
Når vi nu taler om hjørner, var det en fil ved navn PIE.htc, der skulle ligge i roden på serveren. Man henviser til den i koden med behaviour: url(PIE.htc);. Den lavede dog ravage ved at gøre browseren langsom, så den ikke rigtig ville afslutte formularerne.
for øvrigt har jeg stadigvæk en gammel bærbar med Windows XP, hvor jeg afprøver mine side. Der nemlig også noget med tilpasning til mindre skærme. Det ender jo nok med, at folk bestiller i formularerne på deres smartphones.
Avatar billede scootergrisen Nybegynder
10. december 2012 - 21:05 #14
Du kan godt bruge de nye formular muligheder bedre.

Brug type"number" til postnummer og andre feltet som kun skal have tal.

Brug type="tel" til telefon.

Også brug eventuelt placeholder til at vise en tekst i feltet.
Brug title og pattern til at gøre det endnu bedre for eksemple til at vise at CVR nummer skal indtastes som XXXXXX-XXXX.

Med CSS kan du give felterne forskellig farve alt efter om brugeren har indtastede noget gyldigt eller ugyldigt : http://localhost/htmlgrisen/kode_form_css.php

Du kan teste det i Opera, det er den browser der er bedst til at vise de nye formular koder i øjeblikket.
Avatar billede olebole Juniormester
10. december 2012 - 22:08 #15
- men man skal vel stadig huske at skrive en brugbar URL(?)  ;o)
Avatar billede Asky Forsker
11. december 2012 - 09:19 #16
Det er spændende at være på forkant, men jeg har været tilbageholdende med at bruge de ting, der nævnes her.
Dels fordi det jo er en slags dobbeltkonfekt idet PHP-en også kontrollerer disse ting fx om det er et korrekt pstnummer på fire cifre, om telefonnummeret er 8 eller 10 cifre, korrekt email osv. og så fordi den browser de fleste bruger nemlig IE ikke engang i version 9 viser fx placeholders. Hvis alle bare brugte Opera eller Crome, så det anderledes ud, men min målgruppe er nok IE og for nogles vedkommende i ældre versioner.
På den anden side, hvis koden ingen skade gør, men bare ikke vises i IE, kan man jo godt være på forkant til fornøjelse for de få, der bruger andre browsere.
Avatar billede olebole Juniormester
11. december 2012 - 15:46 #17
"fx om det er et korrekt pstnummer på fire cifre" >> Ja, og det er faktisk ikke kun HTML5, man skal passe på her. Man skal også sikre sig, man faktisk kender de præcise regler selv. De fleste danske postnumre er ganske rigtigt på 4 ciffre - men det gælder ikke alle de, som kun er på 3 ciffre  *o)

Telefonnumre bør man også passe lidt på. Der er rigtig mange danskere, som bor i Skåne og arbejder på Sjælland. Hvis de skal have lov at bruge siden, skal svenske telefonnumre også validere positivt.

Det er helt generelle overvejelser vedr. validering og har intet specielt med HTML5 at gøre - ligesom id-attributten heller ikke er en HTML5 specialitet (som Arne_V anførte i #9).

Du er sådan set ikke på forkant ... det er selve meningen med standarden. Med HTML5 er man overgået til en lidt anden model for standarden, end man har brugt før. HTML5 er først planlagt til at være helt færdig i 2022, men det er meningen, at vi skal begynde at bruge de forskellige features, efterhånden som de bliver færdige. Meningen er så også, at vi serverer traditionelle løsninger for browsere, som ikke understøtter de nye features - og som stadig er i brug.

Bruger du HTML5 'med sikkerhedsnet', bruger du HTML5, som det er meningen  =)
Avatar billede Asky Forsker
11. december 2012 - 19:50 #18
Det her har været en interessant diskussion, som har bekræftet mig i, at man skal vide, hvad man har med at gøre i denne forvirrende kode- og browserverden. En ting er sikkert: kunderne brokker sig over det mindste drilleri i sådan en kode.
Tak til Scootergrisen, Olebole m fl.
Håber vi kan fortsætte diskussionen en anden god gang.
Avatar billede arne_v Ekspert
11. december 2012 - 20:06 #19
Oprindeligt blev det sagt at HTML 5 foerst ville vaere faerdig i 2022.

Men der blev offentliggjordt en plan i September som siger:

5.0 - faerdig 2014

5.1 - faerdig 2016
Avatar billede scootergrisen Nybegynder
11. december 2012 - 21:09 #20
Der er ikke nogen ulempe ved at bruge de nye HTML5 formular input typer osv.
Så det der med at "jamen mine brugere har IE 8 så derfor vil jeg ikke bruge det" det dur ikke i dette tilfælde.

Og som sagt så giver det en bedre oplevelse for brugeren at man kan se om det indtastede er gyldigt eller ej lige så snart man trykker på en knap eller før man sender formularen.

Modsat hvis du kun checker med PHP så skal formularen sendes hver gang det skal kontrolles og når brugeren så har tastet noget forkert 2-3 gange så begynder det at værre irriterende.

Med de nye HTML5 og CSS3 formular muligheder så får brugeren feedback med det samme og det giver en meget bedre oplevelse.
Avatar billede olebole Juniormester
11. december 2012 - 21:41 #21
@arne_v: Tak, jeg hørte nogle rygter i sommers, men troede faktisk ikke, det var gået igennem. Således belært, finder jeg sordinen frem  *o)

@scootergrisen: Jeg tror nu ikke, der er nogen i tråden, som er i tvivl om, at HTML5/CSS3 er fremragende.

Hvormeget 'med det samme' man bør give brugeren feedback, er dog ikke så lige til at afgøre. Det handler meget om, hvad det er for en type data, der indtastes - og hvordan.

Heldigvis findes der folk, som undersøger, hvad der faktisk virker, og hvordan brugerens hjerne forsøger at tolke den feedback, den får. Selvom artiklen her ikke er helt ny, så giver den noget at tænke over ... og den menneskelige krybdyrhjerne har næppe ændret sig meget siden  =)
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