Avatar billede htx98i17 Professor
18. januar 2007 - 12:40 Der er 22 kommentarer og
1 løsning

nybegynder i PHP5

Hej

Det er første gang idag jeg ser på PHP5. Jeg troede ikke det skulle blive det store problem, men der tog jeg vidst fejl...

Jeg har følgende fejl:
Notice: Undefined index in...line 6

og den linje er :
$orderbyt = ($_GET['orderby'] == 1) ? "tk.firma,tk.fornavn ASC" : "tol.id DESC";

Hvad er der galt der?

hvis jeg definere orderby forsvinder fejlen. Jeg har ikke oplevet denne fejlmeddelelse før....
Avatar billede showsource Seniormester
18. januar 2007 - 12:50 #1
Det er den måde error_reporting er sat til, som "laver fejlen"

$orderbyt = (isset($_GET['orderby']) && $_GET['orderby'] == 1) ? "tk.firma,tk.fornavn ASC" : "tol.id DESC");
Avatar billede htx98i17 Professor
18. januar 2007 - 12:51 #2
okay jeg kan skrive ini_set('error_reporting', "E_ALL & ~E_NOTICE");

men er det så alle php-fejl den ikke viser?
Avatar billede showsource Seniormester
18. januar 2007 - 12:53 #3
Nej kun "notices and coding standards warnings"
Avatar billede htx98i17 Professor
18. januar 2007 - 12:59 #4
Jeg fatter ikke det her...

Jeg har et system i php, programmeret i en ældre version af php. Det system er flyttet over på en maskine med PHP5.

I starten af alle filer har jeg skrevet:
ini_set('display_errors','on');
ini_set('error_reporting', "E_ALL & ~E_NOTICE");

Fordi at hvis der er en fejl, så er siden helt blank. Hvis jeg skriver "hej" som dt første i dokumentet, bliver det heller ikke vist.

Jeg troede isi_set skulle løse det problem?
Avatar billede htx98i17 Professor
18. januar 2007 - 13:02 #5
ini_set :)
Avatar billede showsource Seniormester
18. januar 2007 - 13:04 #6
Prøv evt. til en start med:
<?php
ini_set('error_reporing', 0);

........

Hvis du kan bruge .htaccess kan du også gøre det her, i stedet for i hvert script
Avatar billede htx98i17 Professor
18. januar 2007 - 13:05 #7
ini_set('error_reporing', 0);

viser blank side
Avatar billede htx98i17 Professor
18. januar 2007 - 13:06 #8
ini_set('error_reporting', 0); // med t

viser blank side
Avatar billede htx98i17 Professor
18. januar 2007 - 13:07 #9
Det er egen server, så jeg skal have det rette til i php.ini, men vil gerne lige forstå det inden jeg retter...
Avatar billede showsource Seniormester
18. januar 2007 - 13:10 #10
Det kan ikke kun være NOTICE du får, der må være nogle andre fejl også
Avatar billede htx98i17 Professor
18. januar 2007 - 13:11 #11
problemet er at den ikke skriver nogle fejl overhovedet?
heller ikke med ini_set('display_errors','on');
Avatar billede htx98i17 Professor
18. januar 2007 - 13:13 #12
Eller dvs. den med ini_set('display_errors','on'); viser NOTICEs på i index.php men ikke på vis.php

Og i hver fil er samme include hvor ini_set('display_errors','on'); er i...
Avatar billede showsource Seniormester
18. januar 2007 - 13:13 #13
Prøv at dropppe ini_set() i dine scripts, og bruge
error_reporting  =  E_ALL
i din php.ini

Genstart serveren
Avatar billede htx98i17 Professor
18. januar 2007 - 13:15 #14
så skal jeg have fat i en tekniker, jeg kan ikke finde ud af SSH :(
Avatar billede showsource Seniormester
18. januar 2007 - 13:21 #15
hmm, ok men hvad viser en <?php phpinfo(); ?> om error_reporting
Avatar billede htx98i17 Professor
18. januar 2007 - 13:22 #16
den er sat til off

men med ini_set('display_errors','on'); skulle den jo være i vinkel
men det er den f.eks. kun i index.php og ikke i vis.php
og der er som sagt samme include i de to filer
Avatar billede htx98i17 Professor
18. januar 2007 - 13:44 #17
nej undskyld jeg troede du mente display_errors
error_reporting er sat til 6143 ?
Avatar billede htx98i17 Professor
18. januar 2007 - 15:30 #18
Så fik jeg en tekniker til at lave om i php.ini
display errors blev sat on
error reporting sat til 6135

Så blever fejlene vist, så jeg kan debugge

men noget jeg så har lagt mærke til:
en header("location...") bliver ikke afbrudt hvis der skrives noget til browseren. Er der nogen som ved noget om det?
Avatar billede showsource Seniormester
18. januar 2007 - 19:12 #19
Måske brugen af ob_start() i scriptet?
Avatar billede htx98i17 Professor
18. januar 2007 - 20:42 #20
nej det bruger jeg ikke.
Jeg tænker det også er en opsætning i php.
Jeg synes godt nok php5 er noget mærkelig...
Avatar billede htx98i17 Professor
15. april 2007 - 16:53 #21
lukker

nogen der vil have point?
Avatar billede showsource Seniormester
16. april 2007 - 01:34 #22
nogen det er jo mig! :O)

Og nej, det lykkedes mig jo ikke at finde din fejl, men at det er en fejl i din kode, er jeg ikke i tvivl om...

Og starten på dit spm, er netop brugen af
if(noget == 1)
og hvis noget ikke er defineret, eller du ikke bruger isset(noget), vil NOTICE fejl vises, hvis alle fejl (+NOTICE) skal vises.

Selv bruger jeg ALTID
error_reporting = E_ALL
i php.ini på min testmaskine, fordi det så vil virke på "alle" webservere.
Avatar billede showsource Seniormester
16. april 2007 - 01:36 #23
Og sgu umiddelbart, så vil
ini_set('error_reporting', "E_ALL & ~E_NOTICE");

vise alle fejl, men ikke notice fejl
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