Changement de mysql à mysqli

Rechercher

Changement de mysql à mysqli

Par Puce2207  -  7 reponses  -  Le 15/01/2017 08:49  -  Editer  - 

Bonjour à tous !

Je gérais un site de 2012 à 2014 que j'ai du fermer pour raison personnelle. Je souhaiterais à présent le reprendre mais comme vous vous en doutez le code a évoluer. Je suis donc entrain de le réadapter mais je ne parviens plus à connecter mon fichier class.php à la BDD alors que ça fonctionnait auparavant

Fichier qui fonctionnait à l'époque :

<?php
// Classe pour la gestion du go fishing
class goFishing{
    // liste des variables
    var $id = 0;
    var $niveau = 0;
    var $nombreEnemi = 5;
    var $nombrePoisson = 3;
    var $nombreArgentMin = 1;
    var $nombreArgentMax = 5;
    var $nombreArgent = 0;
    var $erreursMax = 3;
    var $tempsMax = 60;
    var $viePoisson = 100;
    var $vieArgent = 2;
    var $cle = 0;
    var $parties = 0;

  // Constructor
  public function goFishing( $niveau ){
    if(!is_numeric($niveau)){
      return false;    
    }
    $sql = "SELECT * FROM gofishing WHERE niveau = $niveau";
    $req = mysql_query($sql) or die (mysql_error());    
    if(mysql_num_rows($req) == 0){
      return false;    
    }
    $d = mysql_fetch_assoc($req);
    $d = array_map("stripslashes",$d);
    foreach( $d as $key => $val )  {
      $this->$key = $val;    
    }
    $this->nombreArgent = rand($this->nombreArgentMin,$this->nombreArgentMax);
    return true;
  }

  // Update
  public function update( $var , $val ){
      $val = addslashes($val);
      $id = $this->id;
      $arr = array('id','niveau','nombreEnemi','nombreArgentMin','nombreArgentMax','erreursMax','nombrePoisson','tempsMax','viePoisson','vieArgent');
      if( !in_array($var,$arr)){
          return false;    
      }
      $sql = "UPDATE gofishing SET $var = '$val' WHERE id = $id";
      $req = mysql_query($sql) or die (mysql_error());
      $this->$var = stripslashes($val);
      return true;
  }

// Fonction pour afficher le niveau au format XML
  public function XML(){
      header ("Content-Type:text/xml"); 
      echo '<CONFIG>';
          echo '<niveau>'.$this->niveau.'</niveau>';
          echo '<nombreEnemi>'.$this->nombreEnemi.'</nombreEnemi>';
          echo '<nombrePoisson>'.$this->nombrePoisson.'</nombrePoisson>';
          echo '<nombreArgent>'.$this->nombreArgent.'</nombreArgent>';
          echo '<erreursMax>'.$this->erreursMax.'</erreursMax>';
          echo '<tempsMax>'.$this->tempsMax.'</tempsMax>';
          echo '<viePoisson>'.$this->viePoisson.'</viePoisson>';
          echo '<vieArgent>'.$this->vieArgent.'</vieArgent>';
          echo '<parties>'.$this->parties.'</parties>';
          echo '<cle>'.$this->cle.'</cle>';
      echo '</CONFIG>';
  }

  // Fonction pour obtenir les parties d'un membre
  static public function parties( $pseudo ){
      $pseudo = addslashes( $pseudo );
      $sql = "SELECT * FROM membres WHERE pseudo = '$pseudo'";
      $req = mysql_query($sql) or die (mysql_error());
      if(mysql_num_rows($req) == 0){
          return 0;    
      }
      $d = mysql_fetch_assoc($req);
      return $d['jeu1'] + $d['jeu1_sup'];
  }

  // Fonction pour enelever une partie a un membre
  static public function rPartie( $pseudo ){
      $pseudo = addslashes( $pseudo );
      $sql = "SELECT * FROM membres WHERE pseudo = '$pseudo'";
      $req = mysql_query($sql) or die (mysql_error());
      if(mysql_num_rows($req) == 0){
          return false;
      }
      $d = mysql_fetch_assoc($req);
      $total = $d['jeu1'] + $d['jeu1_sup'];
      if($total <= 0){
          return false;    
      }
      if( $d['jeu1'] != 0 ){
          $sql = "UPDATE membres SET jeu1 = jeu1 - 1 WHERE pseudo = '$pseudo'";
          $req = mysql_query($sql) or die (mysql_error());    
      }else{
          $sql = "UPDATE membres SET jeu1_sup = jeu1_sup - 1 WHERE pseudo = '$pseudo'";
          $req = mysql_query($sql) or die (mysql_error());    
      }
  }

  // Fonction pour obtenir le niveau d'un membre
  static public function niveau( $pseudo ){
      $pseudo = addslashes($pseudo);
      $sql = "SELECT * FROM gf_niveaux WHERE pseudo = '$pseudo'";
      $req = mysql_query($sql) or die (mysql_error());
      if(mysql_num_rows($req) == 0){
          $sql = "INSERT INTO gf_niveaux (id, pseudo, niveau) VALUES ('','$pseudo',1)";
          $req = mysql_query($sql) or die (mysql_error());    
          return 1;
      }else{
          $d = mysql_fetch_assoc($req);    
          return $d['niveau'];
      }
  }

  // Fonction pour attribuer une nouvelle clé a un membre
  static public function newKey( $pseudo ){
      $pseudo = addslashes($pseudo);
      $cle = rand(1000000,9000000);
      $sql = "UPDATE gf_niveaux SET cle = $cle WHERE pseudo = '$pseudo'";
      $req = mysql_query($sql) or die (mysql_error());
      return $cle;    
  }

  // Fonction pour obtenir la clé d'un membre
  static public function getKey($pseudo)    {
      $pseudo = addslashes($pseudo);
      $sql = "SELECT cle FROM gf_niveaux WHERE pseudo = '$pseudo'";
      $req = mysql_query($sql) or die (mysql_error());
      $d = mysql_fetch_assoc($req);
      return $d['cle'];    
  }

  // Fonction pour modifier le niveau d'un membre
  static public function updateLvl( $pseudo , $niveau ){
      $pseudo = addslashes( $pseudo );
      if(!is_numeric($niveau)){
          return false;
      }
      $sql = "UPDATE gf_niveaux SET niveau = $niveau WHERE pseudo = '$pseudo'";
      $req = mysql_query($sql) or die (mysql_error());
      return $niveau;    
  }

  // FOnction pour commencer une partie
  static public function commencer( $pseudo ){
      $niveau = goFishing::niveau( $pseudo );
      $parties = goFishing::parties( $pseudo );
      if( $parties > 0 ){
          goFishing::rPartie( $pseudo );
      }
      $cle = goFishing::newKey( $pseudo );
      $lvl = new goFishing( $niveau );
      $lvl->parties = $parties;
      $lvl->cle = $cle;
      $lvl->XML();
  }

