Variables de session

  • Auteur de la discussion Auteur de la discussion sim100
  • Date de début Date de début
WRInaute passionné
Bonjour

J'ai un fichier index.php avec un formulaire
login qui renvoie la variable username
et password qui renvoie la variable password

Donc après j'arrive dans mon fichier admin
où je j'ouvre une session pour y stocker le $username et $password

Code:
session_start();
session_register("username1");
session_register("password1");

Bref après j'ai un problème pour me connecter et me déconnecter!
Est-ce parceque j'utilise 2 fichier index et admin! Ne faudrait-il pas que j'en ai qu'un?

Quelqu'un a t-il un exemple?

Merci beaucoup
 
WRInaute accro
>> Bref après j'ai un problème pour me connecter et me déconnecter!


"un probleme" n est pas assez explicite pour t aider. il va falloir nous donner ton probleme (les variables sont bien en session ? elles disparaiisent ? etc...)
 
WRInaute passionné
pour vérifier tout sa, quand tu code, pense a mettre régulièrement des echo, moi c'est j'en met partout pour vérifier, et sa revele parfois bien des choses!
 
WRInaute impliqué
oui, moi j'utilise ca :

<?php if (DEBUG_MODE):?>
<pre style="margin-top: 1ex; padding: 1ex; border: 1px solid red;text-align: left;">
DEBUG INFOS :
<?php var_dump(get_defined_vars());?>
</pre>
<?php endif;?>

en bas de mes pages, quand tu debug tu defini la constante DEBUG_MODE a TRUE, et ca t'affiche toutes les variables definies dans ta page, ca aide aussi !
 
WRInaute passionné
En fait

En fait ça ne marche âs du tout avec mon hébergeur SIVIT.

Quand au serveur local
je peux me logger c'est bon.
Mais quand me click sur deconnecter je retourne sur la page accueil et impossible de me reconnecter. ou de temps en temps ça marche. Comme si la session ne se fermait pas ou mal!

Si quelqu'un a un exemple de code qui marche bien!

En attendant je vais essayer de débugguer l'affaire

Merci bien
 
WRInaute accro
lorsque tu crée ou détruit une session, fais tu un header("location: tapage.ext") ou reste tu sur le page ou tu crée/ détruit la session ?
 
WRInaute impliqué
deja je te deconseille d'utiliser session_register() (cf doc php)

je te conseille de faire toutes tes manipulations de session avec $_SESSION['variable']

et pour virer une variable de la session :

unset($_SESSION['variable']);
 
WRInaute passionné
oui

Je reste sur mes pages

En fait dois-je créer la session sur mes deux pages index et admin
ou juste sur admin?

je pense que j'ai un gros problème de structure

Merci
 
WRInaute accro
session_start() doit ete present sur toutes tes pages sécurisés (compte client ou administration)

lorsque tu crée ou detruit ta session, fais une redirection par header() pour etre sur, et pour ce qui est de session_register(), tu es resté au php3 :-) comme dit fbparis, c est $_SESSION['variable'] qu'il faut utiliser maintenant :-)
 
WRInaute passionné
merci

ca veut dire que
session_register() est pareil que $_SESSION['variable'] ?



fais une redirection par header()
Comment ça :oops:

C'est quoi la commande?

Merci
 
WRInaute accro
exemple vite fait :

session_start();
$_SESSION['client']=$_POST['login'];
header("location: index.php?message=identification_reussi");

avec dans ta page index

if ($_GET[message]=='identification_reussi' echo "Bonjour ".$_SESSION['login'].", vous êtes maintenant identifié";

c est plus comprehensible ?

ps : ce post ne sert que d exemple pour voir les différentes commandes, là j identifie n importe qui sans contrôle :-)
 
WRInaute passionné
je craque

En fait voila mon code
Dans le fichier index ou j'ai le formulaire de login:

Code:
session_start();

