Fonction php

Résolu
Bonjour,
je voulais savooir si quelqqu'un pouvait m'aider car je suis en train de faire un projet de bataille navale et je voulais saoir si quelqu'un pouvait m'aider a faire la fonction conexion d'un joueurs a savoir si un joueur a deja son pseudo et mot de passe qu'il puisse se connecter .

merci

 
function connexion_joueur ()
{

// On se connecte à MySQL
include("connectionBD.php");

/* s'il n'y a qu'un seul joueur, on n'organise aucun match */
if (count($jpseudo) <= 1)
return array();

//On recupere le contenu de la table pour verifier si le pseudo et le mot de passe appartiennent a la base de donnee

$sql="SELECT pseudo, pwdH FROM Joueur ";



3 réponses

  1. Modérateur
    Bonjour,
    Avant tout ....
    que contient le fichier connectionBD.php ?
    (tu utilises PDO ou mysqli ?? )

    Ensuite... comment (et à quel endroit...) appelles tu la fonction connexion_joueur() ?

    Puis pour finir ... que vient faire, dans ce code (de connexion?), les lignes suivantes :
      /* s'il n'y a qu'un seul joueur, on n'organise aucun match */
        if (count($jpseudo) <= 1)
            return array();
    


    0
    1. Bonjiur j'utilise mysql
      En faite je l'appel des le debut au cas ou mon joueurs a deja un compte sinon je le renvoie sur la page membre
      Ces lignes sont mal faites autant pour moi ;)
      0
  2. Un simple formulaire:
    <?php 
    if(isset($_POST['click'])){//Si le bouton est cliqué.
    
    // Hachage du mot de passe
    $pass_hache = sha1($_POST['pass']);
    
    // Vérification des identifiants
    $req = $bdd->prepare('SELECT id FROM membres WHERE pseudo = :pseudo AND pass = :pass');
    $req->execute(array(
        'pseudo' => $pseudo,
        'pass' => $pass_hache));
    
    $resultat = $req->fetch();
    
    if (!$resultat)
    {
        echo 'Mauvais identifiant ou mot de passe !';
    }
    else
    {
        session_start();
        $_SESSION['id'] = $resultat['id'];
        $_SESSION['pseudo'] = $pseudo;
        echo 'Vous êtes connecté !';
    }
    }

    Tu as juste a réaliser le html,je peux t'aider a le faire(Je suis programmeur amateur).
    Et n'oublie pas de rajouter une ligne de connexion pdo.

    Linux+Windows=Dual boot
    0
    1. Voila pour le html:
      <form method="post">
      <input type="text" name="pseudo" placeholder="Votre pseudo">
      <input type="password" name="pass" placeholder="Votre mot de passe">
      <input type="submit" name="click"value="Se Connecter !">
      </form>
      
      
      0
    2. Modérateur
      @TechnoinfoBonjour,

      Attention ... l'utilisateur nous a dit :

      Bonjiur j'utilise mysql


      ... donc visiblement pas PDO (même si c'est ce qu'il faudrait pourtant utiliser)...

      De plus... penses à utiliser des blocs TRY/CATCH dans tes requêtes pour intercepter les éventuelles erreurs ...
      Voir ici pour plus d'infos : https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs

      Pour finir ... le SHA1 n'est plus recommandé pour crypter les password ...
      Il faut désormais utiliser password_verify
      par exemple : https://forums.commentcamarche.net/forum/affich-34340900-login-password-php#7
      0
    3. @Technoinfosuperrr merciii mais j'ai un souci
      <?php

      // On se connecte à MySQL
      include("init.php");

      //On recupere le contenu de la table pour verifier si le pseudo et le mot de passe appartiennent a la base de donnee

      $sql="SELECT pseudo, pwdH FROM Joueur";
      ini_set('display_errors', 1);

      echo "connectionJ.php";
      // On envoie la requète
      $results = mysqli_query($connexion, $sql) or die( mysqli_error() ) ;
      if($results)
      {
      $row = mysqli_fetch_array($results);
      //affichage des résultats, pour savoir si l'insertion a marchée:

      while ($row = mysqli_fetch_array($results)) {
      if ($row ["pseudo"] == $_POST["pseudo_input"] )
      {
      if ($row ["pwdH"] == sha1($_POST["pwd"])
      {
      session_start();
      $_SESSION['pseudo'] = $pseudo;
      echo 'Vous êtes connecté !';

      }
      }
      else
      {
      echo "le pseudo et le mot de passe n'existent pas ";
      }

      ce code ne m'affiche rien
      0
  3. Bonjour tsobns,

    Il faut que tu cherches en premier temps dans quels blocs ça ne passe pas… :

    <?php
    
    // On se connecte à MySQL
    include("init.php");
    
    //On recupere le contenu de la table pour verifier si le pseudo et le mot de passe appartiennent a la base de donnee
    
    $sql="SELECT pseudo, pwdH FROM Joueur";
    
    ini_set('display_errors', 1);
    
    echo "connectionJ.php";
    
    // On envoie la requète
    $results = mysqli_query($connexion, $sql) or die(mysqli_error());
    
    if($results) {
        echo 'Résultat ?';
    
        $row = mysqli_fetch_array($results);
        //affichage des résultats, pour savoir si l'insertion a marchée:
    
        while ($row = mysqli_fetch_array($results)) {
            echo 'Boucle ?';
            
            if ($row ["pseudo"] == $_POST["pseudo_input"] ) {
                if ($row ["pwdH"] == sha1($_POST["pwd"]) {
                    session_start();
                    $_SESSION['pseudo'] = $pseudo;
                    echo 'Vous êtes connecté !';
                } else {
                    echo 'Mot de passe ?';
                }
            } else {
                echo "le pseudo et le mot de passe n'existent pas ";
            }
        }
    }
    
    ?>
    0
    1. merciii c'est parfait!
      0