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 :

Portée de variables avec require_once


Sujet :

Langage PHP

  1. #1
    Membre régulier
    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
    Points : 70
    Points
    70
    Par défaut Portée de variables avec require_once
    bonjour à tous,
    j'ai un script qui fait un accès à une base de données
    vu les erreurs, l doit y avoir un souci dans le require_once:
    Notice: Undefined variable: hote in /opt/lampp/htdocs/tests/me_s_art (restructuré) 1/includes/modele/pictures.php on line 7

    Notice: Undefined variable: login in /opt/lampp/htdocs/tests/me_s_art (restructuré) 1/includes/modele/pictures.php on line 7

    Notice: Undefined variable: pass in /opt/lampp/htdocs/tests/me_s_art (restructuré) 1/includes/modele/pictures.php on line 7

    Notice: Undefined variable: bd in /opt/lampp/htdocs/tests/me_s_art (restructuré) 1/includes/modele/pictures.php on line 8

    Notice: Undefined variable: bd in /opt/lampp/htdocs/tests/me_s_art (restructuré) 1/includes/modele/pictures.php on line 8
    erreur d'acces a la base :
    voici mes fichiers:

    pictures.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_once  ("includes/modele/config_sql.php");
     
    function pictures_gen ($n) {
     
    	$link = mysqli_connect ($hote, $login, $pass) or die ("erreur de connexion :" . mysqli_error($link));
    	mysqli_select_db ($link, $bd) or die ("erreur d'acces a la base :" . $bd);
     
    	$_SESSION['titre'] = mysqli_query ($link, "SELECT titre FROM OEUVRE WHERE id_oeuvre = '$n' ");
    	$_SESSION['date'] = mysqli_query ($link, "SELECT date FROM OEUVRE WHERE id_oeuvre = '$n' ");
    	$_SESSION['chemin'] = mysqli_query ($link, "SELECT chemin FROM OEUVRE WHERE id_oeuvre = '$n' ");
    	$_SESSION['explication'] = mysqli_query ($link, "SELECT explication FROM OEUVRE WHERE id_oeuvre = '$n' ");
    	$_SESSION['titre'] = mysqli_query ($link, "SELECT titre FROM OEUVRE WHERE id_oeuvre = '$n' ");
    	$_SESSION['titre'] = mysqli_query ($link, "SELECT titre FROM OEUVRE WHERE id_oeuvre = '$n' ");
     
    }
     
    function pictures_dos ($n) {
     
    	$link = mysqli_connect ($hote, $login, $pass) or die ("erreur de connexion :" . mysqli_error($link));
    	mysqli_select_db ($link, $bd) or die ("erreur d'acces a la base :" . $bd);
     
    	$_SESSION['titre'] = mysqli_query ($link, "SELECT titre FROM OEUVRE WHERE id_oeuvre = '$n' ");
    	$_SESSION['date'] = mysqli_query ($link, "SELECT date FROM OEUVRE WHERE id_oeuvre = '$n' ");
    	$_SESSION['chemin'] = mysqli_query ($link, "SELECT chemin FROM OEUVRE WHERE id_oeuvre = '$n' ");
    	$_SESSION['explication'] = mysqli_query ($link, "SELECT explication FROM OEUVRE WHERE id_oeuvre = '$n' ");
    	$_SESSION['pre'] = mysqli_query ($link, "SELECT pre FROM OEUVRE WHERE id_oeuvre = '$n' ");
    	$_SESSION['liste'] = mysqli_query ($link, "SELECT liste FROM OEUVRE WHERE id_oeuvre = '$n' ");
     
    }
     
    ?>
    config_sql.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    $hote = "localhost";
    $login = "config_sql";
    $pass = "grout";
    $bd = "WEBSITE";
    ?>

  2. #2
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2012
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2012
    Messages : 131
    Points : 242
    Points
    242
    Par défaut
    Bonjour,

    tes variables hote, login, pass, bd ne sont pas reconnu à l intérieur des méthodes pictures_gen et pictures_dos, rend les global

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    function pictures_gen ($n) {
    global $hote, $login, $pass, $bd;
     
    et
     
    function pictures_dos ($n) {
    global $hote, $login, $pass, $bd;

  3. #3
    Membre régulier
    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
    Points : 70
    Points
    70
    Par défaut
    Cela ne pose pas problême que leurs valeurs ne soient pas définies?

  4. #4
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu aussi plutôt mettre la connexion dans ton fichier inclus et mettre $link global dans tes fonctions.
    Cela évite de repeter la connexion dans toutes tes fonctions.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre régulier
    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
    Points : 70
    Points
    70
    Par défaut
    merci bien ça a tout de même marché
    maintenant je cherche à faire un echo de chaque variable
    vu que je n'ai qu'un seul résultat dans chaque requête, je pensais qu'un simple echo marcherait, eh ben non:
    Catchable fatal error: Object of class mysqli_result could not be converted to string in /opt/lampp/htdocs/tests/me_s_art (restructuré) 1/includes/vue/affichage_oeuvre.php on line 14
    voici affichage_oeuvre.php, si ça peut servir:
    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
    <?php 
     
    function aff_oeuvre_gen () {
     
    	echo ("
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset='utf-8' />
            <link rel='stylesheet' href='css/styles/tailler.css' />
            <!--[if lt IE 9]>
            <script src='http://html5shiv.googlecode.com/svn/trunk/html5.js'></script>
            <![endif]-->
            <title>" . $_SESSION['titre'] . "</title>
        </head>
    	<body>
    			<img class='b' src=" . $_SESSION['chemin'] . " alt=" . $_SESSION['titre'] . " title=" . $_SESSION['titre'] . ">
    			<p class='a'>Titre : " . $_SESSION['titre'] . " - Date : " . $_SESSION['date'] . "</p>
    		<p>" . $_SESSION['explication'] . "</p>
    			<a href='index.php?control=display.php&f=principal' title='Retour à l'accueil'>Retour à l'accueil</a>
    	</body>
    </html>
    	");
     
    	}
     
    function aff_oeuvre_dos () {
     
    	echo ("
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset='utf-8' />
            <link rel='stylesheet' href='css/styles/tailler.css' />
            <!--[if lt IE 9]>
            <script src='http://html5shiv.googlecode.com/svn/trunk/html5.js'></script>
            <![endif]-->
            <title>" . $_SESSION['titre'] . "</title>
        </head>
    	<body>
    			<img class='b' src=" . $_SESSION['chemin'] . " alt=" . $_SESSION['titre'] . " title=" . $_SESSION['titre'] . ">
    			<p class='a'>Titre : " . $_SESSION['titre'] . " - Date : " . $_SESSION['date'] . "</p>
    		<p>" . $_SESSION['pre'] . "</p>
    		<ol>" . $_SESSION['liste'] . "</ol>
    		<p>" . $_SESSION['explication'] . "</p>
    			<a href='index.php?control=display.php&f=principal' title='Retour à l'accueil'>Retour à l'accueil</a>
    	</body>
    </html>
    	");
     
    	}
     
    ?>

  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
    Points : 44 155
    Points
    44 155
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $result = mysqli_query($link, "SELECT date,chemin, explication, titre FROM OEUVRE WHERE id_oeuvre = '$n' ");
    $row = mysqli_fetch_array($result, MYSQLI_ASSOC));
    	$_SESSION['date'] = $row['date'];
    	$_SESSION['chemin'] = $row['chemin'];
    	$_SESSION['explication'] = $row['explication'];
    	$_SESSION['titre'] = $row['titre'];
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

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

Discussions similaires

  1. variable avec portée sur fiche
    Par looping dans le forum Langage
    Réponses: 5
    Dernier message: 11/04/2013, 20h48
  2. Portée variables avec HTTPService addEventListener
    Par Clezio dans le forum ActionScript 3
    Réponses: 8
    Dernier message: 09/06/2010, 10h03
  3. [Upload] Probleme de variable avec require_once
    Par Phenomenium dans le forum Langage
    Réponses: 4
    Dernier message: 31/01/2006, 11h27
  4. [XSLT] Problème avec la portée des variables
    Par sheura dans le forum XSL/XSLT/XPATH
    Réponses: 17
    Dernier message: 10/01/2006, 12h49
  5. Désigner une variable avec une variable?
    Par littleman dans le forum Paradox
    Réponses: 4
    Dernier message: 12/08/2002, 11h21

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