IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Problème d'inclusion de fichiers


Sujet :

Langage PHP

  1. #1
    Invité
    Invité(e)
    Par défaut Problème d'inclusion de fichiers
    Bonjour à tous,

    j'ai regardé sur la FAQ et le forum je ne trouve pas de solution a mon problème, problème qui est le suivant :

    Je développe un "logiciel" avec PHP & MySQL en MVC et dans au moment d'inclure les fichiers qui vont bien bin il ne m'exécute pas mon script PHP après mon require_once MAIS il ne m'affiche aucune erreur...c'est grave?

  2. #2
    Membre Expert
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Par défaut
    salut,

    on peut voir le code ?
    A priori les fichiers sont inclus vu qu'il y a pas d'erreurs (à moins que tu caches les erreurs dans ton php.ini ou par un E_ALL dans ton script)

  3. #3
    Invité
    Invité(e)
    Par défaut
    Donc voici le code :

    -le fichier de test qui ne fonctionne pas (les echo divers et variés n'ont rien a voir avec le logiciel final ^^ je précise lol)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <?php
    	echo "kikou";
    	require_once ("../Controler/animaux.controler.php");
    	echo "kikou2";
     
    	$test = new Animaux(1);
     
    	echo "a";
    ?>
    -le fichier animaux.controler.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    <?php
     
    	require_once("../Classe/connexion.class.php");
    	require_once("../Classe/animaux.class.php");
     
    	//////////////////////////////////////
    	/* Traitement du formulaire d'ajout */
    	//////////////////////////////////////
     
    	function traitementAjoutAnim($_anim_lib) {
    		if( Animaux::existeAnimLib($_anim_lib) )
    			throw new Exception("L'animal : { $_anim_lib } existe déjà !");
    		Animaux::ajout($_anim_lib);
    	}
     
    	/////////////////////////////////////////////
    	/* Traitement du formulaire de suppression */
    	/////////////////////////////////////////////
     
    	function traitementSupprimeAnim($_anim_id) {
    		if( ! Animaux::existeAnimId($_anim_id) )
    			throw new Exception("L'animal dont l'id est : { $_anim_id } n'existe pas !");
    		Animaux::supprime($_anim_id);
    	}
     
    	//////////////////////////////////////////////
    	/* Traitement du formulaire de modification */
    	//////////////////////////////////////////////
     
    	function traitementModifAnim($_anim_id, $_newVal) {
    		if( ! Animaux::existeAnimId($_anim_id) )
    			throw new Exception("L'animal dont l'id est : { $_anim_id } n'existe pas !");
    		$modifierAnim = new Animaux($_anim_id);
    		$modifierAnim.setLibAnim($_newVal);
    	}
     
    	if( isset($_POST['ajout']) ) {
    		try {
    			traitementAjoutAnim($_POST['anim_lib']);
    			echo "Le nouvel animal a bien été ajouté !";
    			?>
    			<script type="text/javascript">
    				window.setTimeout("location=('../Vue/animaux.vue.php');",1500)
    			</script>
    			<?php
    		}
    		catch (Exception $e) {
    			$e->getMessage();
    		}
    	}
     
    	if( isset($_POST['supprime']) ) {
    		try {
    			traitementSupprimeAnim($_POST['anim_id']);
    			echo "L'animal a bien été supprimé !";
    			?>
    			<script type="text/javascript">
    				window.setTimeout("location=('../Vue/animaux.vue.php');",1500)
    			</script>
    			<?php
    		}
    		catch (Exception $e) {
    			$e->getMessage();
    		}
    	}
     
    	if( isset($_POST['modifie']) ) {
    		try {
    			traitementModifAnim($_POST['anim_id']);
    			echo "L'animal a bien été modifié !";
    			?>
    			<script type="text/javascript">
    				window.setTimeout("location=('../Vue/animaux.vue.php');",1500)
    			</script>
    			<?php
    		}
    		catch (Exception $e) {
    			$e->getMessage();
    		}
    	}
     
    ?>
    -le fichier animaux.class.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
     
    <?php
    	require_once("connexion.class.php");
    	/**
    	 * Classe Animaux
    	 * @param anim_id Identifiant de l'animal
    	 * @param anim_lib Libellé de l'animal
    	 */
    	class Animaux {
     
    		private $anim_id;
    		private $anim_lib;
     
    		/**
    		 * Constructeur par défaut
    		 */
    		 public function __construct() {
    		 	$this->anim_id = null;
    		 	$this->anim_lib = null;
    		 }
     
    		/**
    		 * Constructeur avec un paramètre
    		 * @param _anim_id Identifiant de l'animal
    		 */
    		public function __construct($_anim_id) {
     
    			// Sélection de l'id passé en paramètre 
    			$res = Connexion::requete("SELECT * FROM animaux WHERE anim_id = $_anim_id");
     
    			if( $res !== false && mysql_num_rows($res) = 1 ) {
    				// Si l'animal existe on rempli les champs
    				$ligne = mysql_fetch_assoc($res);
    				$this->anim_id = $ligne['anim_id'];
    				$this->anim_id = $ligne['anim_lib'];
    			}
    			else
    				// Sinon on renvoi une exception
    				throw new Exception("Pas d'animal pour cet id : " . $_anim_id . "");
    		}
     
    		/* Fonctions et méthodes */
    		/* Accesseurs */
     
    		/**
    		 * Accesseur pour anim_id
    		 */
    		public function getIdAnim() {
    			return $this->anim_id;
    		}
     
    		/**
    		 * Accesseur pour anim_lib
    		 */
    		public function getLibAnim() {
    			return $this->anim_lib;
    		}
     
    		/* Modificateurs */
     
    		/**
    		 * Modificateur pour anim_lib
    		 * @param newVal Nouvelle valeur pour anim_lib
    		 */
    		public function setLibAnim($newVal) {
    			Connexion::requete("UPDATE animaux SET anim_lib = '" . strtolower(Connexion::protectionChaine($newVal)) . "' WHERE anim_id = " . $this->anim_id . "");
    			$this->anim_lib = $newVal;
    		}
     
    		/* Fonctions magiques */
     
    		/**
    		 * Fonction d'affichage
    		 */
    		public function __toString() {
    			return "Identifiant : $this->anim_id \n Libellé : $this->anim_lib";
    		}
     
    		/* Fonctions static */
     
    		/**
    		 * Fonction permettant d'ajouter un animal à la BDD
    		 * @param _anim_lib Libellé du nouvel animal
    		 * @static
    		 */
    		public static function ajout($_anim_lib) {
    			Connexion::requete("INSERT INTO animaux (anim_lib) VALUES('" . strtolower(Connexion::protectionChaine($_anim_lib)) . "')");
    		}
     
    		/**
    		 * Fonction permettant la suppression d'un animal à la BDD
    		 * @param _anim_id Identifiant de l'animal à supprimer
    		 * @static
    		 */
    		public static function supprime($_anim_id) {
    			Connexion::requete("DELETE FROM animaux WHERE anim_id = " . Connexion::protectionChaine($_anim_id) . "");
    		}
     
    		/**
    		 * Fonction permettant de vérifier si l'identifiant de l'animal est présent dans la table
    		 * @param _anim_id Identifiant de l'animal cherché
    		 * @static
    		 */
    		public static function existeAnimId($_anim_id) {
    			$res = Connexion::requete("SELECT * FROM animaux WHERE anim_id = " . Connexion::protectionChaine($_anim_id) . "");
    			if( $res !== false && mysql_num_rows($res) == 1 )
    				return true;
    			return false;
    		}
     
    		/**
    		 * Fonction permettant de vérifier si le libellé de l'animal n'existe pas déjà
    		 * @param _anim_lib Libellé à vérifier
    		 * @static
    		 */
    		public static function existeAnimLib($_anim_lib) {
    			$res = Connexion::requete("SELECT * FROM animaux WHERE anim_lib = '" . strtolower(Connexion::protectionChaine($_anim_lib)) . "'");
     
    			if( $res !== false && mysql_num_rows($res) == 1 )
    				return true;
    			return false;
    		}
    	}
    ?>
    L'erreur ne peut pas venir de connexion.class.php (ce fichier n'est pas de moi à la base mais d'un de mes professeurs donc je ne me permettrais pas de poster ces sources sans sa permission).

  4. #4
    Membre chevronné Avatar de goodpz
    Profil pro
    Inscrit en
    Février 2007
    Messages
    475
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 475
    Par défaut
    Met tout en premier dans ton fichier de test:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ini_set('error_reporting', E_ALL|E_STRICT);
    ini_set('display_errors', 1);
    Tu as probablement un problème de chemin pour les require_once

  5. #5
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Fatal error: Cannot redeclare Animaux::__construct() in /var/www/html/GestCom/Classe/animaux.class.php on line 25
    Call Stack
    #	Time	Memory	Function	Location
    1	0.0546	79312	{main}( )	../animaux.test.php:0
    2	0.1064	80376	require_once( '/var/www/html/GestCom/Controler/animaux.controler.php' )	../animaux.test.php:6
    Voila ce qu'il me dis

  6. #6
    Membre chevronné Avatar de goodpz
    Profil pro
    Inscrit en
    Février 2007
    Messages
    475
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 475
    Par défaut
    Ah oui j'avais pas vue:
    Tu as 2 fois la fonction __construct() dans ta classe Animaux

    edit: on ne peux pas surcharger les fonctions dans php

  7. #7
    Invité
    Invité(e)
    Par défaut
    On ne peut pas faire de constructeur avec argument en PHP???

    edit : enfin du moins on ne peut pas faire un constructeur sans argument et un constructeur avec argument?

  8. #8
    Membre chevronné Avatar de goodpz
    Profil pro
    Inscrit en
    Février 2007
    Messages
    475
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 475
    Par défaut
    On ne peut pas créer une même fonction avec plusieurs signatures (contrairement au c++ par exemple).

    Donc dans ton exemple, tu serais obligé de faire quelque chose comme ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public function __construct($_anim_id = null) {
      $this->anim_id = $_anim_id;
      $this->anim_lib = null;
      if ($_anim_id) {
        $res = Connexion::requete(...);
        //..
      }
    }

  9. #9
    Invité
    Invité(e)
    Par défaut
    ok bin merci beaucoup je ne savais pas ou alors je devais pas être là quand le professeur avait expliqué ce passage...

    donc sujet Résolu

    encore merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Smarty] Problème d'inclusion de fichier .tpl
    Par Dev-master dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 03/08/2008, 17h40
  2. Réponses: 4
    Dernier message: 31/03/2008, 15h07
  3. Problème d'inclusion de fichiers
    Par _Michel dans le forum C
    Réponses: 1
    Dernier message: 15/03/2008, 18h18
  4. Problème d'inclusion de fichiers
    Par VenusX117 dans le forum C
    Réponses: 8
    Dernier message: 22/10/2006, 12h58
  5. Problème d'inclusion de fichiers
    Par navis84 dans le forum Langage
    Réponses: 3
    Dernier message: 29/08/2006, 15h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo