Précédent   Forum des professionnels en informatique > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/12/2010, 11h02   #1
Candidat au titre de Membre du Club
 
Inscription : décembre 2010
Messages : 51
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 51
Points : 13
Points : 13
Envoyer un message via Skype™ à Chedi
Par défaut les pages utilisant la session

re salut

j'ai des petits soucis au niveau des sessions, voilà ce que je sais en tout :

par exemple sur le code de la page login.php je doit mettre les variable login et mot de passe dans une $session
puis sur les autres pages que j'ai je dois mettre
Code php :
<?php session start () ?>

est ce que c'est tout ce que je dois faire?

merci
Chedi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2010, 11h07   #2
Membre éprouvé
 
Avatar de radicaldreamer
 
Homme Guillaume
Développeur Web
Inscription : décembre 2007
Messages : 353
Détails du profil
Informations personnelles :
Nom : Homme Guillaume
Âge : 21
Localisation : France, Haut Rhin (Alsace)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : décembre 2007
Messages : 353
Points : 473
Points : 473
Théoriquement, oui. C'est tout ce que tu dois faire.

Au tout début de tes pages utilisant les sessions (login.php) (moncompte.php par exemple etc...)

Mais petite remarque, tu ne devrais pas stocker le mot de passe en session, ça n'apporte rien. Si l'utilisateur s'est authentifié, tu peux juste mettre son identifiant (ex: 386) et son pseudo ^^

Cordialement, guillaume.
__________________
Si ce que tu as à dire n'est pas plus beau que le silence, alors tais toi.

- Pensez à voter pour les messages qui vous ont été utiles ainsi que de mettre
radicaldreamer est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 20/12/2010, 11h08   #3
Membre Expert
 
Avatar de Madfrix
 
Inscription : juin 2007
Messages : 2 278
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : juin 2007
Messages : 2 278
Points : 2 324
Points : 2 324
A chaque page ou sont utilisées les sessions, tu dois mettre

en première instruction
Madfrix est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 20/12/2010, 11h12   #4
Candidat au titre de Membre du Club
 
Inscription : décembre 2010
Messages : 51
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 51
Points : 13
Points : 13
Envoyer un message via Skype™ à Chedi
Citation:
Envoyé par radicaldreamer Voir le message
Théoriquement, oui. C'est tout ce que tu dois faire.

Au tout début de tes pages utilisant les sessions (login.php) (moncompte.php par exemple etc...)

Mais petite remarque, tu ne devrais pas stocker le mot de passe en session, ça n'apporte rien. Si l'utilisateur s'est authentifié, tu peux juste mettre son identifiant (ex: 386) et son pseudo ^^

Cordialement, guillaume.
merci pour ta rép
donc si j'ai bien compris de met juste $login= $session['login'] ?
Chedi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2010, 11h16   #5
Membre éprouvé
 
Avatar de radicaldreamer
 
Homme Guillaume
Développeur Web
Inscription : décembre 2007
Messages : 353
Détails du profil
Informations personnelles :
Nom : Homme Guillaume
Âge : 21
Localisation : France, Haut Rhin (Alsace)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : décembre 2007
Messages : 353
Points : 473
Points : 473
Code php :
1
2
 
$login= $session['login'];

Tu as bien compris par contre, c'est mal écrit ^^

Code php :
1
2
3
 
$_SESSION['login'] = $login; //pour stocker dans la session
$login = $_SESSION['login']; //pour récupérer depuis la session

Cordialement, Guillaume.
__________________
Si ce que tu as à dire n'est pas plus beau que le silence, alors tais toi.

- Pensez à voter pour les messages qui vous ont été utiles ainsi que de mettre
radicaldreamer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2010, 11h19   #6
Candidat au titre de Membre du Club
 
Inscription : décembre 2010
Messages : 51
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 51
Points : 13
Points : 13
Envoyer un message via Skype™ à Chedi
merci je vais essayer de tester et si j'aurais des erreurs alors je reviens ^^
Chedi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2010, 12h20   #7
Candidat au titre de Membre du Club
 
Inscription : décembre 2010
Messages : 51
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 51
Points : 13
Points : 13
Envoyer un message via Skype™ à Chedi
voilà j'ai essayé et je trouve un ptit soucis c'est que lorsque je connecte il m'envoie toujours à la page login.php et pas acceuil.php

je met le code

login.php
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
 
