Page 1 sur 1

Probleme de connection à easyphp2.0 sous vista

Posté : 23 févr. 2008, 13:54
par Agredel
Bonjour,
.
J'ai une question concernant le message suivant :
Notice: Use of undefined constant ROOT_URL - assumed 'ROOT_URL' in C:\Program Files\EasyPHP 2.0b1\www\amr\Admin\index.php on line 3

Je travail sur 2 ordinateurs l'un en windows2000 serveur, l'autre en Vista.
Lorsque je transfert les fichiers php (pages, classes etc...) de windows2000 vers Vista, et en changeant l'adresse du localhost je tombe sur ce type du message.

résultat:aucune requetes ne fonctionne.

Est-ce que quelqu'un à une petite idée ?

Merci d'avance

Posté : 23 févr. 2008, 13:57
par x@v
Windows c'est mal pour bosser !!!
Une solution réinstalle ton pack easyphp, xampp...

Posté : 23 févr. 2008, 14:14
par Invité
Windows c'est mal pour bosser !!!
Une solution réinstalle ton pack easyphp, xampp...
J'ai essayé avec wamp mais j'ai le meme problème. Je vais tacher de reinstaller easyphp.
Quant à l'environnement de travail, je ne peus guère le modifier.

Posté : 23 févr. 2008, 14:40
par Ryle
Ce n'est absolument pas une question d'OS et on se fout royallement de savoir si Quick est meilleur que McDonald...

Le "problème" vient simplement de la configuration du php.ini qui doit être différente, l'un t'affichant les erreurs de type "Notice" et l'autre pas.

A la ligne 3 de ton fichier index.php tu dois avoir un
define(ROOT_URL, 'ta_valeur');
et php t'informe qu'il tente de trouver la valeur de la constant ROOT_URL à laquelle tu fais appel, mais que comme il ne la trouve pas, il va considérer qu'il s'agit de la chaine "ROOT_URL" et poursuivre l'exécution du code, à savoir définir la chaine "ROOT_URL" comme étant une constante dont la valeur sera "ta_valeur".

Pour corriger cela, ajoute simplement des guillemets/apostrophes à ta chaine :
define('ROOT_URL', 'ta_valeur');
Tu peux aussi modifier le php.ini pour masquer les Notice, mais mieux vaut corriger le code que de planquer les erreurs et la poussière sous le tapis ;)

Probleme de connection à easyphp2.0 sous vista

Posté : 23 févr. 2008, 15:58
par Agredel
Bonjour Ryle.

Je viens de regarder ta proposition. et j'ai appliqué les modification que tu me suggère. Sans résultat. Le fait d'avoir plusieurs classes s'appelant les unes les autres n'est-il pas trop lourd ?

J'aimerai avoir un avis sur la façon dont mes classes sont organisées.

J'ai un fichier index.php qui contient :
<?php

include('../class/classes.php');
include(ROOT_URL.'Admin/liste_commune.php');
?>
un fichier classes.php qui contient :
<?
error_reporting(E_ALL);
require_once(dirname(__FILE__).'/../configbase.php');
require_once(dirname(__FILE__).'/class.databaseamr.php');
require_once(dirname(__FILE__).'/class.commune.php');
require_once(dirname(__FILE__).'/class.elu.php');
?>
un fichier databaseamr.php qui contient:
<?php
/**
 * Classe Database - Classe de gestion de la base de données MySQL
 * @package Database
 */
/**
 * Classe Database - Classe de gestion de la base de données MySQL
 * @package Database
 */
