Une histoire d'include et d'exit

Une histoire d'include et d'exit - PHP - Programmation

Marsh Posté le 11-03-2005 à 19:50:15    

Bonjour,
Et tout d'abord je vous remerci d'éxister, j'croit que j'ai enfin trouvé une communauté php qui bouge, j'aurais dut y pensé avant d'allé voir sur ce forum. Bref j'vais quand même vous éxpliquer mon problème :pt1cable:  
 
Alors voila, je fait un site avec avec une page principal (index.php) et quand on clique sur un lien, la page vient s'inclure dans index.php enfin vous connaissez le systéme, ça donne une URL du genre www.monsite.com/index.php?page=commentaire
mais la ou ça pose problème, c'est que dans mon fichier inclu j'ai un exit, et donc j'ai pas la fin de la page index.php .
Merci de m'aider  :jap:  

Reply

Marsh Posté le 11-03-2005 à 19:50:15   

Reply

Marsh Posté le 11-03-2005 à 19:52:18    

bha vire l'exit :o


---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 11-03-2005 à 20:01:52    

Bah oué mais je l'ai mis c'est qu'il est nécéssaire.
Il est là que quand la page est appelé depuis un certain formulaire.

Reply

Marsh Posté le 11-03-2005 à 20:03:26    

bha c'est que c'est mal codé !
mets une condiditon pour pas qu'il fasse le exit !
 
connaissant pas ton code, je peux pas t'aider plus


---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 11-03-2005 à 20:19:02    

J'ai fait éxprés de mettre un exit dans mon code, et je suis obligé.
Ya y-il un moyen pour que cet exit n'est pas d'éffet dans la page mère ?

Reply

Marsh Posté le 11-03-2005 à 20:21:08    

oui, avec une condition (if)
 
donne le code bordel :fou:


---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 11-03-2005 à 20:40:26    

#---------- On test si il des informations érronées ou si tout les champs sont vides ----------
 
if (@count($champRemplis) <= 1 or @count($mauvaisFormat) > 0 or $_POST[reaffiche] == 1)  // 1 champ obligatoirement remplis (Submit)
{
if(@count($champRemplis) <= 1)
 {echo "Vous n'avez remplis aucun champs<br>";
 }
if (@count($mauvaisFormat) > 0)
 {echo "<br>Les informations d'un ou plusieurs champs sont érronées<br>\nCorrigé le format de: ";
  // Liste des informations érronnées
  foreach($mauvaisFormat as $clé => $valeur)
   {echo "<br>&nbsp;&nbsp;&nbsp;{$étiquette[$clé]}";
  }
 }  
#---------- Réafficher le formulaire ----------
if($_POST[sexe] == "M" ){$homme=CHECKED;}
if($_POST[sexe] == "F" ){$femme=CHECKED;}
 
echo'<form method="post" action="index.php?page=ajoutindividu">
 
<table border="0" align="center" cellspacing="1">
  <tr>
    <td><div align="right">Sexe:</div></td>
    <td>
        <div align="left">
         &nbsp;&nbsp;Homme<INPUT type=radio name="sexe" '.$homme.' value="M">&nbsp;&nbsp;Femme<INPUT type=radio name="sexe" '.$femme.' value="F">
        </div></td>
  </tr>
  <tr>
    <td><div align="right">Nom</div></td>
    <td>
        <div align="left">
          <input name="nom" type="text" value="'.$_POST[nom].'" size="24">
        </div></td>
  </tr>
  <tr>
    <td><div align="right">Pr&eacute;nom</div></td>
    <td>
        <div align="left">
          <input name="prenom" type="text" value="'.$_POST[prenom].'" size="24">
        </div></td>
  </tr>
  <tr>
    <td><div align="right">Naissance</div></td>
    <td>
        <div align="left">
          <input type="text" name="naissancej" value="'.$_POST[naissancej].'" size="4">
          <input type="text" name="naissancem" value="'.$_POST[naissancem].'" size="4">
          <input type="text" name="naissancea" value="'.$_POST[naissancea].'" size="7">
          (jj-mm-aaaa)</div></td>
  </tr>
  <tr>
    <td><div align="right">Décés</div></td>
    <td>
        <div align="left">
          <input type="text" name="decesj" value="'.$_POST[decesj].'" size="4">
          <input type="text" name="decesm" value="'.$_POST[decesm].'" size="4">
          <input type="text" name="decesa" value="'.$_POST[decesa].'" size="7">
          (jj-mm-aaaa)</div></td>
  </tr>
  <tr>
    <td><div align="right">ID P&egrave;re</div></td>
    <td>
        <div align="left">
          <input name="idpere" type="text" value="'.$_POST[idpere].'" size="24">
        </div></td>
  </tr>
  <tr>
    <td><div align="right">ID M&egrave;re</div></td>
    <td>
        <div align="left">
          <input name="idmere" type="text" value="'.$_POST[idmere].'" size="24">
        </div></td>
  </tr>
  <tr>
    <td>
        <div align="center">        </div>
    </td>
    <td><input type="reset" name="Submit" value="Effacer">
        <input type="submit" name="Submit" value="Envoyer"></td>
  </tr>
</table>
</form>';
exit;
}
 