    // Fonction pour finir la parties
  static public function finir( $pseudo , $gain , $cle ){
      // On vérifie si la clé est la bonne
      $acle = goFishing::getKey( $pseudo );
      $crypt = md5($acle.'AAA'.$gain);
      $niveau = goFishing::niveau($pseudo);
    $riri = "SELECT * FROM mon_vip where membre='".$pseudo."'";
  $loulou = mysql_query($riri); 
  $fifi = mysql_fetch_assoc($loulou); 
  $rang_monvip = $fifi['rang'];
    if ($rang_monvip >= 13){// CONDITIONS SI LE MEMBRE N'EST PAS VIP
      $bonus_vip = 0.40; //Gain supplémentaire en coefficient: 0%=0.00
    }else{
      $bonus_vip = 0;
    }
    $gainvip = $gain * $bonus_vip;
    $gain = $gain + $gainvip;
    if($niveau == 10){
      $gain = $gain + 30;
    }
      if( $crypt != $cle ){
            goFishing::newKey( $pseudo );
            goFishing::updateLvl( $pseudo , 1 );    
            if($_SESSION['langue'] == 'fr'){
              echo "Vous avez perdu la partie.\n\nProchain niveau : Niveau 1";
            }elseif($_SESSION['langue'] == 'en'){
              echo "You lost the game.\n\nNext Level: Level 1";
             }elseif($_SESSION['langue'] == 'it'){
              echo "Hai perso il gioco.\n\nNext Level: Livello 1";
            }elseif($_SESSION['langue'] == 'po'){
              echo "Przegrales gre.\n\nNastepny poziom: poziom 1";
            }elseif($_SESSION['langue'] == 'es'){
              echo "Usted perdió el juego.\n\nSiguiente Nivel: Nivel 1";
            }elseif($_SESSION['langue'] == 'de'){
              echo "Sie verloren das Spiel.\n\nNachstes Level: Level 1";
            }else{
              echo "Vous avez perdu la partie.\n\nProchain niveau : Niveau 1";
            }   
            return false;    
        }
      // On update les points du membre
      $sql = "UPDATE membres SET fishopoints = fishopoints + $gain WHERE pseudo = '$pseudo'";
      $req = mysql_query($sql) or die (mysql_error());
      $datejour = date("Y-m-d");
    $dateheure = date("H\hi");
    $semaine = date("W");  
      $sql = "INSERT INTO histo_gains VALUES('','$pseudo', 'JEU : GO FISHING', '$gain', '$datejour', '$dateheure', '$semaine')";
      $req = mysql_query($sql) or die (mysql_error());
      // On s'occupe du superParrain
      $sql = mysql_query("SELECT max(id) FROM super_parrain");
      $req=mysql_fetch_array($sql);
      $id_superparrain = $req['max(id)'];
      //Super parrain 1
      $riri = "SELECT * FROM super_parrain where id = '".$id_superparrain."'";
      $loulou=mysql_query($riri); 
      $fifi=mysql_fetch_array($loulou); 
      $pseudo_superpapa1 = $fifi['membre'];
      $nafnaf = "SELECT * FROM membres where pseudo = '".$pseudo_superpapa1."'";
      $nifnif=mysql_query($nafnaf);
      $noufnouf=mysql_fetch_array($nifnif);
      $superparrain_gain1 = $gain/10;
      $resu1 = "UPDATE super_parrain SET point=point+'$superparrain_gain1' WHERE id='$id_superparrain'"; 
      $resultsu1 = mysql_query($resu1) or die ("Error in query: $resu1. " . mysql_error());
      $reme1 = "UPDATE membres SET fishopoints=fishopoints+'$superparrain_gain1' WHERE pseudo='".$pseudo_superpapa1."'"; 
      $resultme1 = mysql_query($reme1) or die ("Error in query: $reme1. " . mysql_error());
        mysql_query("INSERT INTO histo_gains VALUES('','$pseudo_superpapa1', 'SUPER PARRAIN 1', '$superparrain_gain1', '$datejour', '$dateheure', '$semaine')");
    // On s'occupe du second super parrain
      $id2 = $id_superparrain-1;
      $riri = "SELECT * FROM super_parrain where id = '".$id2."'";
      $loulou=mysql_query($riri); 
      $fifi=mysql_fetch_array($loulou);
      $pseudo_superpapa2 = $fifi['membre'];
      $nafnaf = "SELECT * FROM membres where pseudo = '".$pseudo_superpapa2."'";
      $nifnif=mysql_query($nafnaf);
      $noufnouf=mysql_fetch_array($nifnif);
      if(!empty($fifi['langue'])){
          $languesuperparrain2 = $noufnouf['langue'];
      }else{
          $languesuperparrain2 = 'fr';
      }
      $superparrain_gain2 = $gain/20;                                 
      $rere = "UPDATE super_parrain SET point=point+'$superparrain_gain2' WHERE id='$id2'"; 
      $resultsu = mysql_query($rere) or die ("Error in query: $rere. " . mysql_error()); 
      $reme = "UPDATE membres SET fishopoints=fishopoints+'$superparrain_gain2' WHERE pseudo='".$pseudo_superpapa2."'"; 
      $resultme = mysql_query($reme) or die ("Error in query: $reme. " . mysql_error());
        mysql_query("INSERT INTO histo_gains VALUES('','$pseudo_superpapa2', 'SUPER PARRAIN 2', '$superparrain_gain2', '$datejour', '$dateheure', '$semaine')");
        /*Debut coupe des clans*/
      //on effectue la requetes pour avoir l'alliance du membre
      $riri = "SELECT * FROM alliance where membre='".$_SESSION['pseudo']."'";
      $loulou=mysql_query($riri); 
      $fifi=mysql_fetch_array($loulou); 
      $lalliance = $fifi['alliance'];               
      //on effectue la requetes pour ajouter les points au clan TABLE alliance
      $rere = "UPDATE alliance SET point=point+'$gain' WHERE membre='".$_SESSION['pseudo']."'"; 
      $result = mysql_query($rere) or die ("Error in query: $rere. " . mysql_error());                    
      //on effectue la requetes pour ajouter les points au clan TABLE alliance
      //$reres = "UPDATE classement_alliance SET point=point+'$gain' WHERE alliance='$lalliance'"; 
      //$results = mysql_query($reres) or die ("Error in query: $reres. " . mysql_error());
      /*Fin coupe des clans*/ 
      /*Debut filleul*/
      $riri = "SELECT * FROM membres where pseudo='".$_SESSION['pseudo']."'";
      $loulou=mysql_query($riri); 
      $fifi=mysql_fetch_array($loulou);
      $parrain = $fifi['parrain'];
      if(!empty($fifi['langue'])){
          $languefilleul = $fifi['langue'];
      }else{
          $languefilleul = 'fr';
      }
      if(!empty($parrain)){
        $gainsparrain = $parrainnage * $gain;
        $creditparrain = "UPDATE membres SET fishopoints=fishopoints+'$gainsparrain' WHERE pseudo='$parrain'";
        $maj2parrain = mysql_query($creditparrain) or die( mysql_error()) ;
          mysql_query("INSERT INTO histo_gains VALUES('','$parrain', 'FILLEUL', '$gainsparrain', '$datejour', '$dateheure', '$semaine')");
      }
      /*Fin filleul*/ 
      // Passage au niveau supérieur
      if( $niveau == 10 ){
            $niveau = goFishing::updateLvl( $pseudo , 1 );    
            $next = 1;
        }else{
            $niveau = goFishing::updateLvl( $pseudo , $niveau + 1 );    
            $next = $niveau;                            
        }
      // On crée une nouvelle clé est on affiche le message de fin
      goFishing::newKey( $pseudo );
      if($_SESSION['langue'] == 'fr'){
      echo "Bravo !\n\nVous remportez le niveau ainsi que $gain FishoPoints.\n\nProchain Niveau : Niveau ".$next;
    }elseif($_SESSION['langue'] == 'en'){
      echo "Congratulations!\n\nYou win the level and ".$gain." points.\n\nNext Level: Level".$next;
    }elseif($_SESSION['langue'] == 'it'){
      echo "Congratulazioni!\n\nSi vince il livello e ".$gain." punti.\n\nNext Level: Livello ".$next;
    }elseif($_SESSION['langue'] == 'po'){
      echo "Gratulacje!\n\nWygrywasz poziom i ".$gain." punktów.\n\nNastepny poziom: Poziom ".$next;
    }elseif($_SESSION['langue'] == 'es'){
      echo "¡Felicitaciones!\n\nUsted gana el nivel y ".$gain." puntos.\n\nSiguiente Nivel: Nivel ".$next;
    }elseif($_SESSION['langue'] == 'de'){
      echo "Herzlichen Glückwunsch!\n\nSie gewinnen das Niveau und die ".$gain." Punkte.\n\nNächstes Level: Level ".$next;
    }else{
      echo "Bravo !\n\nVous remportez le niveau ainsi que ".$gain." FishoPoints.\n\nProchain Niveau : Niveau ".$next;
    }
  }
}
?>