Class Database{

	/**
	 * Lien de connexion à la base de données
	 * @access private
	 * @var midex
	 */ 
	var $_Link		= null;
	
	/**
	 * Nombre de requête sur la base de données
	 * @access private
	 * @var integer
	 */ 
	var $_Queries	= 0;
	
	/**
	 * Connexion à la base de données MySQL.
	 * On tente la connexion à la base de données MySQL en utilisant les constantes :
	 * DB_HOSTNAME pour l'adresse du serveur MySQL,
	 * DB_USERNAME pour le nom d'utilisateur de la base,
	 * DB_PASSWORD pour le mot de passe de connexion et 
	 * DB_DATABASE pour le nom de la base de données
	 * @return object Database
	 */
	function Database(){
		$this->_Link = mysql_connect(DB_HOSTNAME,DB_USERNAME,DB_PASSWORD)
		or die(mysql_error());
		mysql_select_db(DB_DATABASE,$this->_Link)
		or die(mysql_error($this->_Link));
	}
	
	/**
	 * Retourne l'instance courante de connexion à la base de données'
	 * Evite la multiplication des connexions à la base de données
	 * @return object Database
	 */
	function &getInstance(){
		global $_DB_Instance;
		if(!isset($_DB_Instance))
			$_DB_Instance = new Database();
		return $_DB_Instance;
	}
	
	/**
	 * Effectue une requête SQL sur la base de données et retourne un pointeur de résultats
	 * @param string $query Requête SQL
	 * @param bool $buffer Spécifie si le serveur de base de données doit utiliser un tampon pour les résultats
	 * @return mixed Pointeur de résultats
	 */
	function Query($query,$buffer = true){
		//echo '<small>'.$query.'</small><br />';
		$this->_Queries++;
		//$rs = $buffer?mysql_query($query,$this->_Link):mysql_unbuffered_query($query,$this->_Link);
		$rs = mysql_query($query,$this->_Link);
		/*if(!$rs)
			trigger_error(mysql_error($this->_Link));*/
		return $rs;
	}
	
	/**
	 * Retourne la ligne courante de résultats et avance le pointeur d'une ligne.
	 * La ligne de résultats est un tableau indexé par une valeur numérique qui correspond à l'ordre des champs 
	 * dans la requête SQL.
	 * @return mixed Ligne de résultats
	 */ 
	function fetchRow(&$rs){
		$row = mysql_fetch_row($rs);
		if($row)
			return $row;
		@mysql_free_result($rs);
		return false;
	}
	
	/**
	 * Retourne la ligne de résultats courantes et avance le pointeur d'une ligne.
	 * La ligne de résultats est un tableau indexé par une chaîne de caractères qui correspond aux noms des champs
	 * @return mixed Ligne de résultats
	 */
	function fetchArray(&$rs){
		$value = mysql_fetch_assoc($rs);
		if($value)
			return $value;
		@mysql_free_result($rs);
		return false;
	}
	
	/**
	 * Retourne le nombre de lignes modifiées par la dernière requête SQL.
	 * @return integer Nombre de lignes modifiées
	 */
	function affectedRows(){
		return mysql_affected_rows($this->_Link);
	}
	
	/**
	 * Retourne le nombre de lignes de la dernière requête SQL.
	 * @return integer Nombre de lignes.
	 */
	function affectedNumRows($rst){
		return mysql_num_rows($rst);
	}

	/**
	 * Retourne la valeur de l'auto-incrément créé par la dernière requête.
	 * @return integer Auto-incrément
	 */
	function insertID(){
		return mysql_insert_id($this->_Link);
	}
	
	/**
	 * Exécute la requête SQL et retourne la première ligne de résultats.
	 * La ligne de résultats est un tableau indexé par des valeurs numériques.
	 * @return mixed Première ligne de résultats
	 */
	function getOne($query){
		$rs = $this->Query($query,false);
		$row = $this->fetchRow($rs);
		@mysql_free_result($rs);
		return $row;
	}
	
	/**
	 * Exécute la requête SQL et retourne toutes les lignes de résultats.
	 * Les lignes de résultats sont un tableau indexé par des chaînes de caractères.
	 * @return mixed Tableau contenant toutes les lignes de résultatss
	 */
	function getAll($query){
		$rs = $this->Query($query,false);
		$array = array();
		while($value = $this->fetchArray($rs))
			$array[] = $value;
		@mysql_free_result($rs);
		return $array;
	}
	
	/**
	 * Retourne un nom de table en y ajoutant le préfix.
	 * DB_PREFIX est ajouté au nom de la table
	 * @return string Nom de la table
	 */
	function Prefix($table){
		return DB_PREFIX.$table;
	}
	
	/**
	 * Prépare une chaîne de caractères pour être utilisée dans une requête SQL
	 * @return string Chaîne de caractères utilisable dans une requête
	 */
	function Quote($string){
		return '\''.mysql_real_escape_string($string,$this->_Link).'\'';
	}
	
	/**
	 * Retourne le nombre de requêtes effectuées
	 * @return integer Nombre de requête effectuées
	 */
	function Queries(){
		return $this->_Queries;
	}
}
?>
un fichier classe.commune.php qui contient:
<?php
/**
 * Classe de gestion de l'affichage des  communes
 */
