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 :

Erreur de déclaration


Sujet :

Langage PHP

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2012
    Messages
    335
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 335
    Par défaut Erreur de déclaration
    bonjour à tous,
    mon script index.php apele display.php qui appele base .php qui appelle functions.php
    le navigateur me met l'erreur:
    Fatal error: Cannot redeclare access() (previously declared in /users/t0152667/public_html/model/functions.php:5) in /users/t0152667/public_html/model/functions.php on line 9
    mais pourtant functions.php:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
     
    function access() {
     
    		require("configsql.php");
    		$link = mysql_connect ($hote,$log,$pwd) or die("Erreur de connexion: ".mysql_error()); 
    		mysql_select_db($bd);
    	return $link;
    	};
    ?>

  2. #2
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 62
    Par défaut
    déja remplace ta ligne 7 par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_select_db($bd,$link);
    puis reessaye!

  3. #3
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Ton fichier configsql.php contient déjà une fonction "access".
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  4. #4
    Inactif  
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Janvier 2014
    Messages : 374
    Par défaut
    Bonsoir.

    Apparemment vous avez découpé votre code en modules. Ce découpage nécéssite donc des include ou des require.

    Le problème ne viendrait-il pas de là ?...

    En traduisant le message, il est dit que la fonction "access()" est déja déclarée...

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2012
    Messages
    335
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 335
    Par défaut
    pour être plus clair voici l'ensemble de mon code :

    index.php:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php 
     
    ini_set("display_errors", "on");
    error_reporting(E_ALL);
    session_start();
    $_SESSION['c'] = "Se connecter";
    $_SESSION['i'] = "S'inscrire";
    require("controller/display.php");
    principal();
     
    ?>
    display.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
    <?php
     
     
    require ('model/base.php');
    require ('model/user.php');
    require ('view/view.php');
     
    function principal () {
     
     
    	$_SESSION['result'] = mfprincipal();
    	vfprincipal();     
     
    };
     
    function verif_connect() {
     
    	$login = $_POST['login'];
    	$pass = $_POST['pass'];
    	$_SESSION['c'] = connect($login,$pass);
    	vfprincipal();
     
    };
     
    $page = $_GET['page'];
     
    switch ($page) {
     
    	case 'actu':
    		principal();
    		break;
    };
    ?>
    base.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
     
    <?php
     
    require("model/functions.php");
    $link = access();
     
    function mfprincipal() {
     
    	$req = "select ac.id, ac.themebis(jpb), con.name, ac.results, ac.problemorpositivepoint, am.therecommandations, am.actions, dep.name, dec.willbeexploited, dec.priority, pers.responsible, pers.numworkers, statut.libelle, d.submitdate, d.solvedate, d.starteddate, d.verifdate,d.lastanalysisdate, d.rejectdate, d.targetdate, d.closuredate, am.resultsoftheaction, com.comments
    from action ac, ameliorations am, contact con, comments com, dates d, decision dec, departement dep, personne pers,statut 
    inner join d on ac.id = d.id#
    inner join am on ac.id = am.id#
    inner join dep on ac.id = dep.id#
    inner join dec on ac.id = dec.id#
    inner join con on ac.id = con.id#
    inner join com on ac.id = com.id#
    inner join pers on ac.id = pers.id#
    inner join statut on ac.id = statut.id#
    order by asc ac.id";
    	$res = mysql_query ($req, $link);
    	return ($res);
    };
     
    ?>
    functions.php:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
     
    function access() {
     
    		require("configsql.php");
    		$link = mysql_connect ($hote,$log,$pwd) or die("Erreur de connexion: ".mysql_error()); 
    		mysql_select_db($bd,$link);
    	return $link;
    	};
     
    ?>

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    et configsql.php ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2012
    Messages
    335
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 335
    Par défaut
    j’oubliais, désolé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
     
    $hote = 'doumer';
    $log = 'lesson';
    $pwd = 'lesson';
    $bd = 'lesson';
     
    ?>

  8. #8
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    La fonction access est définie dans ton script functions.php. function.php est inclus dans base.php, qui est inclus dans display.php en même temps que d'autres scripts.
    Il est possible que soit functions.php, soit base.php soit inclus dans un autre script (par exemple, user.php)

    Une façon de gérer ce genre de cas est d'utiliser require_once au lieu de require pour importer les scripts de fonctions.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2012
    Messages
    335
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 335
    Par défaut
    En effet, voici mon user.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
    <?php
     
    require ( "model/functions.php");
    $link = access();
    session_start();
     
    function connect ($login,$pass) {
    	$req = "SELECT login, pass FROM Users WHERE '$login' = login AND '$pass' = pass";
    	$res = mysql_query ($req, $link);
    	if (mysql_num_rows($res) != 0) {
     
    		$_SESSION['c'] = "Connecté";
    		$_SESSION['i'] = "Inscris";
    		$_SESSION ['name'] = mysql_query ("SELECT name FROM Users WHERE '$login' = login AND '$pass' = 	pass");
    	}
    }
     
    ?>
    tu suggère donc de mettre des require_once au lieu des require?

  10. #10
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Oui, utilise require_once au moins pour les inclusions de functions.php.
    L'autre possibilité consiste à ne faire aucune inclusion imbriquée et tout inclure manuellement à chaque fois dans le script "racine". Mais franchement, c'est se prendre la tête pour pas grand chose.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  11. #11
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2012
    Messages
    335
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 335
    Par défaut
    merci il m'affiche bien l'interface maintenant
    mais avec 2 erreurs que je ne comprend pas:

    Notice: Undefined variable: link in /users/t0152667/public_html/model/base.php on line 20

    Warning: mysql_query() expects parameter 2 to be resource, null given in /users/t0152667/public_html/model/base.php on line 20

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

Discussions similaires

  1. [EasyPHP] erreur de déclaration
    Par Zen_Fou dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 5
    Dernier message: 07/04/2006, 17h59
  2. Erreur sur déclaration de liste
    Par La Truffe dans le forum C++
    Réponses: 4
    Dernier message: 19/02/2006, 19h38
  3. Réponses: 16
    Dernier message: 19/11/2005, 16h47
  4. Servlet erreur de déclaration dans le web.xml
    Par mlequim dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 15/11/2005, 11h28
  5. Réponses: 2
    Dernier message: 27/05/2002, 19h46

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