Cacher le formulaire de connexion si l'utilisateur est connecté

Résolu
diyar77 Messages postés 113 Statut Membre -  
diyar77 Messages postés 113 Statut Membre -
Bonjour, Je re-pose ma question car sur l'ancienne personne ne répond :/

Donc

J'ai un problème je n'arrive pas à cacher mon formulaire de connexion lorsque qu'un utilisateur est connecté.

En faite je voudrais que le formulaire soit affiché quand il est pas connecté puis que ce soit caché quand l'utilisateur s'est connecté. Il faudrait aussi que j'affiche le message de bienvenue au membre à la place du formulaire quand il est connecté.

J'ai déjà mis un code PHP comme ça:
<?php
$_SESSION['authenticated'] = true;

?>
<?php
if ($_SESSION['authenticated'] == 1) {
echo"Bienvenue  " .$_SESSION['pseudo']; echo" <a href='/deconnexion.php'>Deconnexion</a>";
}
else
{
}
?>
<?php
if ($_SESSION['authenticated'] == 0) {
echo"<a href=\"connexion.php\">Connecter-vous</a>";
}
else
{
}
?>

Mais ça ne fonctionne pas...

Merci d'avance,
Diyar77

18 réponses

  1. coco
     
    après validation de ton formaulaire par ton utilisateur: tu as mis dans une variable de session ceci :
    $_SESSION['authenticated'] = true;

    lorsqu'il accède à une autre page ...

    <?php
    session_start();

    if ( isset ($_SESSION['authenticated'] ) && ($_SESSION['authenticated']) ) {

    echo "Bienvenue $_SESSION[pseudo] <br />" ;

    }else{

    //mon formulaire

    }
    ?>

    si c'est la même page, il faut changer la condition et tester ton post ou ton get
    3
  2. coco
     
    il faut que tu vires $_SESSION['authenticated'] = true; de l'index.php
    et que tu le mettes dans la validation du formulaire ou de l'enregistrement dans la BDD quelque part entre cok.php ou iok.php

    sans oublier d'initialiser la page avec session_start();

    d'ailleurs si tu utilises les variables de session tu peux mettre session_start(); dans toutes tes pages comme ça tu ne l'oublieras pas !

    de plus session_start(); doit commencer à la première ligne pas après une variable de session: ton pb vient de là !
    3
  3. diyar77 Messages postés 113 Statut Membre 14
     
    Bjr,

    sa ne fonctionne toujours pas :/
    1
  4. diyar77 Messages postés 113 Statut Membre 14
     
    UP
    1
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. diyar77 Messages postés 113 Statut Membre 14
     
    Toujours personne :/
    1
  7. adrienmarty Messages postés 76 Statut Membre 3
     
    Met le formulaire dans le else.

    SI il est connecté => Bienvenue.

    SINON (else) => Formulaire de connexion.
    1
  8. diyar77 Messages postés 113 Statut Membre 14
     
    Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting ',' or ';' in /public_html/index.php on line 95
    1
  9. diyar77 Messages postés 113 Statut Membre 14
     
    Sinon j'ai fais comme ça:
    <?php
    session_start();

    if ( isset ($_SESSION['authenticated'] ) && ($_SESSION['authenticated']) ) {

    echo "Bienvenue $_SESSION[pseudo]";
    echo "<a href='/deconnexion.php'>Deconnexion</a>";

    }else{
    echo"<a href=\"connexion.php\">Connecter-vous</a>";

    }
    ?>

    sa fonctionne aussi ?
    1
  10. diyar77 Messages postés 113 Statut Membre 14
     
    UP
    1
  11. coco
     
    le problème est de savoir où est ton formulaire et où tu le vérifies?

    si ton formulaire est vérifié sur un autre script (exemple: validform.php)

    il faut aussi que tu démarres les variables de session:

    fichier validform.php
    <?php

    session_start();

    //test des données formulaires

    //validation des données du formulaire

    $_SESSION['authenticated'] = true;

    //retour à la page d'accueil du formulaire

    ?>

    //page d'accueil index.php

    <?php
    session_start();

    if ( isset ($_SESSION['authenticated'] ) && ($_SESSION['authenticated']) ) {

    echo "Bienvenue $_SESSION[pseudo] <br />" ;

    }else{

    //mon formulaire
    echo "<form method=POST action=validform.php>";
    ...
    echo "<form/>";
    }
    ?>
    1
  12. diyar77 Messages postés 113 Statut Membre 14
     
    Bon, je vais tout résumer !

    Formulaire d'inscription:

    <form method="post" action="/user/iok.php" name="submit" ><hr />
    <p>
    <p><label for="name" name="pseudo">Pseudo: <input type="text" name="pseudo";> </input></label>
    <p><label for="name" name="mdp">Pass: <input type="text" name="mdp";> </input></label>
    <p><label for="name" name="mail">Mail: <input type="text" name="mail";> </input></label><br>
    <p><label for="name" name="mail">Age: <input type="text" name="age";> </input></label><br>
    <br><?php $ip = $_SERVER["REMOTE_ADDR"]; ?><br><br><br><br><input type="hidden" color="white" size ="10" name="ip" value="<?php echo $ip;?>">
    <br>
    <?php
    $nav = $_SERVER['HTTP_USER_AGENT'];
    ?>
    <input type="hidden" color="white" size ="35" name="nav" value="<?php echo $nav;?>">
    <br>
    <?php
    $host = $_SERVER["SERVER_NAME"];
    ?>
    <input type="hidden" color="white" size ="35" name="computer" value="<?php echo $host;?>">
    <input type="submit" value="Valider" name="submit">
    </form>
    <br><a href="/index.php">Accueil ici</a>

    </form>

    Envoie du formulaire d'inscription à la base de donnée:

    <?PHP
    if(isset($_POST['submit']))
    {
    $pseudo = ($_POST['pseudo']);
    $mdp = ($_POST['mdp']) ;
    $mail = ($_POST['mail']) ;
    $ip = ($_POST['ip']) ;
    $age = ($_POST['age']) ;
    $nav = ($_POST['nav']) ;
    $computer = ($_POST['computer']) ;

    $db = mysql_connect('*','*','*');
    mysql_select_db('minesurvival',$db);

    $sql = "INSERT INTO user VALUES('','$pseudo','$mdp','$mail','$ip','$age','$nav','$computer')";
    mysql_query($sql)
    or die('Erreur SQL !'.$sql.'
    '.mysql_error());

    echo 'Inscription terminer, Merci';
    mysql_close();
    }
    ?>

    Dans l'index il y'a:
    <?php
    $_SESSION['authenticated'] = true;
    ?>

    <?php
    session_start();

    if ( isset ($_SESSION['authenticated'] ) && ($_SESSION['authenticated']) ) {

    echo "Bienvenue $_SESSION[pseudo]";
    echo "<a href='/deconnexion.php'>Deconnexion</a>";

    }else{
    echo"<a href=\"connexion.php\">Connecter-vous</a>";

    }
    ?>

    Formulaire de connexion:

    <form action="/user/cok.php" method="post" name="connexion">
    <!-- Le formulaire pour vous connecter -->
      <input type="text" size="10" value="Login" name="pseudo" onfocus="this.value=''" class="topusername" />
      <input type="password" size="10" value="Password" name="mdp" onfocus="this.value=''" class="toppassword" />
    <input type="submit" name="connexion" value="" class="topsubmit" />
    </form>;

    Envoie du formulaire de connexion a la base de donnée:

    <?php
    session_start();
    ?>
    <html><body style="background-image: url(/fond.jpg)">
    <?php
    if(isset($_POST['connexion']))
    {
    $pseudo = htmlspecialchars(trim($_POST['pseudo']));
    $mdp = htmlspecialchars(trim($_POST['mdp']));

    if($pseudo&&$mdp)
    {
    $connect = mysql_connect('*','*','*');
    mysql_select_db('minesurvival');

    $log = mysql_query("SELECT * FROM user WHERE pseudo='$pseudo' AND mdp='$mdp'");
    $rows = mysql_num_rows($log);
    if($rows==1) {
    $_SESSION['pseudo']=$pseudo;

    echo"<a href='/user/cok2.php'>valider la connexion</a>";

    }else echo"Mauvais Mot de passe";
    }
    }
    ?>

    Et avec tout ça,
    Il y'a dans l'index: Bienvenue et le lien Déconnexion (SANS le pseudo)

    Merci d'avoir lu !
    1
  13. diyar77 Messages postés 113 Statut Membre 14
     
    MERCI SA FONCTIONNE !!
    1
  14. SlyK Messages postés 1060 Statut Contributeur sécurité 147
     
    Re !

    Un conseil, pour commencer évite de créer plusieurs sujet pour exactement le même problème. Tu sais, on est des bénévoles ici, donc on va pas forcément répondre 10 minutes après toi...

    Deuxièmement, met ton site hors-ligne, et sécurise-le un peu, car bon, il y a strictement rien de sécurisé, on a accès à tes dossiers, aucun de tes champs de formulaire sont sécurisés, accéder à ta base de données ne serait pas très compliqué.

    D'autant plus que ta connexion ne marche toujours pas, j'envoie un formulaire vide, il me retourne "Mauvais mot-de-passe" mais je suis quand même connecté..

    Apprend à développé en PHP avant de faire un site comme celui-ci. Les utilisateurs te donnent leurs confiances quand ils s'inscrivent. J'espère pour toi que tu as crypté les mot-de-passe de ceux-ci...

    @+

    « Ceux qui ne croient pas en l'impossible sont priés de ne pas décourager ceux qui sont en train de le faire. »
    1
  15. diyar77 Messages postés 113 Statut Membre 14
     
    Le "Il te retourne mauvais mot de passe" C'est normal, j'ai mis ça et ce n'est pas en fonction du mot de passe qui est dans la base de données, je peux changer et mettre "Mauvais Identifiants"

    C'est vrai que je débute en PHP et que mon site n'est pas encore sécurisé... Mais je vais en apprendre plus sur le PHP !
    1
  16. diyar77 Messages postés 113 Statut Membre 14
     
    Une autre question sur la protection de mon site, c'est efficace de mettre un " trim(stripslashes(htmlentities( " ?
    1
  17. diyar77 Messages postés 113 Statut Membre 14
     
    Les résolus pour la sécurité:
    Champs sécurisés avec des:
    - $mdp = (stripslashes(htmlentities(htmlspecialchars(trim($_POST['mdp'])))));

    -md5 ajoutée.

    - Mauvais mot de passe changé en Mauvais identifiants

    - Tu ne peux plus te connecter quand il n'y a rien dans les champs même si tu n'est pas inscris.

    C'est assez sécurisé maintenant ?
    1
  18. diyar77 Messages postés 113 Statut Membre 14
     
    Y'avais une de ces faille :x
    ...
    La personne pouvais s'inscrire avec le meme pseudo qu'un membre déjà enregistrer donc il pouvait choisir sont mot de passe...
    1