voila

Reply

Marsh Posté le 11-03-2005 à 20:45:45    

euh ... ca sert a quoi de mettre un exit en fin script ??


---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 11-03-2005 à 20:48:16    

et je parle pas du code html plus que pourri !
 
et elle viennent d'ou les variables de la premiere ligne ?


---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 11-03-2005 à 21:10:57    

le exit c'est pasque je ne doit pas éxécuter la fin du script quand je passe par ce bloc d'instruction.
$champremplis et $mauvaisformat, sont des tableau que j'ai fait a partir de variable venant d'un formulaire, et $_POST[reaffiche] vient directement d'un formulaire comme son nom l'indique.

Reply

Marsh Posté le 11-03-2005 à 21:10:57   

Reply

Marsh Posté le 11-03-2005 à 22:34:48    

tu sait pas faire un

Code :
  1. if(la bonne page) exit

??


---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 11-03-2005 à 22:55:51    

J'croit qu'on c pas comprit, mais c'est pas grave, j'ai trouvé une autre méthode.

Reply

Marsh Posté le 12-03-2005 à 14:16:52    

Je crois que celui qui n'as pas compris c'est toi.
 
C'est debile de metre un exit dans un page php, sauf dans de tres rares cas (mais pas dans le tien).
 
Dis moi, petite question, quand tu affiche ton formulaire, ta page html elle se termine comment ??
Parceque la avec ton exit je ne vois pas de "</body></html>"...
Personellement je trouve pas ca tres bien de terminer une page html par un "</form>" sans rien d'autre.

Reply

Marsh Posté le 12-03-2005 à 16:07:52    

c'est horriblement codé !
 
mets error_reporting(E_ALL) pour apprendre à programmer correctement : si t'as une seule erreur, c'est que tu dois revoir tes 'methodes' de developpement
 
pour les $_POST,$_GET etc, il est préférable de les utiliser avec des quotes : $_POST['tavariable']
 
un count() ne s'applique qu'a des tableaux, je sais pas d'ou viennent tes variables
les @ sont à éviter le plus possible
les accents dans les nom de variables sont à bannir aussi


Message édité par Profil supprimé le 12-03-2005 à 16:09:27
Reply

Marsh Posté le 12-03-2005 à 17:28:32    


 
 
Pas d'accord avec le truc des @.
 
Perso je les utilise abondamment dans le sens ou une commande peut toujours foirer , par exemple les commandes mysql foirent si tout a coup la base de donnée se deconnecte ou commet une erreur.
 
Alors plutot que de donner un splendide erreur Fatal, comprenant le nom de mes scripts et accessoirement le nom de la base de donnée et autre joyeuseté qu'il vaut mieux laisser secretes, j'ai preferer mette un @ devant ces commandes et les suivre par un 'or' suivit d'une fonction qui renvoie une erreur "Standard" a l'utilisateur, inscrit dans les logs l'erreur, et tue le script


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 12-03-2005 à 17:36:25    

esox_ch a écrit :

Pas d'accord avec le truc des @.
 
Perso je les utilise abondamment dans le sens ou une commande peut toujours foirer , par exemple les commandes mysql foirent si tout a coup la base de donnée se deconnecte ou commet une erreur.
 
