Login -> comment effacer le formulaire après validation?

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 : Login -> comment effacer le formulaire après validation?

merci de ces précisions

par coxine » 08 mars 2006, 20:39

dites une autre question....pas vraiment résolu mon post :(
Ce que j'ai fait, sur la base de différents cours....fonctionne, mais ne va pas vérifier si le pseudo est dans la base membres.
Ouille ça se complique mon truc :shock:
Je dois faire une requete à quel moment ?
Avant d'ouvrir la session ?
Après l'ouverture de la session?
Je crois que j'ai fait fausse route sur l'init des variables.
Excusez mes questions, mais je découvre le PHP !

par Ryle » 08 mars 2006, 19:38

Il n'y a pas vraiment de mieux à mon avis, chacun apporte quelque chose que l'autre n'a pas :
Les cookies te permettent de stocker une information persistante sur la machine de l'utilisateur (et donc de pouvoir la récuperer à la prochaine visite) la session n'est valable que pour une visite. Le cookie est donc peut être plus interessant de ce point de vue là.

En revanche, le cookie étant sur l'ordinateur du visiteur, il est consultable/modifiable par l'utilisateur. Il vaut donc mieux utiliser les sessions pour protéger des données sensibles. (genre une variable isAdmin, s'il suffit de mettre 1 ou 0 dans le cookie, c'est un peu moyen ;))

et effectivement, tu peux utiliser le session_destroy, ou simplement vider $_SESSION pour déconnecter quelqu'un :)

youpi

par coxine » 08 mars 2006, 18:34

:D c'est nickel !
Merci pour l'erreur de la balise.
Cool, j'ai appris qqch cet aprem.
Je voulais un avis : il est préférable d'utiliser les sessions (je sais que la question est souvent demandée) ou bien utiliser un cookie ? cf. le tuto sur les cookies ?
Pour se déconnecter....est-ce qu'on peut utiliser un lien avec "session_destroy();" ? par exemple ?

Bon, me reste plus qu'à essayer de ressortir autre chose que "bonjour trucmuche"...
Je vais plancher, j'aurais peut-être besoin d'aide à nouveau !
:)

Reedit par moi même :

Code : Tout sélectionner

<?php // tester la présence de la variable 'login' dans la session if ( isset( $_SESSION['login'] ) ) { echo 'Bonjour ' ; // lecture de la variable de session login echo $_SESSION['login'] ; echo '<br />'; echo '<a href="deconnect.php">Déconnexion</a>'; } else { ?>
et dans le fichier deconnect

Code : Tout sélectionner

<?php session_start(); session_destroy(); header('location:index.php'); ?>
:wink:

par charabia » 08 mars 2006, 17:42

Au lieu d'intégrer tout le pavé HTML dans du php, met juste la fin de boucle en dehors :
<?php 
// tester la présence de la variable "login" dans la session 
if ( isset( $_SESSION['login'] ) ) { 
  echo 'Bonjour ' ; 
  // on écrit le message de bienvenue 
  echo $_SESSION['login'] ; 
} else {
?> 
<form action="index.php" method="post" name="form" id="form" onsubmit="showsubmit(this)"> 
   <div class="hidden" id="login"> 
     <div align="right">identifiant</div><input name="login" type="text" class="form" id="login" size="15"> 
     <div align="right">mot de passe</div><input name="password" type="password" class="form" id="pass2" value="" size="15> 
     <div align="right"><a href="#" onclick="javascript:showsubmit(document.form);">me connecter</a></div> 
   </div> 
</form> 
    <div align="right"><a href="inscription.php"><strong>M'inscrire >> </strong></a></div>
<?php
}
?>
Tu avais fait une erreur sur la fermeture du </form>.

merci !

par coxine » 08 mars 2006, 17:37

Je viens d'y penser ! :lol: il suffit parfois de poster pour se rendre compte du "truc" !
Alors, donc il faut que je construise la condition comme cela ?
<?php 
// tester la présence de la variable "login" dans la session 
if ( isset( $_SESSION['login'] ) ) { 
  echo 'Bonjour ' ; 
  // on écrit le message de bienvenue 
  echo $_SESSION['login'] ; 
} else { 
  echo ('<form action="index.php" method="post" name="form" id="form" onsubmit="showsubmit(this)"> 
   <div class="hidden" id="login"> 
     <div align="right">identifiant</div><input name="login" type="text" class="form" id="login" size="15"> 
     <div align="right">mot de passe</div><input name="password" type="password" class="form" id="pass2" value="" size="15> 
     <div align="right"><a href="#" onclick="javascript:showsubmit(document.form);">me connecter</a></div> 
   </div> 
<form> 
    <div align="right"><a href="inscription.php"><strong>M\'inscrire >> </strong></a></div>') ; 
} 
?> 
Heu, une autre question.....ça ne marche pas... :(
Là, pour le coup, plus rien n'apparait :shock: je dois avoir fait une erreur qqpart dans le "echo"? :?:

par iclo » 08 mars 2006, 17:26

Il suffit de mettre le code du formulaire dans le else du if.
Si les variables de sessions sont définies on les affiches, sinon on affiche le formulaire.

Login -> comment effacer le formulaire après validation?

par coxine » 08 mars 2006, 17:18

Bonjour,
Un peu difficile de l'expliquer dans mon titre.
Voilà, j'essaye de développer un espace membres.
Je souhaiterais, une fois le membre identifié, faire disparaitre la boite "connexion" et le lien "inscription" pour faire apparaître les variables de session.
Tout fonctionne bien à priori, mais je n'arrive pas à trouver la solution.
Le formulaire renvoie sur la même page : index.php, faut-il créer une page "verif.php" par exemple, qui récupère les valeurs et les transmet ensuite à ma page "index.php" par un redir ??
Je débute, donc je ne sais pas si je suis claire et y a pas bcp de tutos "approfondis" pour espaces membres

Voici mon code
<?php require_once('includes/xxx.php'); ?>
<?
// initialisation
session_start() ;
if (isset($_POST['login'])) // on verifie que la variable existe
{
$login = $_POST['login']; //on recupere les données du formulaire
$_SESSION['login'] = $login;
}
?>

.../...

[b]Affichage des données récupérées : [/b]

<?php
// tester la présence de la variable "login" dans la session
if ( isset( $_SESSION['login'] ) ) {
  echo 'Bonjour ' ;
  // on écrit le message de bienvenue
  echo $_SESSION['login'] ;
} else {
  echo '' ;
} 
?>

[b]Le formulaire[/b]

<form action="index.php" method="post" name="form" id="form" onsubmit="showsubmit(this)">
   <div class="hidden" id="login">
     <div align="right">identifiant</div><input name="login" type="text" class="form" id="login" size="15">
     <div align="right">mot de passe</div><input name="password" type="password" class="form" id="pass2" value="" size="15>
     <div align="right"><a href="#" onclick="javascript:showsubmit(document.form);">me connecter</a></div>
   </div>
<form>
    <div align="right"><a href="inscription.php"><strong>M'inscrire >> </strong></a></div>
Merki ! :)