Page authentification
domstras Messages postés 11 Statut Membre -
Bonjour,
Je voudrais faire un site avec une partie administration accès par user et mot de passe. J'avais un site qui fonctionné dans les année 2000 hélas je n'arrive plus a le faire marché. Les fonction mysql sont trop ancienne . Quelqu'un pourrais m'aider ? Je précise que j’étais développeur web mais suite a accident cérébral j'ai perdu tous ce que j'ai appris.
Merci de votre aide
PS je peux vous envoyer mon ancien code
Windows / Firefox 108.0
10 réponses
-
Bonjour,
Nous pouvons t'aider corriger ton code sur des points spécifiques ... mais nous ne le ferons pas à ta place.
Si tu désires de l'aide, pense à poster le code concerné et à nous indiquer les éventuels messages d'erreur.
( De préférence... un souci à la fois ... et ...une discussion par souci )
-
Bonjour,
Merci pour ton aide.
<?php //class Mysql class BaseDeDonnee { private $oLinkSql;// la connexion mysql en cours private $oResult;// le resultat de la requete executee private $aConnect;// la configuration de la base de donnees // ---------------------------------- __construct() ---------------------------------------------------------- public function __construct() { // initialisation des proprietes de la classe $this->aConnect = array(); // local $ip = "localhost"; $login = "root"; // le login $password = "t"; // mot de passe $database = "asticlub"; // adresse id $_SERVER["REMOTE_ADDR"]; if ( $this->oLinkSql = @mysqli_connect( $this->aConnect['ip'], $this->aConnect['login'], $this->aConnect['password'], $this->aConnect['database'], $this->aConnect['port'] ) ) { $is_erreur = false ; $sql = 'SET CHARACTER SET \'utf8\''; $this->query($sql); $sql = 'SET collation_connection = \'utf8_general_ci\''; $this->query($sql); } else // erreur de connexion a la base -> redirection sur une page d'erreur { echo "<meta http-equiv=\"refresh\" content=\"0; URL=erreurs/erreurBDD.htm\">";// possibilitee d'utiliser un header('Location: erreurs/erreurBDD.htm'); exit; } }Not Found
The requested URL was not found on this server.
Apache/2.4.54 (Win64) PHP/8.0.26 mod_fcgid/2.3.10-dev Server at localhost Port 80
voila ce que sa m'affiche
Merci
-
J'ai modifié par un echo'Erreur de connection<br>';
et s'est ce qu'il m'affiche donc je pense que ma connection n'ai pas bonne
-
nous sommes d'accord.
Et si tu regardes le code de connexion à ta bdd .. tu vois qu'il utilise une variable $a_connect .... et non pas les informations de connexion que tu as écris toi même ...
A mon avis, le code serait à modifier comme ceci :
// initialisation des proprietes de la classe $this->aConnect = array(); // local $this->aConnect['ip'] = "localhost"; $this->aConnect['login'] = "root"; // le login $this->aConnect['password'] = "t"; // mot de passe $this->aConnect['database'] = "asticlub";
Tu devrais également retirer le arobase devant l'appel de la fonction myslqiconnect ... ça masque les éventuelles erreurs ( je te déconseille donc d'en utiliser où que ce soit dans ton code.. )
A la place, regarde l'éventuelle erreur via la fonction mysqli_error
if (mysqli_connect_errno()) { echo "Failed to connect to MySQL: " . mysqli_connect_error(); exit(); }
-
-
Voila le message maintenant, j'ai retirer tous les @
( ! ) Fatal error: Uncaught Error: Call to undefined method BaseDeDonnee::seConnecter() in C:\wamp64\www\Asticlub\Page_Admin\login.php on line 14( ! ) Error: Call to undefined method BaseDeDonnee::seConnecter() in C:\wamp64\www\Asticlub\Page_Admin\login.php on line 14Call Stack#TimeMemoryFunctionLocation10.0002364480{main}( )...\login.php:0
( ! ) Fatal error: Uncaught TypeError: mysqli_close(): Argument #1 ($mysql) must be of type mysqli, null given in C:\wamp64\www\Asticlub\BaseDeDonnee.php on line 154( ! ) TypeError: mysqli_close(): Argument #1 ($mysql) must be of type mysqli, null given in C:\wamp64\www\Asticlub\BaseDeDonnee.php on line 154Call Stack#TimeMemoryFunctionLocation10.0013366576BaseDeDonnee->__destruct( )...\BaseDeDonnee.php:020.0013366576mysqli_close( $mysql = NULL )...\BaseDeDonnee.php:154
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Base de donné:
<?php //class Mysql class BaseDeDonnee { private $oLinkSql;// la connexion mysql en cours private $oResult;// le resultat de la requete executee private $aConnect;// la configuration de la base de donnees // ---------------------------------- __construct() ---------------------------------------------------------- public function __construct() { // initialisation des proprietes de la classe $this->aConnect = array(); // local $this->aConnect['ip'] = "localhost"; $this->aConnect['login'] = "root"; // le login $this->aConnect['password'] = "t"; // mot de passe $this->aConnect['database'] = "asticlub"; // local //$ip = "localhost"; //$login = "root"; // le login //$password = "t"; // mot de passe //$database = "asticlub"; if (mysqli_connect_errno()) { echo "Erreur de connection a MySQL: " . mysqli_connect_error(); exit(); } } // ----------------------------------------------------------------------------------------------------------- // ------------------------------------------- PUBLIC FUNCTIONS --------------------------------------------- // ----------------------------------------------------------------------------------------------------------- /** * Permet de recuperer les parametres de connexion de la base. * Utile pour d'autre scripts php. * * @return : un tableau avec les parametres de connexion de la base */ public function getConfig() { return $this->aConnect; } /** * Execute une requete mysql * * @param requete * @return : un message d'erreur ou l'objet avec le resultat de la requete */ public function query($sSqlQuery) { if ( $this->oResult = mysqli_query($this->oLinkSql,$sSqlQuery) ) return $this->oResult; else return 'Query : '.$sSqlQuery.' - error : '.mysqli_error($this->oLinkSql); } /* * Donne le resultat de la requete sous forme d'objet * * @param $oResultQuery : le resultat renvoye par une requete pour obtenir un objet */ public function getObject($oResultQuery = NULL) { // dans le resultat d'une autre requete if($oResultQuery!=NULL) { return mysqli_fetch_object($oResultQuery); //if ( @mysqli_error($this->oLinkSql) ) return @mysqli_error($this->oLinkSql); } // donne le resultat de la derniere requete executee if ($this->oResult != NULL) { return mysqli_fetch_object($this->oResult); //if ( @mysqli_error($this->oLinkSql) ) return @mysqli_error($this->oLinkSql); } } // ---------------------------------- getNumRows() ---------------------------------------------------------- /** * @brief donne le nombre d'elements modifies par la requete * Pratique dans le cas des INSERT * * @return (integer) le nombre d'elements modifies par la requete */ public function getNumRows() { if( $this->oLinkSql != NULL && $this->oLinkSql != false) { return mysqli_affected_rows($this->oLinkSql); //if (@mysqli_error($this->oLinkSql)) return @mysqli_error($this->oLinkSql); } } // ---------------------------------- lastInsertId() ---------------------------------------------------------- /** * @brief Retourne l'identifiant automatiquement généré par la dernière requête. * Pratique dans le cas d'un INSERT ou UPDATE pour recuperer le dernier identifiant * * @return (integer) le dernier identifiant insere */ public function lastInsertId() { return mysqli_insert_id($this->oLinkSql); } // ----------------------------------------------------------------------------------------------------------- // ----------------------------------------- Others ---------------------------------------------------------- // ----------------------------------------------------------------------------------------------------------- /** * @brief * * @return */ public function __destruct() { $this->oLinkSql = NULL ; $b_rep = mysqli_close($this->oLinkSql); if( $b_rep != true ) return 'Erreur closing sql connexion!'; } // ---------------------------------------- __toString() ---------------------------------------------------- /** * @brief Returns the string representation of this instance. * * @usage echo(myObject) ou print(myObject) * @return the string representation of this instance. */ public function __toString() { $s_classContent = "[Object ".__CLASS__."]<br />"; foreach($this as $prop => $value) { $s_classContent .= "$prop => $value <br />"; } return $s_classContent; } } ?>
-
Login
<?php // pensez a ouvrir une connexion vers mysql ici require_once ('../BaseDeDonnee.php'); $DB = new BaseDeDonnee(); if(isset($_POST) && !empty($_POST['login']) && !empty($_POST['pass'])) { extract($_POST); // on recupère le password de la table qui correspond au login du visiteur $DB->nomUser=$login; $DB->motDePasse=$pass; $DB->seConnecter(); $sql = "select pwd from tbl_user where login='".$login."'"; // $req = mysqli_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); // $req = $DB->query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); $req = $DB->database->mysqli_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysqli_error()); // $data = mysql_fetch_assoc($req); $data = $req->fetch_assoc(); if($data['pwd'] != $pass) { echo '<p>Mauvais login / password. Merci de recommencer</p>'; include('login.htm'); // On inclus le formulaire d'identification exit; } else { session_start(); $_SESSION['login'] = $login; echo '<p>Identification réussis !</p>'; } } else { echo '<p>Vous avez oublié de remplir un champ.</p>'; include('login.htm'); // On inclut le formulaire d'identification exit; } ?> <html> <!-- Date de création: 19/10/2005 --> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> <title>Login</title> <link rel="stylesheet" type="text/css" href="../Styles/styles_asti.css"> </head> <body <p class= "fond"></p> <br> <p class= "entete" align="center" >Page d'identification !</p><br><br> <table border="1" cellpadding="0" cellspacing="0" bordercolor="#111111" style="border-style:double; border-width:3; border-collapse: collapse; padding-left:4; padding-right:4; padding-top:1; padding-bottom:1" id="AutoNumber1" bordercolorlight="#0000FF" bordercolordark="#FF00FF"> <tr> <td align="center" valign="middle" style="border-width:3; border-style:double; padding-left:4; padding-right:4; padding-top:1; padding-bottom:1" bordercolor="#0000FF"> <font size="4">Page d'accueil</font></td> <td align="center" valign="middle" style="border-width:3; border-style:double; padding-left:4; padding-right:4; padding-top:1; padding-bottom:1" bordercolor="#0000FF"> <a href="../Pages_Fr/Accueil.html"> <img border="0" src="../images/drapeaux_Fr.gif" width="34" height="34"></a></td> <td align="center" valign="middle" style="border-width:3; border-style:double; padding-left:4; padding-right:4; padding-top:1; padding-bottom:1" bordercolor="#0000FF"> <a href="../Pages_De/Accueil.html"> <img border="0" src="../images/drapeaux_De.gif" width="34" height="34"></a></td> </tr> <tr> <td align="center" valign="middle" style="border-width:3; border-style:double; padding-left:4; padding-right:4; padding-top:1; padding-bottom:1" bordercolor="#0000FF"> <font size="4" color="#000000">Ajouter une soirée</font></td> <td align="center" valign="middle" style="border-width:3; border-style:double; padding-left:4; padding-right:4; padding-top:1; padding-bottom:1" bordercolor="#0000FF"> <a href="Ajouter_Soiree.php"> <img border="0" src="../images/drapeaux_Fr.gif" width="34" height="34"></a></td> <td align="center" valign="middle" style="border-width:3; border-style:double; padding-left:4; padding-right:4; padding-top:1; padding-bottom:1" bordercolor="#0000FF"> <a href="Ajouter_Soiree_de.php"> <img border="0" src="../images/drapeaux_De.gif" width="34" height="34"></a></td> </tr> <tr> <td align="center" valign="middle" style="border-width:3; border-style:double; padding-left:4; padding-right:4; padding-top:1; padding-bottom:1" bordercolor="#0000FF"> <font size="4" color="#000000">Afficher les soirées</font></td> <td align="center" valign="middle" style="border-width:3; border-style:double; padding-left:4; padding-right:4; padding-top:1; padding-bottom:1" bordercolor="#0000FF"> <a href="Afficher_Soiree.php"> <img border="0" src="../images/drapeaux_Fr.gif" width="34" height="34"></a></td> <td align="center" valign="middle" style="border-width:3; border-style:double; padding-left:4; padding-right:4; padding-top:1; padding-bottom:1" bordercolor="#0000FF"> <a href="Afficher_Soiree_de.php"> <img border="0" src="../images/drapeaux_De.gif" width="34" height="34"></a></td> </tr> </table> </body> </html>
-
Je vous remercie de votre aide, c'est pas bien de vieillir et de ne plus avoir de mémoire ni de ce concentré.
-
Pas de quoi.
Par contre.. en effet .. dans ta class
BaseDeDonnee
aucune trace de la méthode
seConnecter();
Je suppose que c'est normalement une fonction qui sert à l'utilisateur pour se loguer.
Tu as du oublier de la remettre dans ta class.
A noter qu'il ne faut pas stocker le mot de passe en clair dans la BDD..... il faut le hasher ( le crypter )
Pour ça, je t'invite à regarder du côté des fonctions password_hash et password_verify
-
-
Je vois pas comment faire pour la methode
pour le hash je verrais plus tard quand j'aurais reussis a faire la connection.
-
Bonjour,
Pour le moment tous ce que j'essais ne marche pas je continu de chercher Merci
-
Bonjour désolé du retard pour vous répondre, pour le moment je mets tous de coté je dois être réopéré et j'arrive plus a me concentré Merci de vos aide je reviendrais vers vous prochainement.