Bonjour a tous !

Je souhaites faire un marcher un Login et un register sur mon site , mais il ne marche toujours pas j'ai beau essayer pleins de fonctions et tout mais toujours rien.

Je voudrais avoir quelques aides svp.

Je peux fournir le site et le code PHP.

Merci et a bientôt.

24 réponses


Dextro
Auteur

Je souhaites faire marcher se code php :

    <div class="container">

      <form class="form-signin" action="index.php">
        <h2 class="form-signin-heading">Se connecter</h2>
        <div class="login-wrap">
            <div class="user-login-info">
                <input type="text" class="form-control" placeholder="Nom D'utilisateur" autofocus>
                <input type="password" class="form-control" placeholder="Mot de Passe">
            </div>
            <label class="checkbox">
                <input type="checkbox" value="remember-me"> Se rappeler de moi
                <span class="pull-right">
                    <a data-toggle="modal" href="#myModal"> Mot de passe oublier ?</a>

                </span>
            </label>
            <button class="btn btn-lg btn-login btn-block" type="submit">Connexion</button>

            <div class="registration">
                Pas de compte ?
                <a class="" href="enregistrement.php">
                    Créer un compte
                </a>
            </div>

        </div>

Avec ce code php :

<?php
if (!($user -> LoggedIn()))
{
    if (isset($_POST['loginBtn']))
    {
        $username = $_POST['username'];
        $password = $_POST['password'];
        if (!empty($username) && !empty($password))
        {
            if (!ctype_alnum($username) || strlen($username) < 4 || strlen($username) > 15)
            {
                echo '<div class="alert dismissible alert_red"><strong>Erreur :</strong> Format non-valide</div>';
            }
            else
            {
                $SQLCheckLogin = $odb -> prepare("SELECT COUNT(*) FROM `users` WHERE `username` = :username AND `password` = :password");
                $SQLCheckLogin -> execute(array(':username' => $username, ':password' => SHA1($password)));
                $countLogin = $SQLCheckLogin -> fetchColumn(0);
                if ($countLogin == 1)
                {
                    $SQLGetInfo = $odb -> prepare("SELECT `username`, `ID`,`status` FROM `users` WHERE `username` = :username AND `password` = :password");
                    $SQLGetInfo -> execute(array(':username' => $username, ':password' => SHA1($password)));
                    $userInfo = $SQLGetInfo -> fetch(PDO::FETCH_ASSOC);
                    if ($userInfo['status'] == 0)
                    {
                        $_SESSION['username'] = $userInfo['username'];
                        $_SESSION['ID'] = $userInfo['ID'];
                        echo '<div class="alert dismissible alert_green"><strong>Succès :</strong> Connexion aux serveurs EvilB00t..</div><meta http-equiv="refresh" content="2;url=index.php">';
                    }
                    else
                    {
                        echo '<div class="alert dismissible alert_red"><strong>Erreur :</strong> Votre compte est bloqué.</div>';
                    }
                }
                else
                {
                    echo '<div class="alert dismissible alert_red"><strong>Erreur :</strong> Identifiants incorrect.</div>';
                }
            }
        }
        else
        {
            echo '<div class="alert dismissible alert_red"><strong>Erreur :</strong> Remplisez tous les champs !</div>';
        }
    }
}
else
{
    header('location: index.php');
}
?>

Et merci pour la rapidité de ta réponse.

Dextro
Auteur

Possible de les modifier pour ? Ou de me faire un code php ? Je voudrais vraiment savoir comme faire aussi.

Dextro
Auteur

