[PHP] Balise form disparu apres connection

Résolu/Fermé
Profil bloqué - 17 mai 2010 à 14:07
 Profil bloqué - 17 mai 2010 à 17:32
Bonjour à tous,

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:
<div class="bloc"><center><h3>Connexion</h3></center><form action="module/login/verifcon.php" method="post">
<table>
  <tbody><tr>
    <td>Login :</td>
    <td><input name="pseudo" size="15" type="text"></td>
  </tr>
  <tr>
    <td>Password :</td>

    <td><input name="pass" size="15" type="password"></td>
  </tr>
</tbody></table>
<input name="urlcon" value="/autre-site/test/index.php" style="visibility: hidden;" type="text">
    <input value=".:: Connexion ::." type="submit">
</form>
</div>


avec le code php qui genere la connexion et deconnexion:
<?php
if(!isset($_SESSION['pseudo'])){?>
<form action="module/login/verifcon.php" method="post">
<table>
  <tr>
    <td>Login :</td>
    <td><input name="pseudo" type="text" size="15" /></td>
  </tr>
  <tr>
    <td>Password :</td>
    <td><input name="pass" type="password" size="15" /></td>
  </tr>
</table>
<input type="text" name="urlcon" value="<?php echo $_SERVER['REQUEST_URI']; ?>" style="visibility:hidden" />
    <input type="submit" value=".:: Connexion ::." />
</form>
<?php
}else{
echo 'Bonjour et bienvenue '.$_SESSION['pseudo'].'<br>';
echo 'Votre derniere connexion remonte au:';
?>
<form action="module/login/deco.php" method="post">
<input type="text" name="urldeco" value="<?php echo $_SERVER['REQUEST_URI']; ?>" style="visibility:hidden" />
<input type="submit" value=".:: Déconnexion ::." />
<?php
}


le code générez de déconnexion:
<div class="bloc"><center><h3>Connexion</h3></center>Bonjour et bienvenue admin<br>Votre derniere connexion remonte au:<form action="module/login/deco.php" method="post">
<input name="urldeco" value="/autre-site/test/index.php" style="visibility: hidden;" type="text">
<input value=".:: Déconnexion ::." type="submit">
</form></div>


et voila le code demander pour être intégrez dans la page:
<center>
<form action="module/search/result.php" method="post">
<input type="text" name="search"<?php if(isset($_GET['search'])){$search=$_GET['search'];echo ' value="'.$search.'"';} ?> /><br />
<input type="submit" value="Rechercher">
</form>
</center>


le code générez quand on est non-connecte:
<div class="bloc"><center><h3>Recherche</h3></center><center>
<form action="module/search/result.php" method="post">
<input name="search" type="text"><br>
<input value="Rechercher" type="submit">
</form>
</center></div>


et celui générez quand on est connecter:
<div class="bloc"><center><h3>Recherche</h3></center><center>

<input name="search" type="text"><br>
<input value="Rechercher" type="submit">

</center></div>


voila le code qui permet de faire la 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.

Merci beaucoup de votre aide.

1 réponse

Profil bloqué
17 mai 2010 à 17:32
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
0