Fichier que j'ai commencé à corriger :

<?php
// Classe pour la gestion du go fishing
class goFishing{
    // liste des variables
    var $id = 0;
    var $niveau = 0;
    var $nombreEnemi = 5;
    var $nombrePoisson = 3;
    var $nombreArgentMin = 1;
    var $nombreArgentMax = 5;
    var $nombreArgent = 0;
    var $erreursMax = 3;
    var $tempsMax = 60;
    var $viePoisson = 100;
    var $vieArgent = 2;
    var $cle = 0;
    var $parties = 0;    
  // Constructor
  public function goFishing( $niveau ){
    $mysqli = new mysqli($dbhost,$dblogin,$dbpassword,$dbname);
    if(!is_numeric($niveau)){
      return false;    
    }
    $sql = "SELECT * FROM gofishing WHERE niveau = $niveau";
    $req = $mysqli->query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysqli_error());
    if(mysqli_num_rows($req) == 0){
      return false;    
    }
    $d = mysqli_fetch_assoc($req);
    $d = array_map("stripslashes",$d);
    foreach( $d as $key => $val )  {
      $this->$key = $val;    
    }
    $this->nombreArgent = rand($this->nombreArgentMin,$this->nombreArgentMax);
    return true;
  }

  // Update
  public function update( $var , $val ){
    $mysqli = new mysqli($dbhost,$dblogin,$dbpassword,$dbname);
      $val = addslashes($val);
      $id = $this->id;
      $arr = array('id','niveau','nombreEnemi','nombreArgentMin','nombreArgentMax','erreursMax','nombrePoisson','tempsMax','viePoisson','vieArgent');
      if( !in_array($var,$arr)){
          return false;    
      }
      $sql = "UPDATE gofishing SET $var = '$val' WHERE id = $id";
      $req = $mysqli->query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysqli_error());
      $this->$var = stripslashes($val);
      return true;
  }

// Fonction pour afficher le niveau au format XML
  public function XML(){
      header ("Content-Type:text/xml"); 
      echo '<CONFIG>';
          echo '<niveau>'.$this->niveau.'</niveau>';
          echo '<nombreEnemi>'.$this->nombreEnemi.'</nombreEnemi>';
          echo '<nombrePoisson>'.$this->nombrePoisson.'</nombrePoisson>';
          echo '<nombreArgent>'.$this->nombreArgent.'</nombreArgent>';
          echo '<erreursMax>'.$this->erreursMax.'</erreursMax>';
          echo '<tempsMax>'.$this->tempsMax.'</tempsMax>';
          echo '<viePoisson>'.$this->viePoisson.'</viePoisson>';
          echo '<vieArgent>'.$this->vieArgent.'</vieArgent>';
          echo '<parties>'.$this->parties.'</parties>';
          echo '<cle>'.$this->cle.'</cle>';
      echo '</CONFIG>';
  }

  // Fonction pour obtenir les parties d'un membre
  static public function parties( $pseudo ){
    $mysqli = new mysqli($dbhost,$dblogin,$dbpassword,$dbname);
    echo "<br>db host = ".$dbhost."<br>";
      $pseudo = addslashes( $pseudo );
      $sql = "SELECT * FROM membres WHERE pseudo = '$pseudo'";
      $req = $mysqli->query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysqli_error());
      if(mysqli_num_rows($req) == 0){
          return 0;    
      }
      $d = mysqli_fetch_assoc($req);
      return $d['jeu1'] + $d['jeu1_sup'];
  }

  // Fonction pour enlever une partie a un membre
  static public function rPartie( $pseudo ){
    $mysqli = new mysqli($dbhost,$dblogin,$dbpassword,$dbname);
      $pseudo = addslashes( $pseudo );
      $sql = "SELECT * FROM membres WHERE pseudo = '$pseudo'";
      $req = $mysqli->query($sql) or die ('Erreur SQL !<br>'.$sql.'<br>'.mysqli_error());
      if(mysqli_num_rows($req) == 0){
          return false;
      }
      $d = mysqli_fetch_assoc($req);
      $total = $d['jeu1'] + $d['jeu1_sup'];
      if($total <= 0){
          return false;    
      }
      if( $d['jeu1'] != 0 ){
          $sql = "UPDATE membres SET jeu1 = jeu1 - 1 WHERE pseudo = '$pseudo'";
          $req = $mysqli->query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysqli_error());    
      }else{
          $sql = "UPDATE membres SET jeu1_sup = jeu1_sup - 1 WHERE pseudo = '$pseudo'";
          $req = $mysqli->query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysqli_error());
      }
  }            
  // Fonction pour obtenir le niveau d'un membre
  static public function niveau( $pseudo ){
    $mysqli = new mysqli($dbhost,$dblogin,$dbpassword,$dbname);
    echo "<br>db host = ".$dbhost."<br>";
      $pseudo = addslashes( $pseudo );
      $sql = "SELECT * FROM gf_niveaux WHERE pseudo = '$pseudo'";
      $req = $mysqli->query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysqli_error());
      if(mysqli_num_rows($req) == 0){
          $sql = "INSERT INTO gf_niveaux (id, pseudo, niveau) VALUES ('','$pseudo',1)";
        $req = $mysqli->query ($sql) or die ('Erreur SQL !<br>'.$sql.'<br>'.mysqli_error());
          return 1;
      }else{
          $d = mysqli_fetch_assoc($req);    
          return $d['niveau'];
      }
  }

  // Fonction pour attribuer une nouvelle clé a un membre
  static public function newKey( $pseudo ){
    $mysqli = new mysqli($dbhost,$dblogin,$dbpassword,$dbname);
      $pseudo = addslashes($pseudo);
      $cle = rand(1000000,9000000);
      $sql = "UPDATE gf_niveaux SET cle = $cle WHERE pseudo = '$pseudo'";
      $req = $mysqli->query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysqli_error());
      return $cle;    
  }

  // Fonction pour obtenir la clé d'un membre
  static public function getKey($pseudo)    {
    $mysqli = new mysqli($dbhost,$dblogin,$dbpassword,$dbname);
      $pseudo = addslashes($pseudo);
      $sql = "SELECT cle FROM gf_niveaux WHERE pseudo = '$pseudo'";
      $req = $mysqli->query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysqli_error());
      $d = mysqli_fetch_assoc($req);
      return $d['cle'];    
  }

  // Fonction pour modifier le niveau d'un membre
  static public function updateLvl( $pseudo , $niveau ){
    $mysqli = new mysqli($dbhost,$dblogin,$dbpassword,$dbname);
      $pseudo = addslashes($pseudo);
      if(!is_numeric($niveau)){
          return false;
      }
      $sql = "UPDATE gf_niveaux SET niveau = $niveau WHERE pseudo = '$pseudo'";
      $req = $mysqli->query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysqli_error());
      return $niveau;    
  }

  // FOnction pour commencer une partie
  static public function commencer( $pseudo ){
      $niveau = goFishing::niveau( $pseudo );
      $parties = goFishing::parties( $pseudo );
      if( $parties > 0 ){
          goFishing::rPartie( $pseudo );
      }
      $cle = goFishing::newKey( $pseudo );
      $lvl = new goFishing( $niveau );
      $lvl->parties = $parties;
      $lvl->cle = $cle;
      $lvl->XML();
  }

    // Fonction pour finir la parties
  static public function finir( $pseudo , $gain , $cle ){
    $mysqli = new mysqli($dbhost,$dblogin,$dbpassword,$dbname);
      // On vérifie si la clé est la bonne
      $acle = goFishing::getKey( $pseudo );
      $crypt = md5($acle.'AAA'.$gain);
      $niveau = goFishing::niveau($pseudo);
    $riri = "SELECT * FROM mon_vip where membre='".$pseudo."'";
  $loulou = $mysqli->query($riri); 
  $fifi = mysqli_fetch_assoc($loulou); 
  $rang_monvip = $fifi['rang'];
    if ($rang_monvip >= 13){// CONDITIONS SI LE MEMBRE N'EST PAS VIP
      $bonus_vip = 0.40; //Gain supplémentaire en coefficient: 0%=0.00
    }else{
      $bonus_vip = 0;
    }
    $gainvip = $gain * $bonus_vip;
    $gain = $gain + $gainvip;
    if($niveau == 10){
      $gain = $gain + 30;
    }
      if( $crypt != $cle ){
            goFishing::newKey( $pseudo );
            goFishing::updateLvl( $pseudo , 1 );    
            if($_SESSION['langue'] == 'en'){
              echo "You lost the game.\n\nNext Level: Level 1";
             }elseif($_SESSION['langue'] == 'it'){
              echo "Hai perso il gioco.\n\nNext Level: Livello 1";
            }elseif($_SESSION['langue'] == 'po'){
              echo "Przegrales gre.\n\nNastepny poziom: poziom 1";
            }elseif($_SESSION['langue'] == 'es'){
              echo "Usted perdió el juego.\n\nSiguiente Nivel: Nivel 1";
            }elseif($_SESSION['langue'] == 'de'){
              echo "Sie verloren das Spiel.\n\nNachstes Level: Level 1";
            }else{
              echo "Vous avez perdu la partie.\n\nProchain niveau : Niveau 1";
            }   
            return false;    
        }
      // On update les points du membre
      $sql = "UPDATE membres SET fishopoints = fishopoints + $gain WHERE pseudo = '$pseudo'";
      $req = $mysqli->query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysqli_error());
      $datejour = date("Y-m-d");
    $dateheure = date("H\hi");
    $semaine = date("W");  
      $sql = "INSERT INTO histo_gains VALUES('','$pseudo', 'JEU : GO FISHING', '$gain', '$datejour', '$dateheure', '$semaine')";
      $req = $mysqli->query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysqli_error());
      // On s'occupe du superParrain
      $sql = $mysqli->query("SELECT max(id) FROM super_parrain");
      $req=mysqli_fetch_array($sql);
      $id_superparrain = $req['max(id)'];
      //Super parrain 1
      $riri = "SELECT * FROM super_parrain where id = '".$id_superparrain."'";
      $loulou=$mysqli->query($riri); 
      $fifi=mysqli_fetch_array($loulou); 
      $pseudo_superpapa1 = $fifi['membre'];
      $nafnaf = "SELECT * FROM membres where pseudo = '".$pseudo_superpapa1."'";
      $nifnif=$mysqli->query($nafnaf);
      $noufnouf=mysqli_fetch_array($nifnif);
      $superparrain_gain1 = $gain/10;
      $resu1 = "UPDATE super_parrain SET point=point+'$superparrain_gain1' WHERE id='$id_superparrain'"; 
      $resultsu1 = $mysqli->query($resu1) or die('Erreur SQL !<br>'.$resu1.'<br>'.mysqli_error());
      $reme1 = "UPDATE membres SET fishopoints=fishopoints+'$superparrain_gain1' WHERE pseudo='".$pseudo_superpapa1."'"; 
      $resultme1 = $mysqli->query($reme1) or die('Erreur SQL !<br>'.$reme1.'<br>'.mysqli_error());
        $mysqli->query("INSERT INTO histo_gains VALUES('','$pseudo_superpapa1', 'SUPER PARRAIN 1', '$superparrain_gain1', '$datejour', '$dateheure', '$semaine')");
    // On s'occupe du second super parrain
      $id2 = $id_superparrain-1;
      $riri = "SELECT * FROM super_parrain where id = '".$id2."'";
      $loulou=$mysqli->query($riri); 
      $fifi=mysqli_fetch_array($loulou);
      $pseudo_superpapa2 = $fifi['membre'];
      $nafnaf = "SELECT * FROM membres where pseudo = '".$pseudo_superpapa2."'";
      $nifnif=$mysqli->query($nafnaf);
      $noufnouf=mysqli_fetch_array($nifnif);
      if(!empty($fifi['langue'])){
          $languesuperparrain2 = $noufnouf['langue'];
      }else{
          $languesuperparrain2 = 'fr';
      }
      $superparrain_gain2 = $gain/20;                                 
      $rere = "UPDATE super_parrain SET point=point+'$superparrain_gain2' WHERE id='$id2'"; 
      $resultsu = $mysqli->query($rere) or die ("Error in query: $rere. " . mysqli_error()); 
      $reme = "UPDATE membres SET fishopoints=fishopoints+'$superparrain_gain2' WHERE pseudo='".$pseudo_superpapa2."'"; 
      $resultme = $mysqli->query($reme) or die ("Error in query: $reme. " . mysqli_error());
        $mysqli->query("INSERT INTO histo_gains VALUES('','$pseudo_superpapa2', 'SUPER PARRAIN 2', '$superparrain_gain2', '$datejour', '$dateheure', '$semaine')");
        /*Debut coupe des clans*/
      //on effectue la requetes pour avoir l'alliance du membre
      $riri = "SELECT * FROM alliance where membre='".$_SESSION['pseudo']."'";
      $loulou=$mysqli->query($riri); 
      $fifi=mysqli_fetch_array($loulou); 
      $lalliance = $fifi['alliance'];               
      //on effectue la requetes pour ajouter les points au clan TABLE alliance
      $rere = "UPDATE alliance SET point=point+'$gain' WHERE membre='".$_SESSION['pseudo']."'"; 
      $result = $mysqli->query($rere) or die ("Error in query: $rere. " . mysqli_error());                    
      //on effectue la requetes pour ajouter les points au clan TABLE alliance
      //$reres = "UPDATE classement_alliance SET point=point+'$gain' WHERE alliance='$lalliance'"; 
      //$results = $mysqli->query($reres) or die ("Error in query: $reres. " . mysqli_error());
      /*Fin coupe des clans*/ 
      /*Debut filleul*/
      $riri = "SELECT * FROM membres where pseudo='".$_SESSION['pseudo']."'";
      $loulou=$mysqli->query($riri); 
      $fifi=mysqli_fetch_array($loulou);
      $parrain = $fifi['parrain'];
      if(!empty($fifi['langue'])){
          $languefilleul = $fifi['langue'];
      }else{
          $languefilleul = 'fr';
      }
      if(!empty($parrain)){
        $gainsparrain = $parrainnage * $gain;
        $creditparrain = "UPDATE membres SET fishopoints=fishopoints+'$gainsparrain' WHERE pseudo='$parrain'";
        $maj2parrain = $mysqli->query($creditparrain) or die( mysqli_error()) ;
          $mysqli->query("INSERT INTO histo_gains VALUES('','$parrain', 'FILLEUL', '$gainsparrain', '$datejour', '$dateheure', '$semaine')");
      }
      /*Fin filleul*/ 
      // Passage au niveau supérieur
      if( $niveau == 10 ){
            $niveau = goFishing::updateLvl( $pseudo , 1 );    
            $next = 1;
        }else{
            $niveau = goFishing::updateLvl( $pseudo , $niveau + 1 );    
            $next = $niveau;                            
        }
      // On crée une nouvelle clé est on affiche le message de fin
      goFishing::newKey( $pseudo );
      if($_SESSION['langue'] == 'fr'){
      echo "Bravo !\n\nVous remportez le niveau ainsi que $gain FishoPoints.\n\nProchain Niveau : Niveau ".$next;
    }elseif($_SESSION['langue'] == 'en'){
      echo "Congratulations!\n\nYou win the level and ".$gain." points.\n\nNext Level: Level".$next;
    }elseif($_SESSION['langue'] == 'it'){
      echo "Congratulazioni!\n\nSi vince il livello e ".$gain." punti.\n\nNext Level: Livello ".$next;
    }elseif($_SESSION['langue'] == 'po'){
      echo "Gratulacje!\n\nWygrywasz poziom i ".$gain." punktów.\n\nNastepny poziom: Poziom ".$next;
    }elseif($_SESSION['langue'] == 'es'){
      echo "¡Felicitaciones!\n\nUsted gana el nivel y ".$gain." puntos.\n\nSiguiente Nivel: Nivel ".$next;
    }elseif($_SESSION['langue'] == 'de'){
      echo "Herzlichen Glückwunsch!\n\nSie gewinnen das Niveau und die ".$gain." Punkte.\n\nNächstes Level: Level ".$next;
    }else{
      echo "Bravo !\n\nVous remportez le niveau ainsi que ".$gain." FishoPoints.\n\nProchain Niveau : Niveau ".$next;
    }
  }
}
?>

Je vous remercie par avance pour votre aide.

 

Réponses apportées à cette discussion

Par Cyrano  -  Le 15/01/2017 10:02  -  Haut de page  - 

Bonjour,
effectivement, ça ne peut pas se connecter de cette manière, tout simplement parce que les variables ne sont pas définies, en tous cas pas au bon endroit.

Il y aurait donc plusieurs choses à faire.

D'abord, mettre le code aux normes PHP5, et donc les propriétés de la classes ne doivent pas être déclarées avec « var » mais avec une « portée », donc selon le cas avec « public », « private », ou encore « protected » si leur portée doit pouvoir s'étendre à une classe qui étendrait celle-ci.

Il faudrait ensuite en rajouter une qui contiendrait l'instance de la connexion. On fera par exemple :

    /**
     * Instance de mysqli;
     */
    private static $_oMysqli;

Ensuite, il faut que les paramètres de connexion soient indiqués, de préférence dans un fichier distinct, fichier dans lequel sont définies les valeurs pour $dbhots, $dblogin, dbpassword et $dbname.

On continue en ajoutant une nouvelle méthode statique qui récupère l'instance de connexion et la crée si elle n'existe pas :

    private static function _getDbConnection()
    {
        if(is_null(self::$_oMysqli))
        {
            include('./chemin/vers/fichier/parametres/connexion.php');
            self::$_oMysqli = new mysqli($dbhost, $dblogin, $dbpassword, $dbname);
        }
        return(self::$_oMysqli);
    }

Enfin, dans toutes les fonctions où on a besoin d'une instance de cette connexion, on va remplacer :

    $mysqli = new mysqli($dbhost, $dblogin, $dbpassword, $dbname);

Par :

    $mysqli = self::_getDbConnection();

Et là, ça devrait correctement fonctionner :-)

 
Par Puce2207  -  Le 15/01/2017 12:05  -  Haut de page  - 

Merci beaucoup pour votre réponse.
C'est pas évident de m'y remettre après tout ce temps.Du coup je n'ai encore pas du faire les choses correctement car cela ne fonctionne toujours pas.
Pour être précise, ma classe est appelée dans une page qui inclue déjà les variables de connexion à la bdd :

<?php include('header.php') ?>//inclue la page config.php
<?php include('classes/gofishing.class.php'); ?>
<div id="bubbles">  
<div id="contenue">
<div id="colonne-g"><?php include("menu.php") ?></div>
<div id="colonne-d" align="center">
  <br /><br /><div style="display:inline-block; margin:10px; padding:10px; color:#333; background-color:#FFF;border-radius:10px;">
    <!-- <strong>Niveau : </strong><?php //echo $niveau; ?> -->
    <strong>Niveau : </strong><?php echo gofishing::niveau($_SESSION['pseudo']); ?><!-- appelle la page class.php -->
    </div>
<?php include('footer.php') ?>

et lorsque je lance le site, malgré mes modifications, j'obtiens le message : Niveau : Erreur SQL ! SELECT * FROM gf_niveaux WHERE pseudo = 'Puce'

Voici ma page class.php corrigée :

<?php
// Classe pour la gestion du go fishing
class goFishing{
    // liste des variables
    protected $id = 0;
    protected $niveau = 0;
    protected $nombreEnemi = 5;
    protected $nombrePoisson = 3;
    protected $nombreArgentMin = 1;
    protected $nombreArgentMax = 5;
    protected $nombreArgent = 0;
    protected $erreursMax = 3;
    protected $tempsMax = 60;
    protected $viePoisson = 100;
    protected $vieArgent = 2;
    protected $cle = 0;
    protected $parties = 0;
    private static $_oMysqli;

    //Connexion BDD
    private static function _getDbConnection(){
        if(is_null(self::$_oMysqli)){
            self::$_oMysqli = new mysqli($dbhost, $dblogin, $dbpassword, $dbname);
        }
        return(self::$_oMysqli);
    }

  // Constructor
    public function goFishing( $niveau ){
        $mysqli = self::_getDbConnection();
        if(!is_numeric($niveau)){
          return false;    
        }
        $sql = "SELECT * FROM gofishing WHERE niveau = $niveau";
        $req = $mysqli->query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysqli_error());
        if(mysqli_num_rows($req) == 0){
          return false;    
        }
        $d = mysqli_fetch_assoc($req);
        $d = array_map("stripslashes",$d);
        foreach( $d as $key => $val )  {
          $this->$key = $val;    
        }
        $this->nombreArgent = rand($this->nombreArgentMin,$this->nombreArgentMax);
        return true;
    }

  // Update
    public function update( $var , $val ){
        $mysqli = self::_getDbConnection();
        $val = addslashes($val);
        $id = $this->id;
        $arr = array('id','niveau','nombreEnemi','nombreArgentMin','nombreArgentMax','erreursMax','nombrePoisson','tempsMax','viePoisson','vieArgent');
        if( !in_array($var,$arr)){
            return false;    
        }
        $sql = "UPDATE gofishing SET $var = '$val' WHERE id = $id";
        $req = $mysqli->query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysqli_error());
        $this->$var = stripslashes($val);
        return true;
    }

// Fonction pour afficher le niveau au format XML
    public function XML(){
        header ("Content-Type:text/xml"); 
        echo '<CONFIG>';
            echo '<niveau>'.$this->niveau.'</niveau>';
            echo '<nombreEnemi>'.$this->nombreEnemi.'</nombreEnemi>';
            echo '<nombrePoisson>'.$this->nombrePoisson.'</nombrePoisson>';
            echo '<nombreArgent>'.$this->nombreArgent.'</nombreArgent>';
            echo '<erreursMax>'.$this->erreursMax.'</erreursMax>';
            echo '<tempsMax>'.$this->tempsMax.'</tempsMax>';
            echo '<viePoisson>'.$this->viePoisson.'</viePoisson>';
            echo '<vieArgent>'.$this->vieArgent.'</vieArgent>';
            echo '<parties>'.$this->parties.'</parties>';
            echo '<cle>'.$this->cle.'</cle>';
        echo '</CONFIG>';
    }

  // Fonction pour obtenir les parties d'un membre
    static public function parties( $pseudo ){
        $mysqli = self::_getDbConnection();
        $pseudo = addslashes( $pseudo );
        $sql = "SELECT * FROM membres WHERE pseudo = '$pseudo'";
        $req = $mysqli->query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysqli_error());
        if(mysqli_num_rows($req) == 0){
            return 0;    
        }
        $d = mysqli_fetch_assoc($req);
        return $d['jeu1'] + $d['jeu1_sup'];
    }

  // Fonction pour enlever une partie a un membre
    static public function rPartie( $pseudo ){
        $mysqli = self::_getDbConnection();
        $pseudo = addslashes( $pseudo );
        $sql = "SELECT * FROM membres WHERE pseudo = '$pseudo'";
        $req = $mysqli->query($sql) or die ('Erreur SQL !<br>'.$sql.'<br>'.mysqli_error());
        if(mysqli_num_rows($req) == 0){
            return false;
        }
        $d = mysqli_fetch_assoc($req);
        $total = $d['jeu1'] + $d['jeu1_sup'];
        if($total <= 0){
            return false;    
        }
        if( $d['jeu1'] != 0 ){
            $sql = "UPDATE membres SET jeu1 = jeu1 - 1 WHERE pseudo = '$pseudo'";
            $req = $mysqli->query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysqli_error());    
        }else{
            $sql = "UPDATE membres SET jeu1_sup = jeu1_sup - 1 WHERE pseudo = '$pseudo'";
            $req = $mysqli->query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysqli_error());
        }
    }            
// Fonction pour obtenir le niveau d'un membre
    static public function niveau( $pseudo ){
        $mysqli = self::_getDbConnection();
        $pseudo = addslashes( $pseudo );
        $sql = "SELECT * FROM gf_niveaux WHERE pseudo = '$pseudo'";
        $req = $mysqli->query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysqli_error()); //C'est ici que j'obtiens l'erreur
        if(mysqli_num_rows($req) == 0){
            $sql = "INSERT INTO gf_niveaux (id, pseudo, niveau) VALUES ('','$pseudo',1)";
            $req = $mysqli->query ($sql) or die ('Erreur SQL !<br>'.$sql.'<br>'.mysqli_error());
            return 1;
        }else{
            $d = mysqli_fetch_assoc($req);    
            return $d['niveau'];
        }
    }

  // Fonction pour attribuer une nouvelle clé a un membre
    static public function newKey( $pseudo ){
        $mysqli = self::_getDbConnection();
        $pseudo = addslashes($pseudo);
        $cle = rand(1000000,9000000);
        $sql = "UPDATE gf_niveaux SET cle = $cle WHERE pseudo = '$pseudo'";
        $req = $mysqli->query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysqli_error());
        return $cle;    
    }

  // Fonction pour obtenir la clé d'un membre
    static public function getKey($pseudo)    {
        $mysqli = self::_getDbConnection();
        $pseudo = addslashes($pseudo);
        $sql = "SELECT cle FROM gf_niveaux WHERE pseudo = '$pseudo'";
        $req = $mysqli->query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysqli_error());
        $d = mysqli_fetch_assoc($req);
        return $d['cle'];    
    }

  // Fonction pour modifier le niveau d'un membre
    static public function updateLvl( $pseudo , $niveau ){
        $mysqli = new mysqli($dbhost, $dblogin, $dbpassword, $dbname);
        $pseudo = addslashes($pseudo);
        if(!is_numeric($niveau)){
            return false;
        }
        $sql = "UPDATE gf_niveaux SET niveau = $niveau WHERE pseudo = '$pseudo'";
        $req = $mysqli->query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysqli_error());
        return $niveau;    
    }

  // FOnction pour commencer une partie
    static public function commencer( $pseudo ){
        $niveau = goFishing::niveau( $pseudo );
        $parties = goFishing::parties( $pseudo );
        if( $parties > 0 ){
            goFishing::rPartie( $pseudo );
        }
        $cle = goFishing::newKey( $pseudo );
        $lvl = new goFishing( $niveau );
        $lvl->parties = $parties;
        $lvl->cle = $cle;
        $lvl->XML();
    }

    // Fonction pour finir la parties
    static public function finir( $pseudo , $gain , $cle ){
        $mysqli = self::_getDbConnection();
        // On vérifie si la clé est la bonne
        $acle = goFishing::getKey( $pseudo );
        $crypt = md5($acle.'AAA'.$gain);
        $niveau = goFishing::niveau($pseudo);
        $riri = "SELECT * FROM mon_vip where membre='".$pseudo."'";
        $loulou = $mysqli->query($riri); 
        $fifi = mysqli_fetch_assoc($loulou); 
        $rang_monvip = $fifi['rang'];
        if ($rang_monvip >= 13){// CONDITIONS SI LE MEMBRE N'EST PAS VIP
          $bonus_vip = 0.40; //Gain supplémentaire en coefficient: 0%=0.00
        }else{
          $bonus_vip = 0;
        }
        $gainvip = $gain * $bonus_vip;
        $gain = $gain + $gainvip;
        if($niveau == 10){
          $gain = $gain + 30;
        }
        if( $crypt != $cle ){
                goFishing::newKey( $pseudo );
                goFishing::updateLvl( $pseudo , 1 );    
                if($_SESSION['langue'] == 'en'){
                  echo "You lost the game.\n\nNext Level: Level 1";
                 }elseif($_SESSION['langue'] == 'it'){
                  echo "Hai perso il gioco.\n\nNext Level: Livello 1";
                }elseif($_SESSION['langue'] == 'po'){
                  echo "Przegrales gre.\n\nNastepny poziom: poziom 1";
                }elseif($_SESSION['langue'] == 'es'){
                  echo "Usted perdió el juego.\n\nSiguiente Nivel: Nivel 1";
                }elseif($_SESSION['langue'] == 'de'){
                  echo "Sie verloren das Spiel.\n\nNachstes Level: Level 1";
                }else{
                  echo "Vous avez perdu la partie.\n\nProchain niveau : Niveau 1";
                }   
                return false;    
            }
        // On update les points du membre
        $sql = "UPDATE membres SET fishopoints = fishopoints + $gain WHERE pseudo = '$pseudo'";
        $req = $mysqli->query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysqli_error());
        $datejour = date("Y-m-d");
        $dateheure = date("H\hi");
        $semaine = date("W");  
        $sql = "INSERT INTO histo_gains VALUES('','$pseudo', 'JEU : GO FISHING', '$gain', '$datejour', '$dateheure', '$semaine')";
        $req = $mysqli->query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysqli_error());
        // On s'occupe du superParrain
          $sql = $mysqli->query("SELECT max(id) FROM super_parrain");
          $req=mysqli_fetch_array($sql);
          $id_superparrain = $req['max(id)'];
          //Super parrain 1
          $riri = "SELECT * FROM super_parrain where id = '".$id_superparrain."'";
          $loulou=$mysqli->query($riri); 
          $fifi=mysqli_fetch_array($loulou); 
          $pseudo_superpapa1 = $fifi['membre'];
          $nafnaf = "SELECT * FROM membres where pseudo = '".$pseudo_superpapa1."'";
          $nifnif=$mysqli->query($nafnaf);
          $noufnouf=mysqli_fetch_array($nifnif);
          $superparrain_gain1 = $gain/10;
          $resu1 = "UPDATE super_parrain SET point=point+'$superparrain_gain1' WHERE id='$id_superparrain'"; 
          $resultsu1 = $mysqli->query($resu1) or die('Erreur SQL !<br>'.$resu1.'<br>'.mysqli_error());
          $reme1 = "UPDATE membres SET fishopoints=fishopoints+'$superparrain_gain1' WHERE pseudo='".$pseudo_superpapa1."'"; 
          $resultme1 = $mysqli->query($reme1) or die('Erreur SQL !<br>'.$reme1.'<br>'.mysqli_error());
            $mysqli->query("INSERT INTO histo_gains VALUES('','$pseudo_superpapa1', 'SUPER PARRAIN 1', '$superparrain_gain1', '$datejour', '$dateheure', '$semaine')");
        // On s'occupe du second super parrain
          $id2 = $id_superparrain-1;
          $riri = "SELECT * FROM super_parrain where id = '".$id2."'";
          $loulou=$mysqli->query($riri); 
          $fifi=mysqli_fetch_array($loulou);
          $pseudo_superpapa2 = $fifi['membre'];
          $nafnaf = "SELECT * FROM membres where pseudo = '".$pseudo_superpapa2."'";
          $nifnif=$mysqli->query($nafnaf);
          $noufnouf=mysqli_fetch_array($nifnif);
          if(!empty($fifi['langue'])){
              $languesuperparrain2 = $noufnouf['langue'];
          }else{
              $languesuperparrain2 = 'fr';
          }
          $superparrain_gain2 = $gain/20;                                 
          $rere = "UPDATE super_parrain SET point=point+'$superparrain_gain2' WHERE id='$id2'"; 
          $resultsu = $mysqli->query($rere) or die ("Error in query: $rere. " . mysqli_error()); 
          $reme = "UPDATE membres SET fishopoints=fishopoints+'$superparrain_gain2' WHERE pseudo='".$pseudo_superpapa2."'"; 
          $resultme = $mysqli->query($reme) or die ("Error in query: $reme. " . mysqli_error());
            $mysqli->query("INSERT INTO histo_gains VALUES('','$pseudo_superpapa2', 'SUPER PARRAIN 2', '$superparrain_gain2', '$datejour', '$dateheure', '$semaine')");
            /*Debut coupe des clans*/
          //on effectue la requetes pour avoir l'alliance du membre
          $riri = "SELECT * FROM alliance where membre='".$_SESSION['pseudo']."'";
          $loulou=$mysqli->query($riri); 
          $fifi=mysqli_fetch_array($loulou); 
          $lalliance = $fifi['alliance'];               
          //on effectue la requetes pour ajouter les points au clan TABLE alliance
          $rere = "UPDATE alliance SET point=point+'$gain' WHERE membre='".$_SESSION['pseudo']."'"; 
          $result = $mysqli->query($rere) or die ("Error in query: $rere. " . mysqli_error());                    
          //on effectue la requetes pour ajouter les points au clan TABLE alliance
          //$reres = "UPDATE classement_alliance SET point=point+'$gain' WHERE alliance='$lalliance'"; 
          //$results = $mysqli->query($reres) or die ("Error in query: $reres. " . mysqli_error());
          /*Fin coupe des clans*/ 
          /*Debut filleul*/
          $riri = "SELECT * FROM membres where pseudo='".$_SESSION['pseudo']."'";
          $loulou=$mysqli->query($riri); 
          $fifi=mysqli_fetch_array($loulou);
          $parrain = $fifi['parrain'];
          if(!empty($fifi['langue'])){
              $languefilleul = $fifi['langue'];
          }else{
              $languefilleul = 'fr';
          }
          if(!empty($parrain)){
            $gainsparrain = $parrainnage * $gain;
            $creditparrain = "UPDATE membres SET fishopoints=fishopoints+'$gainsparrain' WHERE pseudo='$parrain'";
            $maj2parrain = $mysqli->query($creditparrain) or die( mysqli_error()) ;
              $mysqli->query("INSERT INTO histo_gains VALUES('','$parrain', 'FILLEUL', '$gainsparrain', '$datejour', '$dateheure', '$semaine')");
          }
          /*Fin filleul*/ 
        // Passage au niveau supérieur
          if( $niveau == 10 ){
                $niveau = goFishing::updateLvl( $pseudo , 1 );    
                $next = 1;
            }else{
                $niveau = goFishing::updateLvl( $pseudo , $niveau + 1 );    
                $next = $niveau;                            
            }
        // On crée une nouvelle clé est on affiche le message de fin
        goFishing::newKey( $pseudo );
        if($_SESSION['langue'] == 'en'){
          echo "Congratulations!\n\nYou win the level and ".$gain." points.\n\nNext Level: Level".$next;
        }elseif($_SESSION['langue'] == 'it'){
          echo "Congratulazioni!\n\nSi vince il livello e ".$gain." punti.\n\nNext Level: Livello ".$next;
        }elseif($_SESSION['langue'] == 'po'){
          echo "Gratulacje!\n\nWygrywasz poziom i ".$gain." punktów.\n\nNastepny poziom: Poziom ".$next;
        }elseif($_SESSION['langue'] == 'es'){
          echo "¡Felicitaciones!\n\nUsted gana el nivel y ".$gain." puntos.\n\nSiguiente Nivel: Nivel ".$next;
        }elseif($_SESSION['langue'] == 'de'){
          echo "Herzlichen Glückwunsch!\n\nSie gewinnen das Niveau und die ".$gain." Punkte.\n\nNächstes Level: Level ".$next;
        }else{
          echo "Bravo !\n\nVous remportez le niveau ainsi que ".$gain." FishoPoints.\n\nProchain Niveau : Niveau ".$next;
        }
    }
}
?>

