Aide pour page connexion ( amélioré si possible )

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Aide pour page connexion ( amélioré si possible )

Re: Aide pour page connexion ( amélioré si possible )

par MarYas » 22 juin 2021, 23:27

Bin j'ai fait ça oui je me doute qu'a voir c'est mieux dans une class static ou objet. Vous en pensez quoi ?
namespace ConnexControl;

use \PDO ;

class BDD
{

  private  $dbh;
  private  $host ;
  private  $dbname ;
  private  $username ;
  private  $password ;

  public function __construct($dbname, $host = "localhost",  $username = "root", $password = "root"){

      $this->dbname = $dbname;
      $this->host = $host;
      $this->username = $username;
      $this->password = $password;
  }

  public function getPDO(){
    try
    {
      $dbh = new PDO("mysql:dbname=$this->dbname;host=$this->host; charset=utf8", $this->username, $this->password);
      $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
      $this->dbh = $dbh;
    }
    catch (PDOException $e)
    {
      $msg = 'ERREUR PDO dans ' . $e->getFile() . ' L.' . $e->getLine() . ' : ' . $e->getMessage();
      die($msg);
    }
    return $this->dbh;
  } // fin getPDO

Re: Aide pour page connexion ( amélioré si possible )

par Bryx » 22 mai 2021, 11:36

Hello 🖐

Je te déconseille fortement d'en faire une classe statique.
De plus, la réponse de Shadowwera est intéressante et complète là avec Composer pour éviter les requires d'une classe.

Voici une video avec l'utilisation de Composer :
- https://grafikart.fr/tutoriels/composer-480

J'ai aussi trouvé une question similaire ton souci, regarde le sujet :
- php-debutant/topic281523.html

Dis-moi si Composer t'aidera grandement et savoir si ton problème de classe statique a été résolvez.

Merci ;)

Re: Aide pour page connexion ( amélioré si possible )

par MarYas » 19 mai 2021, 17:15

Merci pour ta réponse mais j'ai un message d'erreur
Parse error: syntax error, unexpected 'PDO' (T_STRING), expecting variable (T_VARIABLE) ligne 5 (PRIVATE PDO $dbh;)
Dans mon autre fichier je fait plutot appel comme ça $dbh = BDD::getConnexion()
Vu que je suis en static function.
Je cherche l'erreur en attendant ;)
Et quand je le change il me mets erreur "Parse error: syntax error, unexpected 'string' " ligne 6 (private string $host = "localhost";)

Re: Aide pour page connexion ( amélioré si possible )

par Shadowwera » 05 mai 2021, 11:38

Dans ces cas la pourquoi ne pas utiliser un Class pour ta connexion ?
class BDD {
	PRIVATE PDO $dbh;
	private string $host = "localhost";
	private string $dbname = "";
	private string $username = "root";
	private string $password = "root";
	public function __construct(){
		try {
			$this->dbh = new PDO("mysql:host=$this->host;dbname=$this->dbname", $this->username, $this->password);
			$this->dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
		} catch(PDOException $e) {
			die('Connexion failed : '.$e->getMessage());
		}
	}
	public function getConnection(){
		return $this->dbh;
	}
}
et en faisant un appel comme celui-ci :
$BDD = new BDD();
$dbh = $BDD->getConnection();
sans oublier de require ta Class évidemment

Sans compter la facilité à faire tes connexions, ça ajoutera une sécurité supplémentaire grâce au PRIVATE

Re: Aide pour page connexion ( amélioré si possible )

par MarYas » 04 mai 2021, 17:56

Bin aprés oui tkt pas je suis en modéle mvc ce fichier connexion je fait appel dans un autre avec une classe puis function puis $idcon = connexion() ;
C'est juste sur ce fichier que je demande car c'est bien le modéle POO de w3 school mais je le trouve simpliste après je suis débutant dc je veux vraiment savoir si je peux en suivant l'évolution de php l'utiliser dans mes futurs sites tel quel !
PS : les echo c'est juste pour moi débugger voir si ma connexion se fait merci pour ta réponse quand même !

Re: Aide pour page connexion ( amélioré si possible )

par Shadowwera » 04 mai 2021, 09:14

Bonjour !

Si tu souhaite améliorer ton code, et surtout le sécurisé, je t'invite à commencer à programmer en POO ( Class )
En plus de ça, ça va te permettre de n'écrire qu'une seul fois certaine portion de code ( Par exemple ta connexion à ta base de données )

Ce cour sur OpenClassrooms m'a beaucoup aidé à comprendre comment faire tout ceci proprement :
https://openclassrooms.com/fr/courses/4 ... ntee-objet

Aide pour page connexion ( amélioré si possible )

par MarYas » 04 mai 2021, 01:04

Bonjour à tous je voulais savoir si je peux sécurisé un peu plus en évitant les choses basiques mdp etc mais sur la syntaxe ou le code en lui même chaque conseil est le bienvenu merci car je débute en php c'est la façon POO plus sécurisé à ce qu'il parait ?!
Merci

<?php

  function connexion() {

    $servername = "localhost";
    $username = "root";
    $password = "root";
    $dbname= "";

    try{
      $conn = new PDO("mysql:host=$servername;dbname=$dbname;charset=utf8", $username, $password);
echo "connexion effectué";
      return $conn;


    } catch(PDOException $e) {
      echo "Connexion échouée: " . $e->getMessage();
        return false;
        exit();
    }
}

?>