class commune
{
	var $_insee					= '';
	var $_nomcommune			= '';
	var $_adresse				= '';
	var $_codepostal			= '0';
	var $_tel					= '';
	var $_fax					= '';
	var $_email					= '';
	var $_horaire				= '';
	var $_superficie			= '0';
	var	$_population1			= '0';
	var $_refannee				= '0';
	var $_circonscription		= '';
	var $_idcanton				= '0';
	var $_nomprefet				= '';
	var $_nomdepute				= '';
	var $_nomconseillergeneral	= '';
	var $_sallepoly				= '0';
	var $_nbassociation			= '0';
	var $_nbpersonne			= '0';
	var $_internetpoly			= '0';
	var $_nbpersonneresto		= '0';
	var $_internetresto			= '0';
	var $_photo					= '';

	function commune($value='')
	{

        if($value!='')
		{
			$this->_insee				= isset($value['insee'])?trim($value['insee']):0;
			$this->_nomcommune			= isset($value['nom_commune'])?trim($value['nom_commune']):'';
			$this->_adresse				= isset($value['adresse'])?trim($value['adresse']):'';
			$this->_codePostal			= isset($value['code_postal'])?trim($value['code_postal']):0;
			$this->_tel					= isset($value['tel'])?intval($value['tel']):'';
			$this->_fax					= isset($value['fax'])?trim($value['fax']):'';
			$this->_email				= isset($value['email'])?trim($value['email']):'';
			$this->_http				= isset($value['http'])?trim($value['http']):'';
			$this->_horaire				= isset($value['horaire'])?trim($value['horaire']):'';
			$this->_superficie			= isset($value['superficie'])?intval($value['superficie']):0;
			$this->_population1			= isset($value['population1'])?trim($value['population1']):0;
			$this->_refannee			= isset($value['ref_annee'])?trim($value['ref_annee']):0;
           	$this->_circonscription		= isset($value['circonscription'])?trim($value['circonscription']):'';
			$this->_idarrondissement	= isset($value['id_arrondissement'])?trim($value['id_arrondissement']):0;
			$this->_idcanton		    = isset($value['id_canton'])?trim($value['id_canton']):0;
			$this->_nomprefet			= isset($value['nom_prefet'])?trim($value['nom_prefet']):'';
            $this->_nomdepute			= isset($value['nom_depute'])?trim($value['nom_depute']):'';
			$this->_nomconseillergeneral= isset($value['nom_conseiller_general'])?trim($value['nom_conseiller_general']):'';
			$this->_sallepoly			= isset($value['salle_polyvalente'])?trim($value['salle_polyvalente']):0;
			$this->_nbassociation		= isset($value['nb_association'])?trim($value['nb_association']):0;
			$this->_nbpersonne			= isset($value['nb_personne'])?trim($value['nb_personne']):0;
			$this->_internetpoly		= isset($value['internet'])?trim($value['internet']):'';
			$this->_nbpersonneresto		= isset($value['nb_personne_restauration'])?trim($value['nb_personne_restauration']):0;
			$this->_internetresto		= isset($value['internet_restauration'])?trim($value['internet_restauration']):'';
			$this->_photo               = isset($value['photo'])?trim($value['photo']):'';
            
        }
	}	
function insertcommune($insee,$nomcommune,$adresse,$codepostal,$tel,$fax,$email,$http,$horaire,$superficie,$population1,$refannee,$circonscription,$arrondissement,$canton,$nomprefet,$nomdepute,$nomconseillergeneral,$nbassociation,$nbpersonne,$nbpersonneresto)
	{
		$db =& Database::getInstance(); //crée une connection à la db.
		$sql = "INSERT INTO amr_commune
(insee,nom_commune,adresse,code_postal,tel,fax,email,http,horaire,superficie,population1,ref_annee,id_arrondissement,id_canton,circonscription,nom_prefet,nom_depute,nom_conseiller_general,salle_polyvalente,nb_association,nb_personne,internet,nb_personne_restauration,internet_restauration) VALUES 			('$insee','$nomcommune','$adresse','$codepostal','$tel','$fax','$http','$email','$horaire','$superficie','$population1,'$refannee','$circonscription','$arrondissement','$canton','$nomprefet','$nomdepute','$nomconseillergeneral','$nbassociation','$nbpersonne','$nbpersonneresto')";
		mysql_query($sql); //ecrit dans la base de donnée
		print_r($sql);
	}
	
//Retourne la liste des communes présentes dans la base
function get_communes(){
	$db =& Database::getInstance(); //crée une connection à la db.
	$req = "SELECT * FROM ".$db->Prefix('commune')." ORDER BY insee";
	//print_r ($tb);
	$tb = $db->GetAll($req);
	return $tb;
	//print_r ($tb)	;
	
	}

//Retourne la communes présente dans la base
function get_une_commune($num){
	$db =& Database::getInstance(); //crée une connection à la db.
	$req = "SELECT * FROM  ".$db->Prefix('commune')." WHERE insee = '".$idinsee." ORDER BY nom_commune'";
	$tb = $db->GetAll($req);
	return $tb;
}

//Retourne le canton
function get_un_canton($num){
	$db =& Database::getInstance(); //crée une connection à la db.
	$req = "SELECT * FROM  ".$db->Prefix('canton')." WHERE id_canton='".$num."'";
	$tb = $db->GetAll($req);
	return $tb;
}

//Retourne la liste des cantons présentes dans la base
function get_cantons(){
	$db =& Database::getInstance(); //crée une connection à la db.
	$req = "SELECT * FROM ".$db->Prefix('canton');
	$tb = $db->GetAll($req);
	return $tb;
}


//Retourne l'arrondissement.
function get_un_arrondissement($num){
	$db =& Database::getInstance(); //crée une connection à la db.
	$req = "SELECT * FROM  ".$db->Prefix('arrondissement')." WHERE id_arrondissement = '".$num."'";
	$tb = $db->GetAll($req);
	return $tb;
}

//Retourne la liste des arrondissements.
function get_arrondissements(){
	$db =& Database::getInstance(); //crée une connection à la db.
	$req = "SELECT * FROM ".$db->Prefix('arrondissement');
	$tb = $db->GetAll($req);
	return $tb;
}


}
?>
Mes répertoires de site sont organisé comme sur mon autre poste de travail.
tous les autres fichier.php ont un
<?php
include('../class/classes.php');
?>

Re: Probleme de connection à easyphp2.0 sous vista

Posté : 23 févr. 2008, 21:21
par Ryle
Je viens de regarder ta proposition. et j'ai appliqué les modification que tu me suggère. Sans résultat.
Oki, effectivement, j'ai supposé qu'il s'agissait de la déclaration de la constante qui posait problème, il semble en fait simplement que tu fasses appel à une constante qui n'a pas encore été déclaré au moment où tu l'utilise.

En gros, il te manque un define('ROOT_URL', 'ta_valeur') pour pouvoir utiliser la constante ROOT_URL dans ton include :)