"Fonction" exit()

Mouki
Invité n'ayant pas de compte PHPfrance

02 févr. 2006, 14:08

C'est encore moi :)

Donc là j'suis en train d'évaluer un prog... et là, qu'est ce que je vois pas :
if ( $toto ){
        echo "Vous n'etes pas autorisé a visualiser cette page<br>";
        exit();
}
Question 1 : pourquoi ne pas marquer :
exit("Vous n'etes pas autorisé a visualiser cette page.");
Cependant, dans l'aide de la "fonction" exit(), on voit :
void exit ( [string status] )
void exit ( int status )
Note : PHP >= 4.2.0 n'affiche pas le message status si ce n'est pas un entier
Question 2 : je comprends pas la note :oops:

Encore merci d'avance...

Eléphant du PHP | 440 Messages

02 févr. 2006, 14:45

La fonction exit() permet de stopper net le script des son appel , ce qui peut etre benefique si elle est bien utilisé !

Si elle est place sur une page dynamique , en debut de script tu risque de voir ton site ne s'afficxher qu' a moitié (car l affichage du footage ne sera pas evalué)

pour la note jene peux pas t aider :oops:
C'est en faisant des erreurs et en osant demander de l'aide qu'on apprend ! Il n'est pas ridicule de ne pas savoir !

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

02 févr. 2006, 14:57

Pour la note, si tu dispose d'une version PHP supérieure ou égale à 4.2.0; exit n'affiche pas le paramètre si celui est autre chose qu'un entier.
Ce qui explique le echo puis le exit plutôt que tout dans le exit ;)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Invité
Invité n'ayant pas de compte PHPfrance

02 févr. 2006, 18:53

Bah justement, je ne suis pas d'accord avec la note...

J'utilise Wamp 5 (http://www.wampserver.com/) avec PHP 5.1.2, et justement, je viens de faire un test :
bonjour.
<?php
	echo" Arno...";
	exit("coucou");
?>
Et j'obtiens à l'écran :
bonjour. Arno...coucou
Alors ?!? :oops:

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

02 févr. 2006, 22:39

dans tous les cas perso je suis contre un exit() dans un code.

Au lieu de vouloir fuire par la porte de derrière vaut mieux s'arranger pour passer par la grande porte.

En clair éviter les exit() pour cacher des erreurs et préférer un code bien fait où toutes les éventualités sont réfléchies.

Ceci dis, ça ne change rien au faite que ça affiche tout de même la chaine de caractères.

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Mouki
Invité n'ayant pas de compte PHPfrance

03 févr. 2006, 10:02

Imaginons qu'une feuille PHP attende un $_POST["ID"], c'est pas forcément une mauvaise idée de faire :
if ( ! isset($_POST["ID"])){
    exit("Vous n'êtes pas autorisé à visualiser cette page");
}
Q1 : C'est pas très bien codé ?!?

ça affiche tout de même la chaine de caractères
Q2 : ce n'est pourtant pas ce que dis la note ?!?


Q3 : sachant que le prog a été codé :
if ( $toto ){
    echo "Vous n'etes pas autorisé a visualiser cette page<br>";
    exit();
}
dans mon rapport d'audit, je dis que c'est bien fait ou pas ?!? :?

Merci...

Mammouth du PHP | 768 Messages

03 févr. 2006, 10:23

Imaginons qu'une feuille PHP attende un $_POST["ID"], c'est pas forcément une mauvaise idée de faire :
if ( ! isset($_POST["ID"])){
    exit("Vous n'êtes pas autorisé à visualiser cette page");
}
Q1 : C'est pas très bien codé ?!?
Voilà comment je procède personnellement. Après tout, c'est une question de goût mais dans ton cas, les balises HTML en fin de page ne seront jamais lu

<html>
<head></head>
<body>
<?php
if ( isset($_POST['id']) ){
/*
      TRAITEMENT DE LA DEMANDE
*/
}
else
{
   echo "Vous n'êtes pas autorisé à visualiser cette page";
}
?>
</body>
</html>
M A R I O
Si une patte de lapin porte bonheur, qu'a-t-il bien pu arriver au lapin ?

Mouki
Invité n'ayant pas de compte PHPfrance

03 févr. 2006, 11:44

Merci Mario :D

Et pour les questions Q2 et Q3 ?!? Un amateur ?!? :)