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;
})
});
$('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+