[PHP4] E_ALL geeft niet alle warnings op linux, wel op Win32

Pagina: 1
Acties:
  • 206 views sinds 30-01-2008
  • Reageer

  • JayVee
  • Registratie: Mei 2002
  • Laatst online: 14-11-2025

JayVee

shibby++!

Topicstarter
Hey!

Ik kwam laatst op een slecht moment (bij de klant) erachter dat PHP4 op linux niet alle Warnings toont! Uiteraard hebben we "error_reporting = E_ALL" in de php.ini staan.

Het gaat bijvoorbeeld om:
PHP:
1
2
3
4
$array = null;
foreach ( $array as $item ) {
    echo $item;
}
Op onze linux testserver geeft dit (raar genoeg!) geen (warning) foutmelding, op Windows bakken wel! Je zou verwachten dat dit soort elementaire dingen overal hetzelfde zijn.
Het betreft trouwens wel verschillende versies (4.3.10 op debian linux vs 4.3.8 en 4.4.0 op Win32), maar dat lijkt mij niet het probleem

Iemand een idee waar dat aan ligt en wat er nog meer voor verschillen zijn? Op welke OSen moet je testen om alle fouten (warnings en notices) tegen te komen vraag je je af!?

[ Voor 98% gewijzigd door JayVee op 16-10-2005 19:56 ]

ASCII stupid question, get a stupid ANSI!


  • elevator
  • Registratie: December 2001
  • Niet online

elevator

Officieel moto fan :)

Weet je zeker dat de display_errors ini setting wel hetzelfde zijn op beide servers? :)

  • JayVee
  • Registratie: Mei 2002
  • Laatst online: 14-11-2025

JayVee

shibby++!

Topicstarter
Staat op beide servers op
code:
1
display_errors = On

//edit:
We krijgen op de linux server ook notices en warnings, maar blijkbaar niet allemaal!

[ Voor 46% gewijzigd door JayVee op 17-10-2005 14:10 ]

ASCII stupid question, get a stupid ANSI!


  • GX
  • Registratie: Augustus 2000
  • Laatst online: 14-05-2025

GX

Nee.

Allicht staat er in de code bij de één wel wat en bij de ander niet ?

Anders kan je altijd nog even een error_reporting(E_ALL); bovenaan je script zetten zodat je er in ieder geval zeker van bent dat de errors in de output komen.

  • JayVee
  • Registratie: Mei 2002
  • Laatst online: 14-11-2025

JayVee

shibby++!

Topicstarter
Nope, de code is het ook niet. Zie de code hierboven, die op onze ontwikkelserver geen foutmelding genereerd, ook met
code:
1
error_reporting(E_ALL);
bovenin! Bij onze webhost hetzelfde!

ASCII stupid question, get a stupid ANSI!


  • Gertjan
  • Registratie: Oktober 2001
  • Laatst online: 07-02 20:23

Gertjan

mmmm, beer...

Yo JV! Alles goed? :)
Ik krijg het inderdaad ook niet voor elkaar om bij je voorbeeld een warning te genereren. Zelfde versie van Linux, zelfde OS. Onder PHP 5 (5.0.4) krijg ik echter wel een warning bij dezelfde code, ook onder Linux.
Misschien de manier waarop PHP4 op Linux met 'null' omgaat?

/edit
Trouwens: de notice die je je voorbeeld krijgt met de $dude-variabele is niet hetzelfde als de warning je verwacht bij de null-array. (De warning die je op Windows dus wel krijgt, en op Linux ook onder PHP5)

[ Voor 29% gewijzigd door Gertjan op 17-10-2005 16:54 ]


Verwijderd

is het niet zo dat null NULL moet zijn en dat Windows, hier case insensitive is? Natuurlijk is het dan alsnog geen array, maar het zou iets kunnen verklaren. Kan het nu even niet testen.

  • Gertjan
  • Registratie: Oktober 2001
  • Laatst online: 07-02 20:23

Gertjan

mmmm, beer...

Verwijderd schreef op maandag 17 oktober 2005 @ 16:54:
is het niet zo dat null NULL moet zijn en dat Windows, hier case insensitive is? Natuurlijk is het dan alsnog geen array, maar het zou iets kunnen verklaren. Kan het nu even niet testen.
Nope:
PHP:
1
2
3
4
5
6
7
8
9
10
11
gertjan@live:~/public_html$ cat test.php
<?
error_reporting(E_ALL);

$array = NULL;
foreach( $array as $item ) {
        print $item;
}
?>
gertjan@live:~/public_html$ php4 test.php
gertjan@live:~/public_html$

  • JayVee
  • Registratie: Mei 2002
  • Laatst online: 14-11-2025

JayVee

shibby++!

Topicstarter
Ali_Illegali schreef op maandag 17 oktober 2005 @ 16:52:
Yo JV! Alles goed? :) - 'sup dude!? >:)
Misschien de manier waarop PHP4 op Linux met 'null' omgaat? - dat denk ik ook

/edit
Trouwens: de notice die je je voorbeeld krijgt met de $dude-variabele is niet hetzelfde als de warning je verwacht bij de null-array. - Klopt, ik wilde ook alleen laten zien dat error reporting wel aan staat.
Verwijderd schreef op maandag 17 oktober 2005 @ 16:54:
is het niet zo dat null NULL moet zijn en dat Windows, hier case insensitive is? Natuurlijk is het dan alsnog geen array, maar het zou iets kunnen verklaren. Kan het nu even niet testen.
Nope, heb ik net even getest, geen verschil.

[ Voor 3% gewijzigd door JayVee op 17-10-2005 16:59 ]

ASCII stupid question, get a stupid ANSI!


Verwijderd

Kan het nu even niet testen.

Ik krijg trouwens gewoon een warning
PHP:
1
2
3
4
5
6
7
ini_set("display_errors", true);
error_reporting(E_ALL);
$array = null;
foreach ( $array as $item ) {
    echo $item;
}
?>

code:
1
Warning: Invalid argument supplied for foreach() in /xxx.nl/yyy/zzz.php on line 5


PHP Version 4.3.9
Linux

  • JayVee
  • Registratie: Mei 2002
  • Laatst online: 14-11-2025

JayVee

shibby++!

Topicstarter
Verwijderd schreef op maandag 17 oktober 2005 @ 17:00:
Ik krijg trouwens gewoon een warning
PHP:
1
2
3
4
5
6
7
ini_set("display_errors", true);
error_reporting(E_ALL);
$array = null;
foreach ( $array as $item ) {
    echo $item;
}
?>

PHP Version 4.3.9
Linux
A ha! Grappig, dan moet het ergens anders aan liggen! Heb ini_set("display_errors", true); (voor de zekerheid) toegevoegd aan het script en krijg nog steeds geen foutmelding!

Meer specs: Apache 2 - debian linux - AMD processor! Wat kan dat nou zijn?

ASCII stupid question, get a stupid ANSI!


  • Gertjan
  • Registratie: Oktober 2001
  • Laatst online: 07-02 20:23

Gertjan

mmmm, beer...

JayVee schreef op maandag 17 oktober 2005 @ 17:03:
Meer specs: Apache 2 - debian linux - AMD processor! Wat kan dat nou zijn?
Enige overeenkomst met mijn situatie is de distro: debian. Ik heb het getest met Apache, Apache2, cli en cgi: geven allemaal geen warning. Probleem zit dus in php zelf.
Kans is klein dat het daar aan ligt, maar processor is bij mij een Pentium

  • Wolfboy
  • Registratie: Januari 2001
  • Niet online

Wolfboy

ubi dubium ibi libertas

Ik krijg hier wel foutmeldingen

Server 1
Linux server 2.6.12-gentoo-r10 #1 SMP Sun Sep 18 14:55:43
i686 AMD Athlon(tm) XP 2600+ AuthenticAMD GNU/Linux
PHP 4.4.0-gentoo-r1 (cli) (built: Sep 21 2005 00:54:23)

Server 2
Linux server 2.6.11.11 #1 SMP Thu Jul 28 15:47:51 CEST 2005
i686 Pentium III (Coppermine) GenuineIntel GNU/Linux
PHP 4.4.0-gentoo-r1 (cli) (built: Sep 28 2005 15:17:30)

Server 3
FreeBSD server 4.7-RELEASE-p2 FreeBSD 4.7-RELEASE-p2 #0: Sun Dec 15 19:16:09 CET 2002
PHP 4.3.7

[ Voor 45% gewijzigd door Wolfboy op 17-10-2005 17:24 ]

Blog [Stackoverflow] [LinkedIn]


  • Gertjan
  • Registratie: Oktober 2001
  • Laatst online: 07-02 20:23

Gertjan

mmmm, beer...

Tjakkaaaa, is een bekende bug in php:
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=312890

Weet niet zeker of het Debian-specifiek is, maar het is als het goed is opgelost in 4.4.0

  • JayVee
  • Registratie: Mei 2002
  • Laatst online: 14-11-2025

JayVee

shibby++!

Topicstarter
Ah, hartstikke bedankt! Is dat ook opgelost. Dat is wel de eerste bug in PHP die ik ben tegen gekomen!
Ali_Illegali schreef op maandag 17 oktober 2005 @ 17:30:
Tjakkaaaa, is een bekende bug in php:
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=312890

Weet niet zeker of het Debian-specifiek is, maar het is als het goed is opgelost in 4.4.0
Het is een PHP bug, niet debian specifiek: http://bugs.php.net/bug.php?id=32670

[ Voor 66% gewijzigd door JayVee op 17-10-2005 19:20 ]

ASCII stupid question, get a stupid ANSI!

Pagina: 1