<form name="form2" method="post" action="admin.php?menu=welcome">
                    <table width="100%" border="0" cellspacing="2" cellpadding="0" class="text10">
                      <tr> 
                        <td align="right"><? echo USERNAME; ?></td>
                        <td align="left"><input type="text" name="username1"></td>
                      </tr>
                      <tr> 
                        <td align="right"><? echo PASSWORD; ?></td>
                        <td align="left"><input type="text" name="password1"></td>
                      </tr>
                      <tr> 
                        <td align="center">&nbsp;</td>
                        <td align="left"><input type="submit" name="adminaccess" value="<? echo CONNECTION; ?>"></td>
                      </tr>
                    </table>
                  </form>

Voila les variables passées sont username1 et password1

Donc quand le gars à rentré son login et mot de passe, ça va dans le fichier admin.php qui contient en gros

Code:
session_start();
session_register(username1);
session_register(password1);

include ('_connexion.php'); //pour accès à la base de donnée

if ( ($_SESSION["username1"]!="") and ($_SESSION["password1"]!="") )
	{
	$query="SELECT * FROM admin WHERE blogname='" . $_SESSION["username1"] . "'";
	$res_connection=@mysql_query($query,$db);
	if (@mysql_num_rows($res_connection)!=0)
		{
		$list_connection=mysql_fetch_row($res_connection);
		if ( ($list_connection[2]==$_SESSION["password1"]) )
			{
etc....

Voila tout simple quoi mais ça marche sans les variables de session, mais quand je les mets ça ne marche pas!

Si quelqu'un a une idée :cry:

Je craque

Merci en tout cas
 
WRInaute accro
bingo, tu met ta variable en session avec session_register() et t essaye d y acceder sans changer de page. tu écoutes ce que je dis ? :-)
 
WRInaute passionné
Ouaiiiiii

c'est bon j'ai réussi

en fait c'est ça qui me manquait

echo $_SESSION["username1"] = $username1;
echo $_SESSION["password1"] = $password1;


ca marche pas avec
session_register()

C'etait tout simple en fait :D

MERCI à tous pour votre aide.

10 heures de boulot juste pour ça :roll:
Mais maintenant mon script de création de blog est nickel :P
 
WRInaute occasionnel
Voici le fichier appelé par ton submit qui crée une session et qui vérifie ton accès. Ensuite tous les fichiers du dossier que tu veux protéger le seront à condition de vérifier si la var accès_ok existe:

Code:
<?php
session_start(); // démarrage de la session                                                                                                  
$login = $_POST['request_login'];
$password = $_POST['request_password'];
$host = "localhost";
$user = "toto";
$pass = "my_pass";

// on vérifie si on est passé par le formulaire

if (isset($login) && isset($password))                                                 
   {
      // connexion à la base sql
      mysql_connect($host,$user,$pass);                                                       
      // On vérifie si "access" est égal à "ok" dans la base
      // on regarde à l'endroit des login et password
      $req = mysql_db_query("ma_base", "select access from ma_tableacces where login = '$login' and password = '$password'"); 
      // si le login et le password ne sont pas trouvés, on arrète le script
      $result = mysql_fetch_object($req) or die("Login ou password incorrect !");           
      // on met l'access dans une variable $access
      $access = $result->access;
      // On vérifie la valeur de la variable $access
      if ($access != "ok")                                                               
      {
         echo "Compte désactivé !";
         // On arrète le script
         exit();                                                                           
   }
   else
   {
      // si on a passé toutes les étapes, on enregistre la variable session "entry_ok"
      session_register("entry_ok");
   }
// on ferme la connexion mysql
mysql_close();                                                               
}

ensuite chaque page appelée protégée par la session doit commencer par ce code:

Code:
<?php
session_start();
if (!session_is_registered("access_ok"))                        // si la variable n'est pas enregistrée...
{
   echo"Session expirée ou invalide !";
    // ici tu rediriges où tu veux 
   exit();
}
// sinon l'accès est ok et tu poursuis ton code ici ->
bla bla bla (ta page)
?>
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut