erreur

Par angelaa, il y a 14 ans


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

BlackDesign, il y a 14 ans

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

csbilouze, il y a 14 ans

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, il y a 14 ans

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

csbilouze, il y a 14 ans

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

angelaa, il y a 14 ans

c comme ca ou j'appelle la classe:

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

csbilouze, il y a 14 ans

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, il y a 14 ans

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

csbilouze, il y a 14 ans

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, il y a 14 ans

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

angelaa, il y a 14 ans

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, il y a 14 ans

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???