J'ai testé la requête directement dans la base de donnée et elle fonctionne

 
Par Cyrano  -  Le 16/01/2017 10:45  -  Haut de page  - 

Le problème est toujours le même : les paramètres de connexion sont absents. Ils sont peut-être inclus ailleurs, mais la portée des variables est limitée. Donc il y a deux solutions :

  1. une crade en précisant « global » pour les quatre variables;
  2. une qui inclut le fichier de configuration juste avant la création de l'instance de connexion comme je l'ai indiqué dans mon exemple.
 
Par Puce2207  -  Le 16/01/2017 12:59  -  Haut de page  - 

Merci encore pour ton retour.
Je me suis fait la même remarque et ces 3 solutions ne fonctionnent pas :

  • en remettant les variables directement dans le fichier de la classe => Erreur SQL ! SELECT * FROM gf_niveaux WHERE pseudo = 'Puce' donc la requête ne se fait pas.
  • en mettant les variables de la bdd en global dans le fichier config => Erreur SQL ! SELECT * FROM gf_niveaux WHERE pseudo = 'Puce' donc la requête ne se fait pas.
  • en remettant l'include du fichier config dans la page de la classe => "Fatal error: Cannot redeclare db_connect() (previously declared in /homepages/22/d664967349/htdocs/config.php:25) in /homepages/22/d664967349/htdocs/config.php on line 34"

Du coup je ne vois pas trop comment faire.

 
Par Cyrano  -  Le 16/01/2017 13:20  -  Haut de page  - 

Il ne faut pas que ces variables soient à l'extérieur de la fonction.

Et l'include doit donc être DANS la fonction qui utilise ces paramètres.

Et autre détail : pour éviter l'erreur « Cannot redeclare ... », le fichier inclus ne doit pas contenir une classe, mais juste ces paramètres.

    <?php
    /**
     * Définition des paramètres de connexion à la base de données
     */
    $dbhost     = 'localhost';
    $dblogin    = '';
    $dbpassword = '';
    $dbname     = '';
    ?>
 
Par Puce2207  -  Le 16/01/2017 16:28  -  Haut de page  - 

Oh punaise quelle cruche je suis.
Merci beaucoup ça fonctionne.

 
Par Cyrano  -  Le 16/01/2017 16:30  -  Haut de page  - 

:-)

 

Ajouter une réponse à la discussion

Seuls les membres connectés sont autorisés à poster dans les forums !

Identifiez-vous
Join |  ID/MDP? |