Mærkelig $_POST fejl...

Tags:    php

Hej!
Jeg har en fil (top.php) som jeg har lidt problemer med... Den reagerer ikke når jeg poster en form:
Fold kodeboks ind/udKode 

Den udskriver ikke engang "hula".
Jeg kan ikke forstå det håber i kan.
(BTW: ting skrevet med STORT er censureret.. :))



Allerførst og fremmest, skal session_start() så aller øverst i dokumentet. Det er en header, og alle headers skal sendes FØR der kommer nogen som helst tekst til browseren. Inklusiv doctype.



Hej,

Det er rigtigt det Per siger, med session_start(), men prøv også lige at tilføje: error_reporting(E_ALL); i toppen, det gør at du vil få fejlene, og så kan du lige skrive hvad den giver dig, hvis der altså kommer nogen, hvis du ikke selv kan løse dem :D



PHP først, HTML til sidst!


Tror næsten at alt sker som det egentlig står skrevet. Men hvis du du udskriver "hula" et andet sted end i vinduets titellinje, så opdager du nok at det virker.
Og så skal du da godt nok have ryddet op i din kode. Det der slam er da ikke værd at læse. Ydermere med en oprydning opdager du også nemmere dine fejl.

Fold kodeboks ind/udKode 


Bare se hvor nem din kode bliver at læse, når man strukturere den på en hensigtsmæssig måde.



Indlæg senest redigeret d. 20.04.2008 19:56 af Bruger #10216
Ja allesammen, undskyld slammen! Det er et udlæg til koden der gerne skulle holde, men kan godt se at jeg nok burde have gjort den lidt pænere.. :)

(og forresten GNU:
Ja jeg jeg er enig i at man bør lave en flot kode MEN:
Jeg synes ikke at din kode er specielt hensigtsmæssig... Hvorfor ikke bare lade PHP udskrive det hele? Jeg hader personligt den der mix mellem HTML og et server-side sprog...
Det minder jo næsten om SMARTY kode... :S)

EDIT: Men jeg kan rigtig godt lide din måde at give variablen værdier uden en if-else sætning! Jeg ved ikke helt hvad den metode hedder, men jeg harset den før og vil nu klart gøre brug af den!

EDIT: BTW: hvad synes i om ideen med at sætte brugernavn og passwords i sessions? Det er ikke en potentiel risiko at tage vel?



Indlæg senest redigeret d. 20.04.2008 21:52 af Bruger #11328
Man skal ihvertfald sørge for at adgangskoden ikke er læselig, og det er også blevet gjort ved hjælp af md5().

Det med at du ikke kan lide mix, det undrer mig lidt idet den kode du selv har skrevet bruger du også et mix.



(og forresten GNU:
Ja jeg jeg er enig i at man bør lave en flot kode MEN:
Jeg synes ikke at din kode er specielt hensigtsmæssig... Hvorfor ikke bare lade PHP udskrive det hele? Jeg hader personligt den der mix mellem HTML og et server-side sprog...
Det minder jo næsten om SMARTY kode... :S)

dette mix kan være mere hensigtsmæssigt end at lade PHP udskrive det.

Når brugeren beder om at få side.php udleveret, kører webserveren en PHP-parser, for at gennemkøre det php-script der gemmer sig i filen. Derefter serveres outputtet til brugeren. HTML er noget, browseren henter, PHP er noget serveren udfører, og derefter lader browseren hente. Ved at undlade at outputte hele molevitten med PHP, fjerner man et led mellem end user og server - browseren henter outputtet direkte ned. Dette skaber mindre pres på webserveren, uden at skabe mere pres på browseren, end der alligevel ville komme.

Generelt er en god tommelfingerregel, at lade PHP udskrive så lidt tekst som muligt. Og holde alt statisk tekst udenfor PHP-regi.



Indlæg senest redigeret d. 20.04.2008 22:30 af Bruger #8223
Den opstilling jeg har foreslået er den opstilling hvor du laver det mindste "mix", altså den største adskillelse du over hovedet kan opnå i en og samme fil.

Ja, det ligner Smarty, eller det ligner templates og det er det også. Det er det mest logiske du kan gøre.

Der er en pointe ved at anvende templates, den går ud på at strukture hele din kode, så andre også kan læse den eller så du kan vende tilbage om 3 mdr. og stadig forstå hvad der sker. Det omfatter også at du senere kan ændre dit HTML, altså strukturen af din side uden at du skal bekymre dig om den data du får fra f.eks. en database. Eller du kan ændre din data uden du skal tænke på strukturen. Altså får du adskilt logikken fra det der kaldes viewet.

Der er ingen der siger at du skal bruge templates, men du skal i det mindste adskille PHP logikken fra HTML generationen. Så laver du heller ikke dumpefejl som at udskrive $_POST-værdierne i et title-tag.

Slut men ikke mindst, hvis du vil have PHP til at generere alt din HTML skal du sørme ikke springe ud og ind af php parseren så mange gange. Så skal der kun være et sæt "<?php ?>" ;)



Er to gange meget? For så springer dit script jo ihvertfald mere... Men anyways, det var ikke det spørgsmålet gik ud på og jeg vil bare sige tak for jeres mange henvendelser!



t