je viens vous voir car j'ai un gros problème de code et je ne parviens pas a trouvez d'ou viens ce problème.
j'ai un CMS que je suis en train de développer.
colonne gauches, droite et centre.
dans la colonnes de gauche, j'ai mon module de connexion, à droite j'ai mon module de recherche.
Lorsque je suis en utilisateur lambda, j'ai le module de connexion qui me demande le login et mot de passe et le code html est bien la et fonctionnel de même pour le module de recherche qui me retour des résultats.
Le problème arrive lors de ma connexion, mon module de connexion se transforme en module de déconnexion avec un formulaire caché (seul le bouton est visible) et le code est bon puisque les balise form sont bien présent.
Mais le module de recherche quand a lui perd ses balises form ce qui lorsque je clique sur le bouton me renvoie a la page index et me déconnecte en supprimant aussi les variable session. (pas mal pour se déconnecter finalement :p)
Savez vous pourquoi un code html peut être supprimer comme cela?
(je veux bien passer mon code mais vous allez vous plongez dans,... 1500 - 2000 lignes de codes. je ne passerait je pense que ce qui sera utile)
Voila toujours le code generez de mon formulaire de connexion:
<?php
// On démarre la session
session_start();
include("../../config.php");
//connexion a la base de donnée
mysql_connect(''.$host.'',''.$user.'',''.$password.'') or die('erreur de connexion au serveur');
mysql_select_db(''.$db.'') or die('erreur de connexion à la base de donnees');
$loginOK = false; // cf Astuce
// On n'effectue les traitement qu'à la condition que
// les informations aient été effectivement postées
if ( isset($_POST) && (!empty($_POST['pseudo'])) && (!empty($_POST['pass'])) ) {
extract($_POST); // je vous renvoie à la doc de cette fonction
$cle1 = 'mfAlJQn';
$cle2 = 'QjGEgzm';
$cle3 = 'iWC5GgZ';
$passsha1md5cle2cle1cle3 = sha1(md5($pass.$cle2).$cle1).$cle3;
// On va chercher le mot de passe afférent à ce login
$sql = "SELECT pseudo, pass, niv, template FROM user WHERE pseudo = '".addslashes($pseudo)."'";
$req = mysql_query($sql) or die('Erreur SQL : <br />'.$sql);
// On vérifie que l'utilisateur existe bien
if (mysql_num_rows($req) > 0) {
$data = mysql_fetch_assoc($req);
// On vérifie que son mot de passe est correct
if ($passsha1md5cle2cle1cle3 == $data['pass']) {
$loginOK = true;
}
}
}
// Si le login a été validé on met les données en sessions
if ($loginOK) {
$_SESSION['pseudo'] = $data['pseudo'];
$_SESSION['niv'] = $data['niv'];
$_SESSION['template'] = $data['template'];
$urlcon = $_POST['urlcon'];
header("Location:".$urlcon."");
}
else {
echo 'Une erreur est survenue, veuillez réessayer !';
}
?>
je pense que c'est code permettent déjà de voir le problème et d'avoir les principaux morceaux qui doivent posez le problème. (J'ai d'autre module mais même non actif, le problème demeure, ce qui me laissent pensez que le problème provient de c'est module.
C'est bon, en fait dans mon module de déconnexion, il manquait le </form> ce qui fait que le navigateur me faisait la correction mais le serveur trouvant une deuxième déclaration de formulaire détruisant cette deuxième déclaration de formulaire ainsi que sont /form