<body>
<form id="form1" name="form1" method="post" action="verif.php">
  <table width="234" border="1">
    <tr>
      <td width="64">login</td>
      <td width="154"><label for="textfield"></label>
      <input type="text" name="textfield" id="textfield" /></td>
    </tr>
    <tr>
      <td>mot de passe</td>
      <td><label for="textfield2"></label>
      <input type="password" name="textfield2" id="textfield2" /></td>
    </tr>
  </table>
  <p>
    <input type="submit" name="button" id="button" value="envoyer" />
    <input type="reset" name="button2" id="button2" value="Reset" />
  </p>
</form>
</body>
</html>
verif.php
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 
<?php
include ("connexion.php");
 
connexion();
 
 
if ((isset($_SESSION['login'])) && (!empty($_SESSION['login'])))
	{
 
 
session_start ();
 
$_SESSION['login'] = $_POST['login'];
$_SESSION['mdp'] = $_POST['mdp'];
 
 
 
header ('location: acceuil.php');
}
else
{
	header ('location: login.php');
}
 
 
 
 
?>
et bien sur la page connexion.php

Code :
1
2
3
4
5
6
7
 
<?php
function connexion()
{
mysql_connect('localhost','root','') or die('serveur non disponible');
mysql_select_db('session') or die('case non accessible');
}
la page acceuil.php contient juste <?php session_start() ?>
Chedi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2010, 12h24   #8
Membre éprouvé
 
Avatar de radicaldreamer
 
Homme Guillaume
Développeur Web
Inscription : décembre 2007
Messages : 353
Détails du profil
Informations personnelles :
Nom : Homme Guillaume
Âge : 21
Localisation : France, Haut Rhin (Alsace)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : décembre 2007
Messages : 353
Points : 473
Points : 473
Code :
1
2
3
4
5
6
7
8
9
10
11
12
<?php
  session_start ();
  include ("connexion.php");
  connexion();
  if ((isset($_SESSION['login'])) && (!empty($_SESSION['login']))){
    $_SESSION['login'] = $_POST['login'];
    $_SESSION['mdp'] = $_POST['mdp'];
    header ('location: acceuil.php');
  }else{
    header ('location: login.php');
  }
?>
Tu dois mettre le session_start() avant de faire des tests sur les sessions
__________________
Si ce que tu as à dire n'est pas plus beau que le silence, alors tais toi.

- Pensez à voter pour les messages qui vous ont été utiles ainsi que de mettre
radicaldreamer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2010, 12h26   #9
Candidat au titre de Membre du Club
 
Inscription : décembre 2010
Messages : 51
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 51
Points : 13
Points : 13
Envoyer un message via Skype™ à Chedi
ah oui je l'ai mis au milieu de la page

j'ai essayer de la mettre en haut et c'est toujours pareil
Chedi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2010, 12h35   #10
Membre éprouvé
 
Avatar de radicaldreamer
 
Homme Guillaume
Développeur Web
Inscription : décembre 2007
Messages : 353
Détails du profil
Informations personnelles :
Nom : Homme Guillaume
Âge : 21
Localisation : France, Haut Rhin (Alsace)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : décembre 2007
Messages : 353
Points : 473
Points : 473
Code :
1
2
3
4
5
6
7
8
9
10
11
<?php
  session_start ();
  include ("connexion.php");
  connexion();
  if ((isset($_POST['textfield'])) && (!empty($_POST['textfield']))){
    $_SESSION['login'] = $_POST['textfield'];
    header ('location: acceuil.php');
  }else{
    header ('location: login.php');
  }
?>
__________________
Si ce que tu as à dire n'est pas plus beau que le silence, alors tais toi.

- Pensez à voter pour les messages qui vous ont été utiles ainsi que de mettre
radicaldreamer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2010, 12h40   #11
Candidat au titre de Membre du Club
 
Inscription : décembre 2010
Messages : 51
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 51
Points : 13
Points : 13
Envoyer un message via Skype™ à Chedi
Citation:
Envoyé par radicaldreamer Voir le message
Code :
1
2
3
4
5
6
7
8
9
10
11
<?php
  session_start ();
  include ("connexion.php");
  connexion();
  if ((isset($_POST['textfield'])) && (!empty($_POST['textfield']))){
    $_SESSION['login'] = $_POST['textfield'];
    header ('location: acceuil.php');
  }else{
    header ('location: login.php');
  }
?>
Une autre connerie de ma part voilà j'ai renomé les textfield dans le form du connexion comme login et mdp
toujours le même soucis Help pleese
Chedi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2010, 15h35   #12
Candidat au titre de Membre du Club
 
