Cacher le formulaire de connexion si l'utilisateur est connecté
Résolu
diyar77
Messages postés
94
Date d'inscription
Statut
Membre
Dernière intervention
-
diyar77 Messages postés 94 Date d'inscription Statut Membre Dernière intervention -
diyar77 Messages postés 94 Date d'inscription Statut Membre Dernière intervention -
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
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:
- Cacher le formulaire de connexion si l'utilisateur est connecté
- Whatsapp formulaire opposition - Guide
- Gmail connexion - Guide
- Formulaire de réclamation facebook - Guide
- Chromecast connexion - Guide
- Comment savoir si quelqu'un utilise ma connexion internet - Guide
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
$_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
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à !
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à !
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Met le formulaire dans le else.
SI il est connecté => Bienvenue.
SINON (else) => Formulaire de connexion.
SI il est connecté => Bienvenue.
SINON (else) => Formulaire de connexion.
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting ',' or ';' in /public_html/index.php on line 95
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 ?
<?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 ?
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/>";
}
?>
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/>";
}
?>
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 !
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 !
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. »
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. »
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 !
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 !
Une autre question sur la protection de mon site, c'est efficace de mettre un " trim(stripslashes(htmlentities( " ?
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 ?
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 ?