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

Résolu/Fermé
diyar77 Messages postés 94 Date d'inscription mercredi 21 décembre 2011 Statut Membre Dernière intervention 28 décembre 2013 - 14 juil. 2013 à 19:16
diyar77 Messages postés 94 Date d'inscription mercredi 21 décembre 2011 Statut Membre Dernière intervention 28 décembre 2013 - 14 juil. 2013 à 22:40
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
A voir également:

18 réponses

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
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
diyar77 Messages postés 94 Date d'inscription mercredi 21 décembre 2011 Statut Membre Dernière intervention 28 décembre 2013 14
14 juil. 2013 à 19:40
Bjr,

sa ne fonctionne toujours pas :/
1
diyar77 Messages postés 94 Date d'inscription mercredi 21 décembre 2011 Statut Membre Dernière intervention 28 décembre 2013 14
Modifié par diyar77 le 14/07/2013 à 20:09
UP
1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
diyar77 Messages postés 94 Date d'inscription mercredi 21 décembre 2011 Statut Membre Dernière intervention 28 décembre 2013 14
14 juil. 2013 à 20:10
Toujours personne :/
1
adrienmarty Messages postés 67 Date d'inscription mercredi 29 avril 2009 Statut Membre Dernière intervention 25 octobre 2013 3
14 juil. 2013 à 20:11
Met le formulaire dans le else.

SI il est connecté => Bienvenue.

SINON (else) => Formulaire de connexion.
1
diyar77 Messages postés 94 Date d'inscription mercredi 21 décembre 2011 Statut Membre Dernière intervention 28 décembre 2013 14
14 juil. 2013 à 20:13
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting ',' or ';' in /public_html/index.php on line 95
1
diyar77 Messages postés 94 Date d'inscription mercredi 21 décembre 2011 Statut Membre Dernière intervention 28 décembre 2013 14
14 juil. 2013 à 20:15
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
diyar77 Messages postés 94 Date d'inscription mercredi 21 décembre 2011 Statut Membre Dernière intervention 28 décembre 2013 14
14 juil. 2013 à 20:19
UP
1
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
diyar77 Messages postés 94 Date d'inscription mercredi 21 décembre 2011 Statut Membre Dernière intervention 28 décembre 2013 14
14 juil. 2013 à 20:26
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
diyar77 Messages postés 94 Date d'inscription mercredi 21 décembre 2011 Statut Membre Dernière intervention 28 décembre 2013 14
14 juil. 2013 à 20:29
Voici le lien du site si vous voulez: http://cluster1.easy-hebergement.net/
1
diyar77 Messages postés 94 Date d'inscription mercredi 21 décembre 2011 Statut Membre Dernière intervention 28 décembre 2013 14
14 juil. 2013 à 20:41
MERCI SA FONCTIONNE !!
1
SlyK Messages postés 854 Date d'inscription vendredi 11 mars 2011 Statut Contributeur sécurité Dernière intervention 6 octobre 2014 147
Modifié par SlyK le 14/07/2013 à 20:49
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
diyar77 Messages postés 94 Date d'inscription mercredi 21 décembre 2011 Statut Membre Dernière intervention 28 décembre 2013 14
14 juil. 2013 à 20:56
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
diyar77 Messages postés 94 Date d'inscription mercredi 21 décembre 2011 Statut Membre Dernière intervention 28 décembre 2013 14
14 juil. 2013 à 21:12
Une autre question sur la protection de mon site, c'est efficace de mettre un " trim(stripslashes(htmlentities( " ?
1
diyar77 Messages postés 94 Date d'inscription mercredi 21 décembre 2011 Statut Membre Dernière intervention 28 décembre 2013 14
14 juil. 2013 à 22:19
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
diyar77 Messages postés 94 Date d'inscription mercredi 21 décembre 2011 Statut Membre Dernière intervention 28 décembre 2013 14
14 juil. 2013 à 22:40
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