Je vien de changer sur mon code et rien ne change :( Je te passe la page entièrement.

<!DOCTYPE html>
<html lang="en">
<head>

    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="description" content="">
    <meta name="author" content="ThemeBucket">
    <link rel="shortcut icon" href="images/favicon.png">

    <title></title>

    <!--Core CSS -->
    <link href="bs3/css/bootstrap.min.css" rel="stylesheet">
    <link href="css/bootstrap-reset.css" rel="stylesheet">
    <link href="font-awesome/css/font-awesome.css" rel="stylesheet" />

    <!-- Custom styles for this template -->
    <link href="css/style.css" rel="stylesheet">
    <link href="css/style-responsive.css" rel="stylesheet" />

    <!-- Just for debugging purposes. Don't actually copy this line! -->
    <!--[if lt IE 9]>
    <script src="js/ie8-responsive-file-warning.js"></script><![endif]-->

    <!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
    <!--[if lt IE 9]>
    <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
    <script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script>
    <![endif]-->
</head>

  <body class="login-body">

    <div class="container">

      <form class="form-signin" action="index.php">
        <h2 class="form-signin-heading">Se connecter</h2>
        <div class="login-wrap">
            <div class="user-login-info">
                <input type="text" class="form-control" name="username" placeholder="Nom D'utilisateur" autofocus>
                <input type="password" class="form-control" name="password" placeholder="Mot de Passe">
            </div>
            <label class="checkbox">
                <input type="checkbox" value="remember-me"> Se rappeler de moi
                <span class="pull-right">
                    <a data-toggle="modal" href="#myModal"> Mot de passe oublier ?</a>

                </span>
            </label>
            <button class="btn btn-lg btn-login btn-block" type="submit">Connexion</button>

            <div class="registration">
                Pas de compte ?
                <a class="" href="enregistrement.php">
                    Créer un compte
                </a>
            </div>

        </div>

          <!-- Modal -->
          <div aria-hidden="true" aria-labelledby="myModalLabel" role="dialog" tabindex="-1" id="myModal" class="modal fade">
              <div class="modal-dialog">
                  <div class="modal-content">
                      <div class="modal-header">
                          <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
                          <h4 class="modal-title">Forgot Password ?</h4>
                      </div>
                      <div class="modal-body">
                          <p>Enter your e-mail address below to reset your password.</p>
                          <input type="text" name="email" placeholder="Email" autocomplete="off" class="form-control placeholder-no-fix">

                      </div>
                      <div class="modal-footer">
                          <button data-dismiss="modal" class="btn btn-default" type="button">Cancel</button>
                          <button class="btn btn-success" type="button">Submit</button>
                      </div>
                  </div>
              </div>
          </div>
          <!-- modal -->

      </form>

    </div>

    <!-- Placed js at the end of the document so the pages load faster -->

    <!--Core js-->
    <script src="js/jquery.js"></script>
    <script src="bs3/js/bootstrap.min.js"></script>

  </body>
</html>
Dextro
Auteur

J'ai rien dit ! J'ai juste cette érreur maintenant :(

Fatal error: Call to a member function LoggedIn() on a non-object in /home/u444198377/public_html/panel/connexion.php on line 32

Dextro
Auteur
<!DOCTYPE html>
<html lang="en">
<head>

    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="description" content="">
    <meta name="author" content="ThemeBucket">
    <link rel="shortcut icon" href="images/favicon.png">

    <title>Connexion</title>

    <!--Core CSS -->
    <link href="bs3/css/bootstrap.min.css" rel="stylesheet">
    <link href="css/bootstrap-reset.css" rel="stylesheet">
    <link href="font-awesome/css/font-awesome.css" rel="stylesheet" />

    <!-- Custom styles for this template -->
    <link href="css/style.css" rel="stylesheet">
    <link href="css/style-responsive.css" rel="stylesheet" />

    <!-- Just for debugging purposes. Don't actually copy this line! -->
    <!--[if lt IE 9]>
    <script src="js/ie8-responsive-file-warning.js"></script><![endif]-->

    <!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
    <!--[if lt IE 9]>
    <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
    <script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script>
    <![endif]-->
</head>
<?php
if (!($user -> LoggedIn()))
{
    if (isset($_POST['loginBtn']))
    {
        $username = $_POST['username'];
        $password = $_POST['password'];
        if (!empty($username) && !empty($password))
        {
            if (!ctype_alnum($username) || strlen($username) < 4 || strlen($username) > 15)
            {
                echo '<div class="alert dismissible alert_red"><strong>Erreur :</strong> Format non-valide</div>';
            }
            else
            {
                $SQLCheckLogin = $odb -> prepare("SELECT COUNT(*) FROM `users` WHERE `username` = :username AND `password` = :password");
                $SQLCheckLogin -> execute(array(':username' => $username, ':password' => SHA1($password)));
                $countLogin = $SQLCheckLogin -> fetchColumn(0);
                if ($countLogin == 1)
                {
                    $SQLGetInfo = $odb -> prepare("SELECT `username`, `ID`,`status` FROM `users` WHERE `username` = :username AND `password` = :password");
                    $SQLGetInfo -> execute(array(':username' => $username, ':password' => SHA1($password)));
                    $userInfo = $SQLGetInfo -> fetch(PDO::FETCH_ASSOC);
                    if ($userInfo['status'] == 0)
                    {
                        $_SESSION['username'] = $userInfo['username'];
                        $_SESSION['ID'] = $userInfo['ID'];
                        echo '<div class="alert dismissible alert_green"><strong>Succès :</strong> Connexion aux serveurs EvilB00t..</div><meta http-equiv="refresh" content="2;url=index.php">';
                    }
                    else
                    {
                        echo '<div class="alert dismissible alert_red"><strong>Erreur :</strong> Votre compte est bloqué.</div>';
                    }
                }
                else
                {
                    echo '<div class="alert dismissible alert_red"><strong>Erreur :</strong> Identifiants incorrect.</div>';
                }
            }
        }
        else
        {
            echo '<div class="alert dismissible alert_red"><strong>Erreur :</strong> Remplisez tous les champs !</div>';
        }
    }
}
else
{
    header('location: index.php');
}
?>

  <body class="login-body">

    <div class="container">

      <form class="form-signin" action="index.php">
        <h2 class="form-signin-heading">Se connecter</h2>
        <div class="login-wrap">
            <div class="user-login-info">
                <input type="text" class="form-control" name="username" placeholder="Nom D'utilisateur" autofocus>
                <input type="password" class="form-control" name="password" placeholder="Mot de Passe">
            </div>
            <label class="checkbox">
                <input type="checkbox" value="remember-me"> Se rappeler de moi
                <span class="pull-right">
                    <a data-toggle="modal" href="#myModal"> Mot de passe oublier ?</a>

                </span>
            </label>
            <button class="btn btn-lg btn-login btn-block" type="submit">Connexion</button>

            <div class="registration">
                Pas de compte ?
                <a class="" href="enregistrement.php">
                    Créer un compte
                </a>
            </div>

        </div>

          <!-- Modal -->
          <div aria-hidden="true" aria-labelledby="myModalLabel" role="dialog" tabindex="-1" id="myModal" class="modal fade">
              <div class="modal-dialog">
                  <div class="modal-content">
                      <div class="modal-header">
                          <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
                          <h4 class="modal-title">Forgot Password ?</h4>
                      </div>
                      <div class="modal-body">
                          <p>Enter your e-mail address below to reset your password.</p>
                          <input type="text" name="email" placeholder="Email" autocomplete="off" class="form-control placeholder-no-fix">

                      </div>
                      <div class="modal-footer">
                          <button data-dismiss="modal" class="btn btn-default" type="button">Cancel</button>
                          <button class="btn btn-success" type="button">Submit</button>
                      </div>
                  </div>
              </div>
          </div>
          <!-- modal -->

      </form>

    </div>

    <!-- Placed js at the end of the document so the pages load faster -->

    <!--Core js-->
    <script src="js/jquery.js"></script>
    <script src="bs3/js/bootstrap.min.js"></script>

  </body>
</html>
Dextro
Auteur

D'accord peut tu m'éclairer alors stp ?

Bonjour.
Pour commencer, ton formulaire de connexion n'a pas de méthode définie (GET, POST), de plus, tu devrais fermer le formulaire et non faire deux formulaires en un seul (connexion + mot de passe oublié) et donc, faire deux formulaire distincts.
Ensuite, tu n'as aucun input qui as comme name loginBtn, donc pourquoi mettre comme condition :

if (isset($_POST['loginBtn']))

Pour terminer, comme te l'as dit Gynidark, n'est pas définie, donc, si tu l'as bien défini dans un fichier de fonctions par exemple, il ne te faut pas oublier d'inclure le fichier avant de faire appel à la fonction.

J'ai l'impression que tu manque de compétence en PHP tu devrais reprendre les bases ce sont vraiment des erreurs qui ne devraient pas être faite. Je pense que tu peut reprendre le HTML aussi, (oublié les names sur les input d'un form c'est assez gros quand même).

Tu devrais suivre la formation graphikart sur Php. J'ai aussi l'impression que tu attend surtout que on te fournisse le code, ce n'est pas le but d'un forum d'entraide. Replonge toi dans les bases du PHP et la programmation objet car tu en utilise sans trop la comprendre je pense.

Dextro
Auteur

Oui je vais voir sa ! Par contre il y a pas la vidéo Post et Get elle a du être supprimé.

Oui je vais voir sa ! Par contre il y a pas la vidéo Post et Get elle a du être supprimé.

Ce n'est que du HTML la structure d'un formulaire.
Grafikartne va pas faire une vidéo juste pour expliquer les méthodes GET et POST d'un formulaire.

Dextro
Auteur

Nan , mais dans vos tuto php la vidéo n'y est plus ou le tuto a été supprimé.

Nan , mais dans vos tuto php la vidéo n'y est plus ou le tuto a été supprimé.

Lequel de tuto ?

Le tutoriel vidéo est bien présent et fonctionnel.

Dextro
Auteur

Ba regarder : ... http://prntscr.com/86ujow

C'est vrai il n'y a pas la vidéo. Tu peux regarder celle là sur Youtube : https://www.youtube.com/watch?v=r06r9Fjdw7M

C'est vrai il n'y a pas la vidéo.

Qu'est-ce que cette affirmation totalement fausse ?
La vidéo du tutoriel dont il a donné le lien, est parfaitement fonctionnelle sur le site, je l'ai vérifiée lorsqu'il a donné le lien, elle n'a quand même pas disparue en si peu de jours ...

J'ai cliqué sur le lien et il n'y a aucune vidéo. Et apparement nous somme pas le seul à qui ça le fait (si tu regardes le commentaire laissé en dessous).

J'ai cliqué sur le lien et il n'y a aucune vidéo

C'est vraiment étrange, car je viens à nouveau de vérifier et la vidéo fonctionne parfaitement sur le site.
Vous êtes sur que vous appuyez sur le bouton de lecture ?

Si tu regarde le lien de Dextro, c'est exactement ce que l'on voit. De toute façon j'ai mis le lien youtube de la vidéo, il pourra le regarder. :)

Au dessus du texte, il n'y a pas comme un image ?
Peut-être que vous avez désactivé l'affichage des médias sur le site, via votre navigateur ou via une extension de celui-ci.
En tout cas, la vidéo fonctionne parfaitement bien sur le site en général : Screen 1, Screen 2.

Toujours le problème ?

Dextro
Auteur

Oui , mais j'apprend mais je voudrais quelques aides aussi svp !

Sur quoi souhaites-tu de l'aide ?