Alors plutot que de donner un splendide erreur Fatal, comprenant le nom de mes scripts et accessoirement le nom de la base de donnée et autre joyeuseté qu'il vaut mieux laisser secretes, j'ai preferer mette un @ devant ces commandes et les suivre par un 'or' suivit d'une fonction qui renvoie une erreur "Standard" a l'utilisateur, inscrit dans les logs l'erreur, et tue le script


dans ce cas je suis d'accord, mais la plupart du temps les gens qui utilisent le @ le font uniquement pour eviter l'affichage d'erreurs a cause d'un retour de fonction non traité auparavant ou, pire, parce que c'est mal codé et que c'est une solution de facilité (le coup du @count ici)


---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 12-03-2005 à 17:41:24    

Oui biensur ici c'est mal utilisé, mais il faut pas bannir l'utilisation des @ pour autant ;) Car si bien utilisés ça peut etre utile


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 12-03-2005 à 17:43:31    

esox_ch a écrit :

Oui biensur ici c'est mal utilisé, mais il faut pas bannir l'utilisation des @ pour autant ;) Car si bien utilisés ça peut etre utile


C'est comme le Javascript [:atsuko]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 12-03-2005 à 18:01:40    

Les ActiveX [:atsuko]


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 12-03-2005 à 18:17:43    

esox_ch a écrit :

Les ActiveX [:atsuko]


non http://rulzofpunk.free.fr/smileys/crashburn_fou.gif


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 12-03-2005 à 18:44:14    

Roh je plaisantais ! :D


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 12-03-2005 à 19:49:01    

fai un gestionnaire d'erreur

Reply

Marsh Posté le 13-03-2005 à 01:21:33    

benamoubeach a écrit :

fai un gestionnaire d'erreur

Je pense egalement que c'est la methode la plus "propre" pour "ne pas afficher" les mesages d'erreur tout en les traitant.
 
D'ailleurs avec un gestionnaire d'erreur perso, il est possible de faire un log des erreurs (avec un envoi de mail a l'admin si besoin).
 
Voila un article sur lequel j'etais tombe qui est pas mal :
http://www.zend.com/zend/tut/tutorial-eckhouse.php


Message édité par cerel le 13-03-2005 à 01:22:06
Reply

Marsh Posté le 13-03-2005 à 17:22:55    

Eh bah didon, vous étes pas trés tolérant avec les débutants  :cry:  
Bon alors, je vais éssayé de répondre a vos questions:
 
Dis moi, petite question, quand tu affiche ton formulaire, ta page html elle se termine comment ??
Parceque la avec ton exit je ne vois pas de "</body></html>"...
Personellement je trouve pas ca tres bien de terminer une page html par un "</form>" sans rien d'autre.
 
Ceci est un fichier inclu, les balise de fin ce trouvent donc dans une autre page.
 
un count() ne s'applique qu'a des tableaux, je sais pas d'ou viennent tes variables
 
mes variables sont des tableau, donc ça tombe bien.
 
les @ sont à éviter le plus possible  
 
les tableau que je compte ne sont pas forcement défini, c'est pourquoi je ne veut pas qu'il me retourne de message d'erreur.
 
mets error_reporting(E_ALL)
 
j'doit le mettre où ça, à la fin de toutes mes pages ?
 
fai un gestionnaire d'erreur
 
c'est quoi ça   :??:

Reply

Marsh Posté le 14-03-2005 à 11:49:46    

esox_ch a écrit :

Pas d'accord avec le truc des @.
 
Perso je les utilise abondamment dans le sens ou une commande peut toujours foirer , par exemple les commandes mysql foirent si tout a coup la base de donnée se deconnecte ou commet une erreur.
 
Alors plutot que de donner un splendide erreur Fatal, comprenant le nom de mes scripts et accessoirement le nom de la base de donnée et autre joyeuseté qu'il vaut mieux laisser secretes, j'ai preferer mette un @ devant ces commandes et les suivre par un 'or' suivit d'une fonction qui renvoie une erreur "Standard" a l'utilisateur, inscrit dans les logs l'erreur, et tue le script


Comme a dit benamoubeach, avec un gestionnaire d'erreur bien fait, tu n'as jamais besoin d'utiliser @.

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed