Script à passer de Mysql à Mysqli

Rechercher

Script à passer de Mysql à Mysqli

Par piluche  -  19 reponses  -  Le 11/07/2017 13:10  -  Editer  - 

Bonjour à tous,

J' ai récupéré la maintenance d'un site d'une association de golfeurs et un des scripts essentiels est en Mysql et ne fonctionne plus, le site étant passé sous Mysql et PHP 7.0

Ce script se connecte au site de la Fédération Française de golf pour récupérer les handicaps des joueurs et les actualiser dans la base de données du site sous Joomla 3.7.3 et l'extension Community Builder qui gère les profils utilisateurs?

Je suis un amateur qui ne maitrise pas bien le coding.

Quelqu'un peut-il m'aider à modifier le script suivant pour le rendre actif sous Mysqli ?
Un grand merci d'avance
Cordialement,

Philippe

    $__host = "_____";
$__user = "____";
$__base = "_____";
$__password = "_____";       

$joueurArr = array();
// On se connecte à la base MySql
if (mysql_connect($__host, $__user, $__password) == true) {
    if (mysql_select_db($__user)) {
        mysql_query("SET NAMES 'utf8'");
        // Liste joueurs dans le formulaire ci dessous
        $joueurSQL = mysql_query("SELECT * from jnew_comprofiler WHERE cb_ndelicence <> ''");
        if (mysql_num_rows($joueurSQL) > 0) {
            while ($joueurLine = mysql_fetch_array($joueurSQL)) {
                $joueurArr[]  = $joueurLine;
            }
        }

        ?>
        <table>
        <?
        $i = 0;
        foreach ($joueurArr as $joueur) {
            $oldindex = $joueur["cb_index"];
            $newindex = getIndex( $joueur["cb_ndelicence"] );
            $joueurid = $joueur["id"];
            If ($oldindex <> $newindex) {
                $joueurSQL2 = mysql_query("Update jnew_comprofiler set cb_indexold = '$oldindex', cb_index = '$newindex' WHERE id = $joueurid");    
                $i = $i +1;
                ?>
                <tr>
                    <td><?=$joueurid . " " . $joueur ["firstname"] ." ". $joueur ["lastname"] ." ". $joueur ["cb_indexold"]."> nouvel index:  " . $newindex ?></td>
                </tr>
                <?
            }
        }
        ?>
        </table>
 

Réponses apportées à cette discussion

Par Cyrano  -  Le 11/07/2017 13:41  -  Haut de page  - 

Salut,
une de mes connaissances avait rencontré ce problème il n'y a pas très longtemps.

Il est bon de savoir que pratiquement toutes les fonctions mysql_xxx existent en mysqli_xxx : donc avec un outil comme par exemple Notepad++, il est assez facile de mettre à jour l'ensemble des fichiers en une seule fois en faisant un rechercher/remplacer dans les fichiers, en cherchant « mysql_ » et en remplaçant par « mysqli_ »

À moins d'utiliser certaines fonctions exotiques, ça devrait fonctionner immédiatement.

 
Par piluche  -  Le 11/07/2017 14:11  -  Haut de page  - 

Merci Cyrano,

J'ai déjà essayé de remplacer mysql par mysqli avec Notepad ++, mais ça ne fonctionne pas.

J'ai ce message d'erreur :

Warning: mysqli_select_db() expects exactly 2 parameters, 1 given in /home/users5/p/piluche/www/components/com_comprofiler/codeffg/getindex.php on line 88

J'ai lu quelque part que les fonctions mysqli_xx demandent 2 arguments dans l'écriture du script qui suit.

Et je ne sais pas faire ça.

Merci de toute aide à la réécriture de ce script sous mysqli

 
Par Cyrano  -  Le 11/07/2017 15:41  -  Haut de page  - 

Hé bien il faut rajouter le paramètre tout simplement. Sur cette fonction en particulier, elle ne devrait, si le script est bien fait, être présente qu'à un seul endroit, ça ne demande pas un effort considérable.

Et accessoirement, un petit tour dans la documentation de PHP pour l'extension mysqli ne nuirait sûrement pas.

 
Par piluche  -  Le 11/07/2017 16:47  -  Haut de page  - 

Merci, mais je ne suis pas un "pro"
Je ne sais pas faire ça et ne comprend pas bien les documents de la doc.
J'aurais simplement souhaité que quelqu'un puisse récrire ce script sous msqli. Tu sais faire ça ?
Sinon, tant pis, je vais chercher ailleurs

Encore merci pour avoir eu la gentillesse de prendre en compte mon problème

 
Par Cyrano  -  Le 11/07/2017 17:13  -  Haut de page  - 

Ok, ce n'est guère compliqué.

Avec mysqli, tu vas remplacer deux lignes.

Ton code est incomplet, et manque deux accolades « } » fermantes, il ne faudra donc pas oublier d'en faire sauter une : actuellement, tu as :

if (mysql_connect($__host, $__user, $__password) == true)
{
    if (mysql_select_db($__user))
    {

À remplacer par

if(false !== ($link = mysqli_connect($__host, $__user, $__password)))
{
    if (mysqli_select_db($link, $__base))
    {

Le reste devrait fonctionner correctement, enfin à condition de bien remplacer les autres fonctions mysql_ par mysqli_

 
Par piluche  -  Le 11/07/2017 18:22  -  Haut de page  - 

Merci pour ce coup de main

J'ai bien fait ce que tu m'as dit ( j'espère..)
Voilà ce que je reçois à l'appel du script :

Warning: mysqli_query() expects parameter 1 to be mysqli, null given in /home/users5/p/piluche/www/components/com_comprofiler/codeffg/getindex.php on line 91

Warning: mysqli_query() expects at least 2 parameters, 1 given in /home/users5/p/piluche/www/components/com_comprofiler/codeffg/getindex.php on line 93

Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, null given in /home/users5/p/piluche/www/components/com_comprofiler/codeffg/getindex.php on line 94

Dois y avoir autre chose à modifier..

Je te repasse le script dans son intégralité :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr" dir="ltr">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>

<body>

<?php

    $ecoleid = $_GET['ecoleid'];
    $where = "";
    if (isset($ecoleid)) {
        $where = " And EcoleId = " . $ecoleid;
    }

    function getHtml( $url, $post_data )
    {
        $curl = curl_init();

        $header[0] = "Accept: text/xml,application/xml,application/xhtml+xml,";
        $header[0] .= "text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5";
        $header[] = "Referer: http://www.ffgolf.org/";
        $header[] = "Cache-Control: max-age=0";
        $header[] = "Connection: keep-alive";
        $header[] = "Keep-Alive: 300";
        $header[] = "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7";
        $header[] = "Accept-Language: en-us,en;q=0.5";
        $header[] = "Pragma: "; // browsers keep this blank.

        curl_setopt($curl, CURLOPT_URL, $url);
        curl_setopt($curl, CURLOPT_POST, 1);
        curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($post_data));
        curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
        curl_setopt($curl, CURLOPT_ENCODING, 'gzip,deflate');
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($curl, CURLOPT_TIMEOUT, 10);

        $html = curl_exec($curl); // execute the curl command
        curl_close($curl); // close the connection

        return $html; // and finally, return $html
    }

    function requestFFGolfData( $licence_number )
    {
        $post_data = array('ezjscServer_function_arguments' => 'ajaxfleolerestapi::indexflash::' . $licence_number, 'ezxform_token' => "");
        $html_page = getHtml( 'http://www.ffgolf.org/ezjscore/call/', $post_data );    
        return $html_page;
    }

    function getIndex( $licence_number )
    {
        $html_page = requestFFGolfData( $licence_number );
        $regex = "/.*Index ([0-9\\.]*) au.*/s";
        $result = "Error";
        if( preg_match( $regex , $html_page , $matches ) && "" != $matches[ 1 ] )
            $result = $matches[ 1 ];
        If (strpos($html_page, "rouge") > 0 )
            $result = "LR";
        If (strpos($html_page, "non renou") > 0 )
            $result = "LNR";
        If (strpos($html_page, "invalide") > 0 )
            $result = "LNV";
        return $result;    
    }

    function getCertif( $licence_number )
    {
        $html_page = requestFFGolfData( $licence_number );    
        $result = "2";
        If (strpos($html_page, "valide") > 0 )
            $result = 1;
        If (strpos($html_page, "Pas de certificat") > 0 )
            $result = 0;
        return $result;    
    }

    $__host = "___";
    $__user = "___";
    $__base = "___";
    $__password = "___";       

    $joueurArr = array();
    // On se connecte à la base mysqli
    if(false !== ($link = mysqli_connect($__host, $__user, $__password)))
{
    if (mysqli_select_db($link, $__base))
    {
        mysqli_query($mysqli,"SET NAMES 'utf8'");
            // Liste joueurs dans le formulaire ci dessous
            $joueurSQL = mysqli_query("SELECT * from jnew_comprofiler WHERE cb_ndelicence <> ''");
            if (mysqli_num_rows($joueurSQL) > 0) {
                while ($joueurLine = mysqli_fetch_array($joueurSQL)) {
                    $joueurArr[]  = $joueurLine;
                }
            }

            ?>
            <table>
            <?
            $i = 0;
            foreach ($joueurArr as $joueur) {
                $oldindex = $joueur["cb_index"];
                $newindex = getIndex( $joueur["cb_ndelicence"] );
                $joueurid = $joueur["id"];
                If ($oldindex <> $newindex) {
                    $joueurSQL2 = mysqli_query("Update jnew_comprofiler set cb_indexold = '$oldindex', cb_index = '$newindex' WHERE id = $joueurid");    
                    $i = $i +1;
                    ?>
                    <tr>
                        <td><?=$joueurid . " " . $joueur ["firstname"] ." ". $joueur ["lastname"] ." ". $joueur ["cb_indexold"]."> nouvel index:  " . $newindex ?></td>
                    </tr>
                    <?
                }
            }
            ?>
            </table>
            <br><br>
        <?= $i ?> Mises a jour d'index et certificats...<a href="http://www.escpeuropealumnigolf.com">Retour</a>
        <? } 
    }
    ?>

</body>
</html>
 
Par Cyrano  -  Le 11/07/2017 18:36  -  Haut de page  - 

Mouais, c'est pourtant pas le plus dur, et la documentation n'est pas si compliquée que ça.

Alors je vais faire une exception parce que le code est court, voici un corrigé :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr" dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<?php
$ecoleid = $_GET['ecoleid'];
$where = "";
if(isset($ecoleid))
{
    $where = " And EcoleId = " . $ecoleid;
}
function getHtml($url, $post_data)
{
    $curl = curl_init();

    $header[0] = "Accept: text/xml,application/xml,application/xhtml+xml,";
    $header[0] .= "text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5";
    $header[] = "Referer: http://www.ffgolf.org/";
    $header[] = "Cache-Control: max-age=0";
    $header[] = "Connection: keep-alive";
    $header[] = "Keep-Alive: 300";
    $header[] = "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7";
    $header[] = "Accept-Language: en-us,en;q=0.5";
    $header[] = "Pragma: "; // browsers keep this blank.
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_POST, 1);
    curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($post_data));
    curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
    curl_setopt($curl, CURLOPT_ENCODING, 'gzip,deflate');
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_TIMEOUT, 10);
    $html = curl_exec($curl); // execute the curl command
    curl_close($curl); // close the connection
    return $html; // and finally, return $html
}
function requestFFGolfData($licence_number)
{
    $post_data = array('ezjscServer_function_arguments' => 'ajaxfleolerestapi::indexflash::' . $licence_number, 'ezxform_token' => "");
    $html_page = getHtml('http://www.ffgolf.org/ezjscore/call/', $post_data);
    return $html_page;
}
function getIndex($licence_number)
{
    $html_page = requestFFGolfData($licence_number);
    $regex = "/.*Index ([0-9\\.]*) au.*/s";
    $result = "Error";
    if(preg_match($regex, $html_page, $matches) && "" != $matches[1])
    {
        $result = $matches[1];
    }
    if(strpos($html_page, "rouge") > 0)
    {
        $result = "LR";
    }
    if(strpos($html_page, "non renou") > 0)
    {
        $result = "LNR";
    }
    if(strpos($html_page, "invalide") > 0)
    {
        $result = "LNV";
    }
    return $result;
}
function getCertif($licence_number)
{
    $html_page = requestFFGolfData($licence_number);
    $result = "2";
    if(strpos($html_page, "valide") > 0)
    {
        $result = 1;
    }
    if(strpos($html_page, "Pas de certificat") > 0)
    {
        $result = 0;
    }
    return $result;
}

$__host = "___";
$__user = "___";
$__base = "___";
$__password = "___";

$joueurArr = array();
// On se connecte à la base mysqli
if(false !== ($link = mysqli_connect($__host, $__user, $__password)))
{
    if(mysqli_select_db($link, $__base))
    {
        mysqli_query($link, "SET NAMES 'utf8'");
        // Liste joueurs dans le formulaire ci dessous
        $joueurSQL = mysqli_query($link, "SELECT * from jnew_comprofiler WHERE cb_ndelicence <> ''");
        if(mysqli_num_rows($joueurSQL) > 0)
        {
            while(false != ($joueurLine = mysqli_fetch_array($joueurSQL)))
            {
                $joueurArr[] = $joueurLine;
            }
        }
?>
                <table>
<?php
        $i = 0;
        foreach($joueurArr as $joueur)
        {
            $oldindex = $joueur["cb_index"];
            $newindex = getIndex($joueur["cb_ndelicence"]);
            $joueurid = $joueur["id"];
            if($oldindex != $newindex)
            {
                $joueurSQL2 = mysqli_query($link, "Update jnew_comprofiler set cb_indexold = '$oldindex', cb_index = '$newindex' WHERE id = $joueurid");
                $i = $i + 1;
?>
        <tr>
            <td>
                <?php echo($joueurid . " " . $joueur["firstname"] . " " . $joueur["lastname"] . " " . $joueur["cb_indexold"] . "> nouvel index:  " . $newindex); ?>
            </td>
        </tr>
<?php
            }
        }
?>
    </table>
    <br>
    <br>
    <?php echo($i); ?> Mises a jour d'index et certificats... <a href="http://www.escpeuropealumnigolf.com">Retour</a>
<?php
    }
}
?>
  </body>
</html>

Normalement ça devrait fonctionner correctement. J'ai aussi supprimé les short_open_tag, ces trucs sont à bannir, ce sont de mauvaises pratiques.

Mais à noter également : ce forum est destiné à l'apprentissage, je ne corrige pas le code des autres, je tâche de leur enseigner à le corriger eux-même, sinon le site devient sans intérêt.

 
Par piluche  -  Le 12/07/2017 11:34  -  Haut de page  - 

Merci beaucoup Cyrano, tu me sauves.
Ca fonctionne parfaitement
Désolé de t'avoir demandé les corrections.
Je commence seulement à me familiariser et comprendre le codage.
Il me faudra encore du temps, et je ne suis pas de la première jeunesse ( 70 ans, eh oui, jeune geek :-))
Mais je fais de mon mieux
Merci encore
Philippe

 
Par Cyrano  -  Le 12/07/2017 11:50  -  Haut de page  - 

Ok, je comprends.
Mais « À cœur vaillant, rien d'impossible. »

Je suis moi-même autodidacte et j'ai commencé à coder à presque 40 ans, mais je suis encore le cadet (54).

Pour apprendre le codage, l'âge importe assez peu en réalité, il faut essentiellement de la logique, ça c'est élémentaire, ainsi que de la rigueur et de la discipline. Ensuite je dirais qu'il faut avancer par étapes : d'abord le statique (HTML, CSS) et ensuite on introduit de la programmation (PHP, SQL et JavaScript). Mais ça fait tout de même 5 langages, ce qui fait du développement web un des métiers les plus compliqués en informatique, d'autant plus que chacun de ces langages évolue, et que se tenir à jour implique de tous les suivre.

Je reste néanmoins disponible pour tout conseil pratique. Comme je le mentionnais plus tôt, l'idée c'est d,amener le débutant à être autonome, sur la base de ce vieux proverbe chinois « Si tu donnes un poisson à un homme, il se nourrira une journée, si tu lui enseignes la pèche, il se nourrira toute sa vie » : en développement informatique, c'est pareil.

Il ne faut pas non plus hésiter à passer du temps dans les documentations, elles sont souvent enrichies d'exemples pratiques courants. Sinon il existe aussi quantité de tutoriels et éventuellement fouiller d'autres forums peut être utile (PHPFrance, Developpez.com, etc...) L'intérêt ici, c'est qu'on est tranquille, je suis tout seul à répondre et il y a peu de monde, on a donc le temps de s'occuper d'une question sans stress à cause de dizaines d'autres questions en attente.

Un autre truc que je recommande volontiers, c'est de participer activement sur un forum, et pas juste en posant des questions : en proposant des réponses aussi, c'est extrêmement formateur et j'ai énormément appris comme ça sur PHPFrance il y a quelques années maintenant.

Dernier truc pratique : bien aligner son code avec des indentations logiques, ça facilite grandement la relecture et on se repère infiniment plus facilement pour corriger une anomalie.

@+ :)

 
Par piluche  -  Le 12/07/2017 13:19  -  Haut de page  - 

Merci pour tous ces conseils et avoir pris le temps de venir à mon secours.
J'espère un jour savoir me débrouiller seul, mais c'est effectivement complexe.
Bonne journée,
Amicalement
Philippe

 
Par omann  -  Le 20/04/2018 11:07  -  Haut de page  - 

Bonjour à tous,

Je rencontre le même souci. J'ai tenté de corriger mais je ne m'en sort pas. Puis-je beneficier d'une exception svp?

    <?php   
    // Licence Publique Générale GNU (GNU General Publique License), Copyright 2005-2008 Geffrotin Yann  

    // connexion d'un client  
    session_start(); //démarrage de la session  

    include ("../../params.php"); //prise des paramètres  
    include ("../../i18n.php"); //Internationalisation  

    //Transitionel mieux que strict !, tout en majuscule sauf html (convention de nommage)  

    echo "<?xml version='1.1' encoding='iso-8859-1' ?>  
      <!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN'  
      'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'>  
      <html xml:lang='$lang' lang='$lang' xmlns='http://www.w3.org/1999/xhtml'>";  
    include ("../../keywords.php"); //inclue les mots-clés  
    echo "  
      <head>";  

    include ("../../licence.php"); //La licence GNU GPL (placé ici pour IE)  
    echo "<title>";  
    echo "" . $TabTotalKeywords[mt_rand(0, $TailleTabTotalKeywords)] . ",";  
    for($i = 1; $i <= 6; $i++)  
    {  
        echo " " . $TabTotalKeywords[mt_rand(0, $TailleTabTotalKeywords)] . ",";  
    }  
    echo " " . $TabTotalKeywords[mt_rand(0, $TailleTabTotalKeywords)] . " </title>";  

    include ('../../meta.php'); //inclue aussi les balises meta (pour le référencement)  

    $NomRepInstall = "freepay/";  
    $TailleNomRepInstall = strlen($NomRepInstall); //calcul de la taille du répertoire  
    $PositionArr = strpos($_SERVER["SCRIPT_NAME"], $NomRepInstall); // trouve la pos de l'emplacement du mot avec strrpos  
    $PositionMilieu = substr($_SERVER["SCRIPT_NAME"], 0, $PositionArr + $TailleNomRepInstall); /* extraction de chaine */  
    $AdresseFreePay = 'http://' . $_SERVER['HTTP_HOST'] . $PositionMilieu . '';  

    //Utilisation de CSS externe  
    echo "<link rel='stylesheet' media='screen' type='text/css' title='index' href='" . $AdresseFreePay . "style/haut.css' />  
        <link rel='stylesheet' media='screen' type='text/css' title='index' href='" . $AdresseFreePay . "style/menu.css' />  
        <link rel='stylesheet' media='screen' type='text/css' title='index' href='" . $AdresseFreePay . "style/corps.css' />  
        <link rel='stylesheet' media='screen' type='text/css' title='index' href='" . $AdresseFreePay . "style/messages.css' />  
        <link rel='stylesheet' media='screen' type='text/css' title='index' href='" . $AdresseFreePay . "style/tableaux.css' />  
        <link rel='stylesheet' media='screen' type='text/css' title='index' href='" . $AdresseFreePay . "style/bas.css' />  
      </head>  
      <body>";  
    echo "  
      <p><br/><br/><br/></p>  
      ";  
    echo "<div class='erreur_haut'>";  
    if(isset($host, $user, $password))  
    {  
        $connexion = @mysql_connect($host, $user, $password); // Connexion au serveur (A clarifier)  
        if(!$connexion)  
        {  
            echo "<p class='info'><strong>La connexion à échoué.</strong> L'hôte (ligne 23), l'utilisateur (ligne 24) ou le mot de passe (ligne 25) du fichier params.php est invalide.</p>";  
        }  
    }  

    //Si la fenetre n'est pas en 1024 par 768, ne pas redimensionner en 1024 par 768  
    echo "</div>  
      ";  

    //si le navigateur est Firefox  
    //vérifie si les données ont été envoyés de l'extérieur  
    if(!empty($_GET['mailcli']))  
    {  
        $mailcli = str_replace(" ", "", $_GET['mailcli']);  
    }  

    if(!empty($_GET['mdpcli']))  
    {  
        $mdpcli = $_GET['mdpcli'];  
    }  

    if(!empty($_GET['URLRetour']))  
    {  
        $URLRetour = $_GET['URLRetour'];  
    }  
    else  
    {  
        $URLRetour = $AdresseFreePay . 'nav_mon_compte.php';  
    }  

    //vérifie si les données ont été envoyés de l'intérieur  
    if(!empty($_POST['mailcli']))  
    {  
        $mailcli = substr(addslashes(htmlentities(strip_tags(str_replace("    ", "", str_replace(" ", "", $_POST['mailcli']))))), 0, 40); //  
    }  

    if(!empty($_POST['mdpcli']))  
    {  
        $mdpcli = htmlentities(strip_tags($_POST['mdpcli']));  
    }  

    if(!empty($_POST['URLRetour']))  
    {  
        $URLRetour = $_POST['URLRetour'];  
    }  

    //non vide ?  
    if(!empty($mailcli) and !empty($mdpcli))  
    {  
        if(mysql_select_db($base, $connexion))  
        {  
            // si connexion à la base réussi  
            $requete_client = "select * from freepay_client where mailcli = '" . $mailcli . "';"; //requête sql  
            $resultat_client = mysql_query($requete_client, $connexion); //connexion de la requete  
            $ligne = mysql_fetch_assoc($resultat_client); //affichage des résultats  
            if($ligne) //si les informations sont trouvées   
            {  
                $md5mdpcli = md5($mdpcli); //cryptage par md5 du mot de passe  
                if($md5mdpcli == $ligne["mdpcli"]) // si mot de passe correspond  
                {  
                    //les variables de sessions prennent les valeurs de la base  
                    $_SESSION["mailcli"] = $ligne["mailcli"];  
                    $_SESSION["mdpcli"] = $_POST["mdpcli"]; //sauf pour le mot de passe  
                    $_SESSION["nomcli"] = $ligne["nomcli"];  
                    $_SESSION["prenomcli"] = $ligne["prenomcli"];  
                    $_SESSION["adresscli"] = $ligne["adresscli"];  
                    $_SESSION["cpcli"] = $ligne["cpcli"];  
                    $_SESSION["villecli"] = $ligne["villecli"];  
                    $_SESSION["payscli"] = $ligne["payscli"];  
                    $_SESSION["telcli"] = $ligne["telcli"];  
                    $_SESSION["montantcompte"] = $ligne["montantcompte"];  
                    $_SESSION["datecreationcompte"] = $ligne["datecreationcompte"];  
                    $_SESSION["devise"] = $NomDevise;  
                    echo '<meta http-equiv="refresh" content="0; url=' . $URLRetour . '">';  
                }  
            }  
        }  
    }  
    include ('connexion_interface.php'); // L'interface de connexion  


    ?>
 
Par Cyrano  -  Le 20/04/2018 11:17  -  Haut de page  - 

Salut Omann,
présenté comme ça, la réponse sera non.

Je ne sais pas quel est le problème, il n'y a aucune présentation du problème rencontré en dehors de « je rencontre le même soucis », ce qui m'obligerait à relire tout le sujet pour me remettre dans le contexte, ensuite il faudrait que je lise ton code en détail pour comprendre ce que tu cherches à faire. Désolé, je n'ai pas le temps pour ça.

Si tu veux de l'aide, il va falloir faire ta part du travail : commence par exposer ce que tu cherches à obtenir, le résultat inattendu que tu as finalement obtenu, ce que tu as identifié comme problème et comment tu as tenté de le corriger.

Encore une fois, ce forum, c'est pour apprendre, pas pour faire faire le code par les autres.

 
Par piluche  -  Le 20/04/2018 11:35  -  Haut de page  - 

Bonjour Cyrano,
Puis-je te contacter en direct pour un autre problème ?
mon mail pilucheonweb@gmail.com
Merci

 
Par omann  -  Le 20/04/2018 11:57  -  Haut de page  - 

Merci Cyrano,

Désolé de la manière dont j'ai abordé le sujet.

Ce script à été developpé il y a 10 ans et il semble que ce code mysql est obsolète et n'arrive pas à se connecter à la base de données.

J'ai vu dans un forum que mysql_connect est obsolète et qu'il faut passer en PDO ou Mysqli.

if(isset($host, $user, $password))
{
$connexion = @mysql_connect($host, $user, $password); // Connexion au serveur (A clarifier)
if(!$connexion)
{
echo "<p class='info'><strong>La connexion à échoué.</strong> L'hôte (ligne 23), l'utilisateur (ligne 24) ou le mot de passe (ligne 25) du fichier params.php est invalide.</p>";
}
}

Je ne sais pas si j'ai bien expliqué.

Merci

 
Par Cyrano  -  Le 20/04/2018 12:03  -  Haut de page  - 

Ok Omann, c'est en effet beaucoup plus simple comme ça.

La librairie mysql est effectivement obsolète et le plus facile, c'est d'utiliser la librairie mysqli.
Pratiquement toutes les fonctions mysql_xxx existent sous la forme mysqli_xxx : il suffit donc généralement de rajouter le « i », mais attention, il faudra toutes les vérifier en s'appuyant sur al documentation.
La connexion est également un tout petit peu différente puisque les paramètres à passer à mysqli_connect ne sont pas tout à fait les mêmes.

Je recommande un coup d’œil aux exemples que fournit la documentation PHP.

 
Par omann  -  Le 20/04/2018 12:14  -  Haut de page  - 

