par
caroube » 29 juil. 2008, 21:30
Merci de ta réponse.
Dans le premier cas, j'ai
Code : Tout sélectionner
PHP Warning: array_merge() [<a href='function.array-merge'>function.array-merge
</a>]: Argument #1 is not an array in D:\xxx\test.php on line 3
PHP Warning: array_merge() [<a href='function.array-merge'>function.array-merge
</a>]: Argument #2 is not an array in D:\xxx\test.php on line 3
Status: 200 OK
X-Powered-By: PHP/5.2.6
Content-type: text/html
<br />
<b>Warning</b>: array_merge() [<a href='function.array-merge'>function.array-me
rge</a>]: Argument #1 is not an array in <b>D:\xxx\test.php</b> on line <b>3</b><br />
<br />
<b>Warning</b>: array_merge() [<a href='function.array-merge'>function.array-me
rge</a>]: Argument #2 is not an array in <b>D:\xxx\test.php</b> on line <b>3</b><br />
Dans le second
Code : Tout sélectionner
PHP Warning: array_merge() [<a href='function.array-merge'>function.array-merge
</a>]: Argument #1 is not an array in D:\xxx\test.php on line 3
PHP Warning: array_merge() [<a href='function.array-merge'>function.array-merge
</a>]: Argument #2 is not an array in D:\xxx\test.php on line 3
Status: 200 OK
X-Powered-By: PHP/5.2.6
Content-type: text/html
a<br />
<b>Warning</b>: array_merge() [<a href='function.array-merge'>function.array-me
rge</a>]: Argument #1 is not an array in <b>D:\xxx\test.php</b> on line <b>3</b><br />
<br />
<b>Warning</b>: array_merge() [<a href='function.array-merge'>function.array-me
rge</a>]: Argument #2 is not an array in <b>D:\xxx\test.php</b> on line <b>3</b><br />
1) Je n'avais d'ailleurs pas remarqué que le message d'erreur s'affiche deux fois, y compris en mode web.
2) en mode telnet, la différence entre le 1er et le second, c'est le "a" de l'echo juste après le "content-type".
3) c'est ce qu'il y a avant le status qui s'affiche dans le browser car le warning n'est pas affiché en gras et il n'y a pas de retour chariot entre les deux messages d'erreur.
Edit 1 : il y a deux erreurs car les deux arguments de la fonction sont faux. On laisse tomber le point 1
Edit 2 : c'est encore pire que ce je croyais. En fait, le mode opératoire est le suivant, en modifiant la page test.php et en rechargeant :
<? array_merge ("a", "b"); ?>
---> Le site Web ne peut pas afficher la page; Erreur 500
<?
echo "a";
array_merge ("a", "b");
?>
---> Le site Web ne peut pas afficher la page; Erreur 500
<?
echo "a";
//array_merge ("a", "b");
?>
---> a
<?
array_merge ("a", "b");
?>
---> PHP Warning: array_merge() [function.array-merge]: Argument #1 ...
En fait, il a fallu qu'il y ait un affichage correct de la page test pour qu'ensuite le message d'erreur s'affiche. Par contre, si j'ouvre une page test2.php avec une erreur, je repars avec l'erreur 500. Jusqu'à ce qu'il y ait un affichage correct de test2.php. Et là, ensuite, à l'affichage suivant, j'ai bien le message d'erreur.
Sinon, tout le reste reste vrai
Edit 3 : Encore un nouvel essai ce matin. En lançant le script en mode telnet avec redirection
Code : Tout sélectionner
c:\>php-cgi.exe test.php > test.txt
PHP Warning: array_merge() [<a href='function.array-merge'>function.array-merge
</a>]: Argument #1 is not an array in D:\xxx\test.php on line 3
PHP Warning: array_merge() [<a href='function.array-merge'>function.array-merge
</a>]: Argument #2 is not an array in D:\xxx\test.php on line 3
et on récupère dans test.txt
Code : Tout sélectionner
Status: 200 OK
X-Powered-By: PHP/5.2.6
Content-type: text/html
<br />
<b>Warning</b>: array_merge() [<a href='function.array-merge'>function.array-me
rge</a>]: Argument #1 is not an array in <b>D:\xxx\test.php</b> on line <b>3</b><br />
<br />
<b>Warning</b>: array_merge() [<a href='function.array-merge'>function.array-me
rge</a>]: Argument #2 is not an array in <b>D:\xxx\test.php</b> on line <b>3</b><br />
Ce qui veut dire que la sortie standard et la sortie erreur ne sont pas identiques.
Donc maintenant, la question est : comment faire en sorte que la sortie erreur ne soit pas envoyée au browser, mais uniquement la sortie standard.
Merci de ta réponse.
Dans le premier cas, j'ai
[code]
PHP Warning: array_merge() [<a href='function.array-merge'>function.array-merge
</a>]: Argument #1 is not an array in D:\xxx\test.php on line 3
PHP Warning: array_merge() [<a href='function.array-merge'>function.array-merge
</a>]: Argument #2 is not an array in D:\xxx\test.php on line 3
Status: 200 OK
X-Powered-By: PHP/5.2.6
Content-type: text/html
<br />
<b>Warning</b>: array_merge() [<a href='function.array-merge'>function.array-me
rge</a>]: Argument #1 is not an array in <b>D:\xxx\test.php</b> on line <b>3</b><br />
<br />
<b>Warning</b>: array_merge() [<a href='function.array-merge'>function.array-me
rge</a>]: Argument #2 is not an array in <b>D:\xxx\test.php</b> on line <b>3</b><br />
[/code]
Dans le second
[code]
PHP Warning: array_merge() [<a href='function.array-merge'>function.array-merge
</a>]: Argument #1 is not an array in D:\xxx\test.php on line 3
PHP Warning: array_merge() [<a href='function.array-merge'>function.array-merge
</a>]: Argument #2 is not an array in D:\xxx\test.php on line 3
Status: 200 OK
X-Powered-By: PHP/5.2.6
Content-type: text/html
a<br />
<b>Warning</b>: array_merge() [<a href='function.array-merge'>function.array-me
rge</a>]: Argument #1 is not an array in <b>D:\xxx\test.php</b> on line <b>3</b><br />
<br />
<b>Warning</b>: array_merge() [<a href='function.array-merge'>function.array-me
rge</a>]: Argument #2 is not an array in <b>D:\xxx\test.php</b> on line <b>3</b><br />
[/code]
1) Je n'avais d'ailleurs pas remarqué que le message d'erreur s'affiche deux fois, y compris en mode web.
2) en mode telnet, la différence entre le 1er et le second, c'est le "a" de l'echo juste après le "content-type".
3) c'est ce qu'il y a avant le status qui s'affiche dans le browser car le warning n'est pas affiché en gras et il n'y a pas de retour chariot entre les deux messages d'erreur.
[color=red]Edit 1 :[/color] il y a deux erreurs car les deux arguments de la fonction sont faux. On laisse tomber le point 1
[color=red]Edit 2 :[/color] c'est encore pire que ce je croyais. En fait, le mode opératoire est le suivant, en modifiant la page test.php et en rechargeant :
[php]<? array_merge ("a", "b"); ?>[/php]
---> Le site Web ne peut pas afficher la page; Erreur 500
[php]<?
echo "a";
array_merge ("a", "b");
?>[/php]
---> Le site Web ne peut pas afficher la page; Erreur 500
[php]<?
echo "a";
//array_merge ("a", "b");
?>[/php]
---> a
[php]<?
array_merge ("a", "b");
?>[/php]
---> PHP Warning: array_merge() [function.array-merge]: Argument #1 ...
En fait, il a fallu qu'il y ait un affichage correct de la page test pour qu'ensuite le message d'erreur s'affiche. Par contre, si j'ouvre une page test2.php avec une erreur, je repars avec l'erreur 500. Jusqu'à ce qu'il y ait un affichage correct de test2.php. Et là, ensuite, à l'affichage suivant, j'ai bien le message d'erreur.
Sinon, tout le reste reste vrai
[color=red]Edit 3 :[/color] Encore un nouvel essai ce matin. En lançant le script en mode telnet avec redirection
[code]
c:\>php-cgi.exe test.php > test.txt
PHP Warning: array_merge() [<a href='function.array-merge'>function.array-merge
</a>]: Argument #1 is not an array in D:\xxx\test.php on line 3
PHP Warning: array_merge() [<a href='function.array-merge'>function.array-merge
</a>]: Argument #2 is not an array in D:\xxx\test.php on line 3
[/code]
et on récupère dans test.txt
[code]
Status: 200 OK
X-Powered-By: PHP/5.2.6
Content-type: text/html
<br />
<b>Warning</b>: array_merge() [<a href='function.array-merge'>function.array-me
rge</a>]: Argument #1 is not an array in <b>D:\xxx\test.php</b> on line <b>3</b><br />
<br />
<b>Warning</b>: array_merge() [<a href='function.array-merge'>function.array-me
rge</a>]: Argument #2 is not an array in <b>D:\xxx\test.php</b> on line <b>3</b><br />
[/code]
Ce qui veut dire que la sortie standard et la sortie erreur ne sont pas identiques.
Donc maintenant, la question est : comment faire en sorte que la sortie erreur ne soit pas envoyée au browser, mais uniquement la sortie standard.