Avatar billede Asky Forsker
23. marts 2017 - 08:55 Der er 4 kommentarer og
1 løsning

Kan en response.php - fil blive for stor?

I min programmering af response.php i forbindelse med en formular er jeg stødt på et problem.
I formularen har jeg tilføjet 6 nye  felter. I min test fik jeg først  de 6 rigtige bestillinger, men også et par mere, som ikke var mærket af. Det tydede på en fejl i respons-filen. Jeg fandt et par småting, som jeg rettede, hvilket gjorde, at jeg fik fejlmeddelelsen HTTP error 500.
Response- filen gennemløber i øjeblikket ca. 150 muligheder (.$v1."". $v2."" osv.) Kan jeg have nået et maksimum, som systemet ikke kan håndtere?
Avatar billede Slater Ekspert
23. marts 2017 - 09:08 #1
Nej. Filen er ikke for stor og at tjekke 150 muligheder er absolut intet, hvis det er gjort nogenlunde fornuftigt. Jeg er dog ikke sikker på jeg forstår dit $v1."".$v2 eksempel. Hvordan fungerer det? Er det SQL eller PHP?

Men har du fejlbeskeder slået til? En 500-fejl kan være næsten hvad som helst, hvis fejlbeskeder er slået fra, og kan være voldsomt besværligt at debugge. Hvis du ikke ved hvad jeg snakker om, så prøv at smide:
error_reporting(E_ALL);
ini_set('display_errors', 1);
ind i toppen af din PHP-fil.
Avatar billede Asky Forsker
23. marts 2017 - 09:37 #2
Til hver post i formularen har respons.php følgende kode:
$v1= "";
if (!empty($_POST)) {
    if (isset($_POST['laeselyst_01_550']) && $_POST['laeselyst_01_550']!='') {
        $v1 = "laeselyst_01_550 ".($_POST['laeselyst_01_550']."stk. Det skulle være .....  /");
    }
}
$v1 bliver så brugt der, hvor bestillingerne omsættes til en mail.
Avatar billede acore Ekspert
23. marts 2017 - 10:04 #3
Der er en begrænsning i php på hvor mange felter du kan have i en form. Den er normalt med max_input_vars normalt sat til 1024, men kan let rettes fx .htaccess.

Om det er årsagen,ved kun du.

Se evt http://php.net/manual/en/info.configuration.php#ini.max-input-vars for mere info.
Avatar billede Slater Ekspert
23. marts 2017 - 10:35 #4
Det lyder som noget der virkelig burde være skrevet som en løkke for overskuelighedens skyld, men ud over det er der ikke umiddelbart noget galt i det. PHP har intet problem med at læse den smule kode.

max_input_vars er en mulighed, men jeg har dog aldrig set en sat til under 150.
Avatar billede Asky Forsker
28. marts 2017 - 13:33 #5
Da jeg havde brugt noget tid med at lede i koden efter fejlen, konstruerede jeg i stedet en ny fil. Det tog ca. 20 min, da det meste kunne kopieres fra andre filer. jeg fandt aldrig fejlen selvom jeg havde indsat:
error_reporting(E_ALL);
ini_set('display_errors', 1);
Den nye fil fungerede med det samme.
At skrive en ny fil kan altså være hurtigere end at lede i timevis efter en fejl ;-)

"Der er en begrænsning i php på hvor mange felter du kan have i en form. Den er normalt med max_input_vars normalt sat til 1024, men kan let rettes fx .htaccess. "
fra Acore var faktisk svaret på mit spørgsmål.
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

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