D'accord merci pour votre réponse.
Mais avant de vous ecrire j'avais déjà lu ça plus haut et j'ai même suivi le lien. J'ai remplacé mysql par mysqli mais ça ne fonctionne toujours pas.
j'ai plusieurs pages à modifier mais j'esperais avoir un corrigé de mon script pour que je me serve de ça pour la suite. Voilà pourquoi j'ai demandé une exception car je sais que vous n'êtes pas là pour corriger mais nous apprendre.

Merci

 
Par Cyrano  -  Le 20/04/2018 12:26  -  Haut de page  - 

J'avais fait un truc comme ça pour un de mes frès sur un vieux script il y a 4 ou 5 ans et ça avait globalement assez bien fonctionné.

Il faut y aller pas à pas : d'abord, modifier la connexion avec une fonction mysqli comme montré dans la documentation, et vérifier que ça fonctionne correctement.

Une fois que c'est fait et que ça fonctionne, il faut remplacer une fonction à la fois, la tester et quand sa fonctionne, remplacer toutes les occurrences de cette fonction partout en reproduisant les mêmes modification. On fait ça avec « mysql_query() » qui devient « $result = $mysqli->query() », avec « mysql_fetch_assoc() » en « $result->fetch_assoc() », et ainsi de suite.

L'exemple de la documentation est très clair et complet avec une gestion de l'affichage des erreurs. À tester en premier lieu et éventuellement me revenir avec les résultat s'il y a des erreurs.

 
Par omann  -  Le 20/04/2018 13:08  -  Haut de page  - 

Ok, très sincèrement je suis limité.
Merci pour pour votre temps et votre support.

 
Par Cyrano  -  Le 20/04/2018 14:03  -  Haut de page  - 

Être limité n'implique pas que vous soyez totalement à l'ouest. Vous êtes capable de créer un bout de code, surtout quand il est copié d'un exemple de la documentation et de le tester pour afficher le résultat ?
Sinon, quel est le problème ? Décrivez ce que vous faites en détails et expliquez quel résultat vous obtenez.

 

Ajouter une réponse à la discussion

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

Identifiez-vous
Join |  ID/MDP? |