problème zone membre

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : problème zone membre

par katagoto » 22 nov. 2008, 18:20

Bonjour,

Apparemment, tu aurais envoyé du (x)HTML avant de démarer une session, tu as une erreur de syntaxe ligne 6 de ta deuxième source, surement dût à la tentative de protection des données sensibles, après, essaye d'éviter les includes inutiles comme pour index.php, ensuite, évite de nous balancer les sources et le code comme ça, d'une part c'est rebutant et c'est dséplaisant, tente de bien localiser l'erreur, est-ce que
<?php
sessin_start();
?>
marche, n'aurait-tu pas des caractères/espace blancs/lignes avant ta première <?php ?

problème zone membre

par SinY » 22 nov. 2008, 18:02

Bonjour,
j'ai quelques problèmes avec ma zone membre,

premièrement : lorsque je m'inscrit, les données sont bien transmise a la bdd mais j'ai le message suivant :
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/pulsion/www/membre.php:1) in /home/pulsion/www/membre.php on line 2
Bienvenuesiny!
Déconnexion
deuxièmement : lorsque j'essaie de me conecter avec ses identifiants, j'ai le message suivant :
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/pulsion/www/index.php:8) in /home/pulsion/www/membre_index.php on line 21
Warning: Cannot modify header information - headers already sent by (output started at /home/pulsion/www/index.php:8) in /home/pulsion/www/membre_index.php on line 23
index.php
 
<?php
 // on inclut l'affichage de nos news  
 include ('membre_index.php');  
 ?>



membre_index.php
<?php
 // on teste si le visiteur a soumis le formulaire de connexion  
 if (isset($_POST['connexion']) && $_POST['connexion'] == 'Connexion') { 
    if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass']))) { 
  
    $base = mysql_connect (**', 'pulsion', '**');  
    mysql_select_db('**', $base);

       
       // on teste si une entrée de la base contient ce couple login / pass 
       $sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'" AND pass_md5="'.md5(mysql_escape_string($_POST['pass'])).'"'; 
       $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); 
       $data = mysql_fetch_array($req); 
       
       mysql_free_result($req); 
       mysql_close(); 
       
       // si on obtient une réponse, alors l'utilisateur est un membre 
       if ($data[0] == 1) { 
          session_start(); 
          $_SESSION['login'] = $_POST['login']; 
          header('Location: membre.php'); 
          exit(); 
       } 
       // si on ne trouve aucune réponse, le visiteur s'est trompé soit dans son login, soit dans son mot de passe 
       elseif ($data[0] == 0) { 
          $erreur = 'Compte non reconnu.'; 
       } 
       // sinon, alors la, il y a un gros problème :) 
       else { 
          $erreur = 'Probème dans la base de données : plusieurs membres ont les mêmes identifiants de connexion.'; 
       } 
    } 
    else { 
       $erreur = 'Au moins un des champs est vide.'; 
    }  
 }  
 ?>
       <form action="index.php" id="connection" method="post">
    <p>
        <input type="text" id="log" name="login" class="text" value="<?php if (isset($_POST['login'])) echo htmlentities(trim($_POST['login'])); ?>">
        <input type="password" id="pass" name="pass" class="text" value="<?php if (isset($_POST['pass'])) echo htmlentities(trim($_POST['pass'])); ?>">
        <input type="submit" id="sub1" name="connexion" value="Connexion" />
        <a href="inscription.php" id="ca1" title="Register">register</a> 
		<?php
 if (isset($erreur)) echo '<br /><br />',$erreur;  
 ?> 
        <a href="#" id="ca2" title="Lost password ?">lost password ?</a> 
        <a href="#" id="ca3" title="users list">users list</a>
    </p></form>


membre.php:
<?php
 session_start();  
 if (!isset($_SESSION['login'])) { 
    header ('Location:membre_index.php'); 
    exit();  
 }  
 ?>
  
 <html>
 <head>
 <title>Espace membre</title>
 </head>
  
 <body>
 Bienvenue<?php echo htmlentities(trim($_SESSION['login'])); ?>!<br />
<a href="deconnexion.php">Déconnexion</a>
 </body>
 </html>
deconnexion.php:
<?php
session_start();  
session_unset();  
session_destroy();  
 header('Location: membre_index.php');  
 exit();  
 ?> 


et inscription.php:
<?php
 // on teste si le visiteur a soumis le formulaire  
 if (isset($_POST['inscription']) && $_POST['inscription'] == 'Inscription') { 
    // on teste l'existence de nos variables. On teste également si elles ne sont pas vides 
    if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass'])) && (isset($_POST['pass_confirm']) && !empty($_POST['pass_confirm']))) { 
       // on teste les deux mots de passe 
       if ($_POST['pass'] != $_POST['pass_confirm']) { 
          $erreur = 'Les 2 mots de passe sont différents.'; 
       } 
       else { 
          $base = mysql_connect ('**', '**', '**');  
    mysql_select_db('**', $base);
          
          // on recherche si ce login est déjà utilisé par un autre membre 
          $sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'"'; 
          $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); 
          $data = mysql_fetch_array($req); 
  
          if ($data[0] == 0) { 
             $sql = 'INSERT INTO membre VALUES("", "'.mysql_escape_string($_POST['login']).'", "'.md5(mysql_escape_string($_POST['pass'])).'")'; 
             mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error()); 
  
             session_start(); 
             $_SESSION['login'] = $_POST['login']; 
             header('Location: membre.php'); 
             exit(); 
          } 
          else { 
             $erreur = 'Un membre possède déjà ce login.'; 
          } 
       } 
    } 
    else { 
       $erreur = 'Au moins un des champs est vide.'; 
    }  
 }  
  ?>
  <html>
  <head>
  <title>Inscription</title>
  </head>
   
  <body>
  Inscription à l'espace membre :<br />
  <form action="inscription.php" method="post">
  Login : <input type="text" name="login" value="<?php if (isset($_POST['login'])) echo htmlentities(trim($_POST['login'])); ?>"><br />
  Mot de passe : <input type="password" name="pass" value="<?php if (isset($_POST['pass'])) echo htmlentities(trim($_POST['pass'])); ?>"><br />
 Confirmation du mot de passe : <input type="password" name="pass_confirm" value="<?php if (isset($_POST['pass_confirm'])) echo htmlentities(trim($_POST['pass_confirm'])); ?>"><br />
 <input type="submit" name="inscription" value="Inscription">
 </form>
 <?php
 if (isset($erreur)) echo '<br />',$erreur;  
?>
 </body>
 </html> 
http://www.pulsion.tonsite.biz/

merci ;)

SiniZoWn