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

PHP & Base de données Discussion :

utilisation d'une variable global


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Femme Profil pro
    en formation
    Inscrit en
    Septembre 2019
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Ariège (Midi Pyrénées)

    Informations professionnelles :
    Activité : en formation

    Informations forums :
    Inscription : Septembre 2019
    Messages : 90
    Par défaut utilisation d'une variable global
    Bonjour

    Je récupère une variable $_POST["name"] depuis un formulaire
    je voudrais pouvoir utilisé cette variable dans trois fonctions seulement quand je sort de la première évidement elle est détruite
    si je la mets avant la fonction pour quelle soit disponible pour toutes les fonctions j'ai une erreur au lancement du programme !
    AU SECOURS Comment je me sort de lâ ?

    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
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
     voici mon fichier de fonction
    <?php
     
      function insertform(){
     
          if(isset($_POST["name"])){
          $host = 'localhost';
          $dbname = 'mabase';
          $username = 'root';
          $password = '';     
          $mail = $_POST['mail'];
          $name = $_POST['name'];
          $pdo = new PDO("mysql:host=$host;dbname=$dbname","$username","$password"); 
          $sql = "INSERT INTO `reservation` (`nom`, `mail`) VALUES ('$name', '$mail')";
          $resultat = $pdo->exec($sql);  
          if(!$resultat) {
            echo "Échec de l'opération d'insertion";
          }
     
        }
     
      }
     
      function yourchoicecity(){
        $servername = 'localhost';
        $username = 'root';
        $password = '';
        $dbase = 'mabase';
     
          if(isset($_POST["choicecity"])){
            try {
              $pdo = new PDO("mysql:host=$servername;dbname=$dbase","$username","$password");
              $choicecity = $_POST["choicecity"]; 
              $today = date("Y-m-d");             
              $city = "UPDATE reservation SET choicecity='$choicecity' WHERE nom='$name'";            
              $resultcity = $pdo->exec($city);       
     
            }
            catch (PDOException $exc) {
              echo $exc->getMessage();
              exit;
            }
     
            if($resultcity !== false){ 
              ?>
                <script>
                 document.location.replace("index.php" );//retour à la page d'accueil//
                </script>  
              <?php  
            }
     
          }
      }
     
     
      function yourchoicedate(){
        $servername = 'localhost';
        $username = 'root';
        $password = '';
        $dbase = 'mabase';
     
        if(isset($_POST["choicedate"])){
            try {
              $pdo = new PDO("mysql:host=$servername;dbname=$dbase","$username","$password");
              $datedebut = $_POST["datedebut"];
              $datefin =$_POST['datefin'];
              $today = date("Y-m-d");            
              $date = "UPDATE reservation SET creation='$today', debut='$datedebut', fin='$datefin'  WHERE nom= '$name'";           
              $resultdate = $pdo->exec($date);       
            }
            catch (PDOException $exc) {
              echo $exc->getMessage();
              exit;
          }
        }
      }
     
      ?>

  2. #2
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    18 168
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 18 168
    Par défaut
    Tu as juste à mettre le mot clé global devant la variable, dans chaque fonction devant l'utiliser.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  3. #3
    Membre éprouvé
    Homme Profil pro
    Ingénieur en électrotechnique retraité
    Inscrit en
    Décembre 2008
    Messages
    1 718
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur en électrotechnique retraité

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 718
    Par défaut
    Une autre solution serait d'avoir une fonction de connexion à la base et de l'appeler dans chaque autre fonction et de transmettre les variables nécessaires en arguments de chaque appel de fonction.

  4. #4
    Membre confirmé
    Profil pro
    poireau
    Inscrit en
    Juin 2008
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : poireau

    Informations forums :
    Inscription : Juin 2008
    Messages : 98
    Par défaut question sur la "global"
    Citation Envoyé par chrtophe Voir le message
    Tu as juste à mettre le mot clé global devant la variable, dans chaque fonction devant l'utiliser.
    bonjour chrtophe
    et comment et où la déclares-tu cette variable "global" ?

  5. #5
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    18 168
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 18 168
    Par défaut
    exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    function a()
    {
       global $variable;
        ...;
    }
     
    function b()
    {
       global $variable;
        ...;
    }
    Dans les 2 fonctions, $variable sera déclarée comme globale.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  6. #6
    Membre très actif
    Profil pro
    Administrateur
    Inscrit en
    Mai 2008
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2008
    Messages : 237
    Par défaut
    Votre code est à réorganiser
    Idéalement une approche Orienté Objet aurait été mieux.

    Une variable en provenance de $_POST doit toujours être validée avant soumission à la base de donnée.
    Il vous faut alors une fonction pour valider les champs de vos formulaires.
    Une autre fonction pour la connexion à la base de données
    Les paramètres de connexion de la base de données ainsi que les variables globales doivent être déclarées hors des fonctions.

    Voici une approche

    Fichier contenant les fonctions : lib.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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
     
    <?php
    function insertform( $pdo, $params ){
    	$sql = 'INSERT INTO reservation (name, mail) VALUES (:name, :mail)';
    	query( $pdo, $sql, $params );
    }
     
    function yourchoicecity( $pdo, $params ){
    	$sql = 'UPDATE reservation SET choicecity = :choicecitys WHERE name = :name'; 
    	query( $pdo, $sql, $params );
    }
     
    function yourchoicedate( $pdo, $params ){
    	$sql = 'UPDATE reservation SET creation = CURDATE(), debut = :debut, fin = :fin WHERE name = :name';
    	query( $pdo, $sql, $params );
    }
     
    function getPost(){
    	$v = [];
    	$q = func_get_args();
     
    	foreach($q as $i => $field){
    		$v[ ":$field" ] = isset($_POST[ $field ]) ? $_POST[ $field ] : null;		
    	}
     
    	return $v;
    }
     
    function query( $pdo, $sql, $params ){
    	try {
    		$query = $pdo->prepare( $sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));
    		$query->execute( $params );
    	} catch (PDOException $e) {
    		trigger_error( $e->getMessage(), E_USER_ERROR );
    	}
    }
     
    function connexion(){
    	try {
     
    		$pdo = new PDO('mysql:host=' . host . ';dbname=' . dbname, username, password );
     
    		$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    		$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
     
    		return $pdo;
     
    	} catch (PDOException $e) {
    		var_dump( $e->getMessage() );
    	}
    }
     
    ?>
    fichier test : index.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 'lib.php';
     
    	define('host', 'localhost');
    	define('dbname', 'mabase');
    	define('username', 'root');
    	define('password', '');
     
    	$mail = getPost('name', 'mail');
    	$city  = getPost('name', 'choicecity');
    	$dates = getPost('name', 'fin', 'debut');
     
    	$pdo = connexion();
    	yourchoicedate( $pdo, $dates );
    	insertform( $pdo, $mail );
    	yourchoicecity( $pdo, $city );
    ?>

  7. #7
    Membre confirmé
    Femme Profil pro
    en formation
    Inscrit en
    Septembre 2019
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Ariège (Midi Pyrénées)

    Informations professionnelles :
    Activité : en formation

    Informations forums :
    Inscription : Septembre 2019
    Messages : 90
    Par défaut MERCI mille fois
    Un grand merci a tous.
    grâce à votre aide j'arrive un peut mieux à m'en sortir

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

Discussions similaires

  1. [WD16] utilisation d'une variable globale
    Par oxford26 dans le forum WinDev
    Réponses: 9
    Dernier message: 05/07/2011, 16h58
  2. Réponses: 15
    Dernier message: 27/03/2009, 13h37
  3. Réponses: 3
    Dernier message: 31/12/2008, 12h50
  4. utilisation d'une variable global
    Par poula dans le forum Forms
    Réponses: 1
    Dernier message: 06/01/2007, 03h14
  5. utilisation d'une variable globale
    Par ZZ dans le forum ASP
    Réponses: 3
    Dernier message: 03/12/2003, 19h11

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