Inscription : décembre 2010
Messages : 51
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 51
Points : 13
Points : 13
Envoyer un message via Skype™ à Chedi
probléme resolu mais pas avec ce script

j'ai fais une recherche et j'ai trouvé ce code là

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
 
<?php
session_start();
include ("connexion.php");
 
connexion();
 
$loginOK = false;  // cf Astuce
 
// On n'effectue les traitement qu'à la condition que
// les informations aient été effectivement postées
if ( isset($_POST) && (!empty($_POST['login'])) && (!empty($_POST['mdp'])) ) {
 
  extract($_POST);  // je vous renvoie à la doc de cette fonction
 
  // On va chercher le mot de passe afférent à ce login
  $sql = "SELECT login,mdp FROM user WHERE login = '".addslashes($login)."'";
  $req = mysql_query($sql) or die('Erreur SQL : <br />'.$sql);
 
  // On vérifie que l'utilisateur existe bien
  if (mysql_num_rows($req) > 0) {
     $data = mysql_fetch_assoc($req);
 
    // On vérifie que son mot de passe est correct
    if ($mdp == $data['mdp']) {
      $loginOK = true;
    }
  }
}
 
// Si le login a été validé on met les données en sessions
if ($loginOK) {
  $_SESSION['login'] = $data['login'];
  $_SESSION['mdp'] = $data['mdp'];
  header ('location: acceuil.php');
}
else {
  header ('location: login.php');
}
?>
un autre problème : lorsque je tape http://127.0.0.1/session/acceuil.php le navigateur ne me dirige pas vers login.php mais il accède à cette page directement tandis que j'ai fais un déconnexion.
Chedi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2010, 21h48   #13
Modérateur
 
Avatar de Vil'Coyote
 
Développeur Web
Inscription : février 2008
Messages : 3 302
Détails du profil
Informations personnelles :
Âge : 31
Localisation : France, Marne (Champagne Ardenne)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : février 2008
Messages : 3 302
Points : 4 480
Points : 4 480
ba si tu affiche la valeur de ta variables de session ça fait quoi? et quand tu dis déconnexion, tu fait bien un session_destroy ou un unset ?
Vil'Coyote est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2010, 10h04   #14
Candidat au titre de Membre du Club
 
Inscription : décembre 2010
Messages : 51
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 51
Points : 13
Points : 13
Envoyer un message via Skype™ à Chedi
j'utilise dans la page de deconnexion ce code là:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
// On démarre la session
session_start ();
 
// On détruit les variables de notre session
session_unset ();
 
// On détruit notre session
session_destroy ();
 
// On redirige le visiteur vers la page d'accueil
header ('location: login.php');
?>
je ne sais pas si il est correct
Chedi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2010, 11h17   #15
Futur Membre du Club
 
Inscription : août 2007
Messages : 44
Détails du profil
Informations personnelles :
Âge : 18

Informations forums :
Inscription : août 2007
Messages : 44
Points : 17
Points : 17
A quoi ressemble ta page accueil ? Comment tu teste si tu es connecté ou pas ?

Sinon, petit conseil, plutôt que d'utiliser le login, stocke un id numérique dans ta session, et utilise des identifiants numériques pour manipuler tes données stockées en base de données. Tu peux avoir des problèmes de case et de caractères spéciaux en utilisant des login, ce qui peut mener à des bugs. Les problèmes peuvent être évités, mais le moyen le plus efficace reste a mon avis d'ajouter un champ 'id' dans tes tables, et d'utiliser le login uniquement pour l'utilisateur. Tout ce qui se passe coté manipulation de données se fait avec les id.
Ça t'oblige à modifier légèrement ton fonctionnement au début, mais une fois que c'est mis en place, ça se fait tout seul et ça t'évite bien des problèmes
Seidris est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 22/12/2010, 10h56   #16
Candidat au titre de Membre du Club
 
Inscription : décembre 2010
Messages : 51
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 51
Points : 13
Points : 13
Envoyer un message via Skype™ à Chedi
merci pour l'info

la page d'acceuil elle est vide elle contient ce code là:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
session_start();
?>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
 
<body>
<p><center>vous êtes connecté </p>
<p>&nbsp;</p>
<form id="form1" name="form1" method="post" action="logout.php">
  <input type="submit" name="button" id="button" value="Se deconnecter" />
</form>
 
</body>
</html>

le probléme même si je redemare ma machine, d'où la session va se fermer automatiquement, et que je tape directement http....acceuil.php sa me dirige directement vers cette page et non vers login.php
Chedi est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h22.


 
 
 
 
Partenaires

Hébergement Web