Bonjour, et oui encore moi :)
Je vous expose mon problème :
j'ai créé ma page de connexion et index de mon forum. Cependant depuis ce matin j'ai ajouté un script javascript qui permet un e barre de recherche assez sympathique, mais depuis ce script je ne peux plus cliquer sur "connecter" de mon formulaire connexion.php à cause de mon fichier search.js.
Lorsque je remets ce même formulaire sur la page index.php nickel ça marche...
Je ne comprends d'où vient l'erreur malheureusement, serait-ce à cause du boostrap ?
Je vous fournit le fichir index, connexion, search.js et le css (ne sait-on jamais ;) )

index.php :

<?php
require("includes/class/session.class.php");
$Session = new Session();
include("includes/identifiant.php");
include("includes/debut.php");
include("includes/menu.php");
$Session->flash();
?>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script src="assets/bootstrap/js/bootstrap.js"></script>
<script src="assets/bootstrap/js/search.js"></script>

connexion.php :

<?php
require("includes/class/session.class.php");
$Session = new Session();
include("includes/identifiant.php");
include("includes/debut.php");
include("includes/menu.php");
?>
<?php
 $Session->flash();
    if($id!=0){
        $Session->setFlash('Vous êtes déjà connecté !', 'info');
        header('location:index.php');
    }

    else{ ?>
        <div class="inner cover">
            <h1 class="cover-heading col-lg-offset-4 col-lg-6">Connectez-vous</h1>
            <form method="post" action="includes/traitement.php" class="well form-horizontal col-lg-offset-4 col-lg-6">
              <div class="form-group">
                <div class="avatar"></div>
                <label class="texte">
                 Pseudo : <input type="text" name="pseudo" id="pseudo" class="form-control"/>
                </label>
             </div>
             <div class="form-group">
                <label class="texte">
                 Mot de passe : <input type="password" name="password" id="password" class="form-control"/>
               </label>
              </div>
              <div class="form-group">
               <input type="checkbox" name="rester">Rester connecté</label>
                <button class="btn btn-primary" type="submit"><span class="glyphicon glyphicon-ok-sign"></span> Se connecter</button>
              </div>
            </form>
          </div>
          <?php

    }?>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script src="assets/bootstrap/js/bootstrap.js"></script>
<script src="assets/bootstrap/js/search.js"></script>

traitement.php :

<?php
require("../includes/class/session.class.php");
$Session = new Session();
include("../includes/identifiant.php");
//Si on oublie un champ
if (empty($_POST'pseudo']) || empty($_POST'password'])){
    $Session->setFlash('Vous devez remplir tout les champs pour vous connecter !', 'danger');
    header('location:../connexion.php');
}
else{ //on check le mot de passe
        $query=$db->prepare('SELECT membre_mdp, membre_id, membre_rang, membre_pseudo FROM forum_membres WHERE membre_pseudo = :pseudo');
        $query->bindValue(':pseudo', $_POST'pseudo'], PDO::PARAM_STR);
        $query->execute();
        $data=$query->fetch();
          if ($data'membre_mdp'] == md5($_POST'password'])){ //Accès accepté ! 
            $_SESSION'pseudo'] = $data'membre_pseudo'];
            $_SESSION'level'] = $data'membre_rang'];
            $_SESSION'id'] = $data'membre_id'];
            $Session->setFlash('Vous êtes connecté !', 'success');
            header('location:../index.php');
          }
          else{ //Accès refusé
              $Session->setFlash('Une erreur s\'est produite !', 'danger');
              header('location:../connexion.php');
          }
          $query->CloseCursor();
    }

search.js :

$(function () {
    $('a[href="#search"]').on('click', function(event) {
        event.preventDefault();
        $('#search').addClass('open');
        $('#search > form > input[type="search"]').focus();
    });

    $('#search, #search button.close').on('click keyup', function(event) {
        if (event.target == this || event.target.className == 'close' || event.keyCode == 27) {
            $(this).removeClass('open');
        }
    });

    $('form').submit(function(event) {
        event.preventDefault();
        return false;
    })
});

2 réponses


Vallyan
Réponse acceptée
$('form').submit(function(event) {
    event.preventDefault();
    return false;
})

C'est a cause de ceci. Non pas parce qu'il manque un ';' (ils sont optionels en JS s'il y a un retour ligne), mais parce qu'il y a un 'preventDefault()' et un 'return false' dans le listener de soumission du formulaire, chacun empechant la soumission du formulaire.

Pourquoi les avais-tu mis ?

Salut,

Que te dis la console du navigateur ? Déjà, tu ne penses pas qu'il manque un truc genre ";" à la fin de la ligne 17 de search.js

A+