salut
mon code est celui ci:

<?php

class Langage_fo {

public $code_lang;
public $nom_lang;
public $id_lang;
public $charset_lang;
public $image_lang;
public $ordre;
public $fichier;

public function __construct($code_lang){

$this->code_lang=$code_lang;

$sqlquery = "SELECT * FROM langage WHERE code_lang='$code_lang' ";
$queryresult = mysql_query($sqlquery);
if($row=mysql_fetch_array($queryresult))
{
$this->id_lang=$row"id_lang"];
$this->nom_lang=$row"nom_lang"];
$this->charset_lang=$row"charset_lang"];
$this->image_lang=$row"image_lang"];
$this->ordre=$row"ordre"];
$this->fichier=$row"fichier"];
}
}

public function setFichier() {
require("./langage/$this->fichier");

}

}

?>

le probléme que lors de l'exécution, dans localhost: un message s'aficher

Warning: require(C:\wamp\www\projet\langage) [function.require]: failed to open stream: Permission denied in C:\wamp\www\projet\class\Langage_fo.class.php on line 31

Fatal error: require() [function.require]: Failed opening required './langage/' (include_path='.;C:\php5\pear') in C:\wamp\www\projet\class\Langage_fo.class.php on line 31
càd l'erreur est dans cette ligne: require("./langage/$this->fichier");
svp aidez moi je suis vraiment deprimé
merci

11 réponses


Il ne trouve pas le fichier que tu "require", vérifie que ton chemin soit le bon

salut,

je pense que c'est par ici:

$sqlquery = "SELECT * FROM langage WHERE code_lang='$code_lang' ";

tu as mis de simple quotes et ta variable est interprété en texte brut, c'est à dire directement en $code_lang, le contenu de la variable n'est donc pas interprétée.

je crois que tu devrais ecrire:

$sqlquery = "SELECT * FROM langage WHERE code_lang='".$code_lang."' ";

j'espère t'avoir aidé.

++

angelaa
Auteur

bonjour;
j'ai essayé mais malheureusement aucune resultat, c la même erreur qui apparaître, svp avez vous une autre solution
svp aidez moi
merci

Il me faudrait voir la manière dont tu appelles ta class.

angelaa
Auteur

c comme ca ou j'appelle la classe:

function __autoload($class_name) {
require_once 'class/'.$class_name.'.class.php';
}

Salut,

ton problème vient de ta fonction _construct($code_lang). Ta fonction __contruct() attend en paramètre le $code_lang que tu ne lui fourni pas.

Il faut que tu appelles ta classe en lui fournissant ce paramètre $code_lang.

<?php
function spl_autoload_register($class_name) {
    include $class_name . '.php';
}
$lang = 'Fr'; // exemple
$obj = new Langage_fo($lang);
$obj->setFichier();
?>

<u>Astuce du manuel php5</u>
La fonction spl_autoload_register() fournit une alternative plus flexible pour le chargement automatique des classes. Pour cette raison, l'utilisation de la fonction __autoload() n'est plus encouragé et devrait devenir obsolète, voire être supprimée dans le futur.

fonction __autoload() (manuel php5).

++

angelaa
Auteur

bonjour
ca ne marche pas, tout d'abord j'ai pas compris cette erreur
Fatal error: require() [function.require]: Failed opening required './langage/' (include_path='.;C:\php5\pear') in C:\wamp\www\projet\class\Langage_fo.class.php on line 31

Pour cette erreur, c'est juste un problème d'url de fichier, vérifie si ton fichier a le bon nom ou que l'url que tu lui indique pour aller le chercher est la bonne

$lang = 'Fr'

n'est qu'un exemple.
Vérifie aussi que dans ta bdd que tu n'es pas fait d’erreur de syntaxe lors de l'insertion des données.

++

angelaa
Auteur

"SELECT total_paye FROM commande WHERE id_client=(SELECT id_client FROM client)" ;
cette requête est elle vrai???

angelaa
Auteur

salut;
mon fichier a le bon nom, j ne c pas c quoi le probléme, j'ai vérifier et toujours, le même erreur qui apparaître
svp je besoin vraiment d'aide
merci

angelaa
Auteur

je ne sais pas lorsque .htaccess exite , dans localhost m'affiche erreur du serveur interne, et lorsque je l'enléve les 2 lignes d'erreur apparaître j ne c pas quoi faire???