Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources sécurité
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 19/12/2007, 18h50   #1
Membre régulier
 
Inscription : octobre 2007
Messages : 286
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 286
Points : 96
Points : 96
Par défaut Fonction start_session() affichage erreur

J'ai u probleme avec ma fonction voila mon code d'authentification :
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
<?php
session_start();
 
$connexion = mysql_pconnect("***.sql.free.fr","***","***");
mysql_select_db("***", $connexion);
$pseudo="'".mysql_escape_string($_REQUEST['pseudo'])."'"; 
$mdp=mysql_escape_string($_REQUEST['mdp']); 
 
$resultat=mysql_query("SELECT * FROM formulaire WHERE login=$pseudo",$connexion);
 
 
if ($resultat) {
  $users=mysql_fetch_array($resultat);
  if ($users["pwd"] == $mdp)
    {
    $_SESSION["valid_user"]==1;
    header('Location: index1.php');
    }
  else {
  header('Location: authentification.html');
  }
}
else {
  header('Location: authentification.html');
}
?>
Voila ma page de connexion :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
 
<head>
    <title>Connexion au site</title>
    <link href="connexion.css" rel="stylesheet">
    <meta http-equiv="content-type" content="text/html;charset=utf-8" />
</head>
<body>
<div id="corps">
<div class="titre"><p>Entrez votre login et votre mot de passe : </p></div>
<form action="authentification.php" method="post" enctype="multipart/form-data">
<div><label>Login : </label><input type="text" name="pseudo" maxlength="20"/></div>
<div><label>Mot de passe : </label><input type="password" name="mdp"  /></div><br />
<p><a href="formulaire-inscription.html">S'inscrire</a></p>
<div><input type="submit" value="Entrer" /><input type="reset" value="Réinitialiser" /></div>
</form>
</div>
<div id="pied">
<p>Nous sommes le <?php echo date("d/m/Y"); ?>
</body>
</html>
Et voila mon index1 :
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
<?php
session_start();
if($_SESSION["valid_user"]==1){
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
 
<head>
  <title>Le rugby</title>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <link title="Le rugby" href="index1.css" rel="stylesheet" type="text/css" />
</head> 
<body>
<form enctype="multipart/form-data" action="recherche.php" method="post">    
  <div id="en_tete"></div>
  <div id="menu">
    <div class="sous_menu">
      <h3>La coupe du monde</h3>
      <ul>
        <li><a href="Les poules.php">Les poules</a></li>
        <li><a href="Les tableaux finaux.php">Les tableaux finaux</a></li>
        <li><a href="L'histoire.html">Histoire de la coupe du monde</a></li>
 
      </ul> 
    </div>
 
    <div class="sous_menu">
      <h3>Le top 14</h3>
      <ul>
        <li><a href="Top14.html">Tout sur le Top 14</a></li>
 
      </ul> 
    </div>
 
    <div class="sous_menu">
      <h3>Quelques liens utiles</h3>
     <ul>
        <li><a href="http://www.ffr.fr/index.php/ffr/accueil__1" onclick="window.open(this.href); return false;">Fédération francaise de rugby</a></li>
        <li><a href="http://fr.rugbyworldcup.com/" onclick="window.open(this.href); return false;">Site de l'IRB</a></li>
      </ul> 
    </div>
 
    </div>
  </div>
  <div id="corps">
    <h2>Bienvenue sur mon site</h2>
    <p>Bonjour! Mon nom est Kevin et je suis passionné de rugby depuis que je suis tout petit.</p>
    <p>Si vous vous interessez au rugby, vous trouverez sur mon site une foule d'informations
    utiles. Le site est organisé en trois catégories : <div class="presentation"><ol><li>La coupe du monde</li><li>
    Le top 14</li><li>Des liens utiles</li></ol></div></p>
    <p>Ce site ludique a été créé dans le cadre de mon option web.</p>
  </div>
  <div class="recherche">
  <h2 id="recherche">Recherche de joueur</h2>
  <div>
    <label for="recherche"></label> <input name="recherche" type="text" onClick= "javascript:this.value=''" value="Tapez le nom d'un joueur." />*****
    </div>
  <div>
    <input type="submit" value="Rechercher" />
  </div>
  <div class="joueur">
    <input type="radio" name="format" value="nom" id="nom" checked="checked"/> <label for="nom">Nom du joueur</label>
    <input type="radio" name="format" value="prenom" id="prenom"/> <label for="prenom">Tous les joueurs ayant ce prénom</label>
  </div>
  </div>
 
 
 
  <div id="pied_de_la_page">
    <p>Code et design par Kevin.2007. <br />
    N'hésitez pas a <a href="mailto:X@Y.Z">me contacter</a> si vous voulez discuter du rugby!</p>
  </div>
</form>
</body>
</html>
<?php }
else 
{
header ("Location: connexion.php");
}
?>
Voila le message d'erreur :
Code :
1
2
3
4
5
6
7
8
9
10
11
Warning: session_start() [function.session-start]: open(/mnt/163/sdb/1/a/kplanchon/sessions/sess_016eaebf8e940d9eac7337939a414172, O_RDWR) failed: No such file or directory (2) in /mnt/163/sdb/1/a/kplanchon/index1.php on line 2
 
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /mnt/163/sdb/1/a/kplanchon/index1.php:2) in /mnt/163/sdb/1/a/kplanchon/index1.php on line 2
 
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /mnt/163/sdb/1/a/kplanchon/index1.php:2) in /mnt/163/sdb/1/a/kplanchon/index1.php on line 2
 
Warning: Cannot modify header information - headers already sent by (output started at /mnt/163/sdb/1/a/kplanchon/index1.php:2) in /mnt/163/sdb/1/a/kplanchon/index1.php on line 80
 
Warning: Unknown(): open(/mnt/163/sdb/1/a/kplanchon/sessions/sess_016eaebf8e940d9eac7337939a414172, O_RDWR) failed: No such file or directory (2) in Unknown on line 0
 
Warning: Unknown(): Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/mnt/163/sdb/1/a/kplanchon/sessions) in Unknown on line 0
Je ne comprends pas car si je met tout ça avec l base de données de mon prof et donc son adresse cela marche...
kev484 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 18h59   #2
Rédacteur/Modérateur
 
Avatar de 12monkeys
 
Homme Dr. Peters
Webmaster
Inscription : novembre 2006
Messages : 3 628
Détails du profil
Informations personnelles :
Nom : Homme Dr. Peters
Âge : 35
Localisation : France, Bas Rhin (Alsace)

Informations professionnelles :
Activité : Webmaster
Secteur : Service public

Informations forums :
Inscription : novembre 2006
Messages : 3 628
Points : 6 232
Points : 6 232
Hello,

Citation:
Warning: session_start() [function.session-start]: open(/mnt/163/sdb/1/a/kplanchon/sessions/sess_016eaebf8e940d9eac7337939a414172, O_RDWR) failed: No such file or directory (2) in /mnt/163/sdb/1/a/kplanchon/index1.php on line 2

Warning: Unknown(): Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/mnt/163/sdb/1/a/kplanchon/sessions) in Unknown on line 0
Regarde la citation ci dessus, il ne trouve pas le répertoire sessions ou n'arrive pas à enregistrer les fichiers de session.

Est tu chez free ??? alors le problème est connu : tu dois créer un dossier sessions (avec le 'S') à la racine de ton site.

Sinon (pas chez free) regarde dans ton php.ini à quoi correspond l'élément dans le second Warning ci dessus : soit le session.save_path et si ce chemin existe...
__________________
Vous débutez dans la creation de sites web : les bases du html et débuter avec les CSS
Pas de MP pour des questions techniques ! Mode d'emploi du forum ; Règles ; Pensez à la balise code ; Pas de SMS !
Votez pour les messages qui vous ont aidés...
12monkeys est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 19h00   #3
Membre régulier
 
Inscription : octobre 2007
Messages : 286
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 286
Points : 96
Points : 96
Oui je suis chez free mais je ne comprends pas quoi faire?? A si c'est bon merci cela fonctionne...
kev484 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 19h26   #4
Membre régulier
 
Inscription : octobre 2007
Messages : 286
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 286
Points : 96
Points : 96
Il reste cependant un probleme il ne veut pas afficher ma page index apres ma connexion...
kev484 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 19h38   #5
Rédacteur/Modérateur
 
Avatar de 12monkeys
 
Homme Dr. Peters
Webmaster
Inscription : novembre 2006
Messages : 3 628
Détails du profil
Informations personnelles :
Nom : Homme Dr. Peters
Âge : 35
Localisation : France, Bas Rhin (Alsace)

Informations professionnelles :
Activité : Webmaster
Secteur : Service public

Informations forums :
Inscription : novembre 2006
Messages : 3 628
Points : 6 232
Points : 6 232
Il y a une erreur dans ta page d'authentification, tu n'attribut pas de valeur à ta variable $_SESSION["valid_user"] :

Code :
1
2
3
4
5
if ($users["pwd"] == $mdp)
    {
    $_SESSION["valid_user"]==1;
    header('Location: index1.php');
    }
il faut mettre :

Code :
    $_SESSION["valid_user"] = 1;
== signifie 'est egal à' ; = est l'opérateur d'affectation (attribue une valeur)...
__________________
Vous débutez dans la creation de sites web : les bases du html et débuter avec les CSS
Pas de MP pour des questions techniques ! Mode d'emploi du forum ; Règles ; Pensez à la balise code ; Pas de SMS !
Votez pour les messages qui vous ont aidés...
12monkeys est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 20h58   #6
Membre régulier
 
Inscription : octobre 2007
Messages : 286
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 286
Points : 96
Points : 96
Ba non justement il faut laisser == sinon lorsque je clique sur Valider sans avoir mis de login et de pwd il va qand meme sur ma page index1 or il ne peut y acceder que s'il est connecté. Donc je ne vois pas l'erreur!!
kev484 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 21h33   #7
Rédacteur/Modérateur
 
Avatar de 12monkeys
 
Homme Dr. Peters
Webmaster
Inscription : novembre 2006
Messages : 3 628
Détails du profil
Informations personnelles :
Nom : Homme Dr. Peters
Âge : 35
Localisation : France, Bas Rhin (Alsace)

Informations professionnelles :
Activité : Webmaster
Secteur : Service public

Informations forums :
Inscription : novembre 2006
Messages : 3 628
Points : 6 232
Points : 6 232
Citation:
Envoyé par kev484 Voir le message
Ba non justement il faut laisser == sinon lorsque je clique sur Valider sans avoir mis de login et de pwd il va qand meme sur ma page index1 or il ne peut y acceder que s'il est connecté. Donc je ne vois pas l'erreur!!
Je ne comprends pas !

Je te traduis ton code : "si $users["pwd"] est égal à $mdp alors $_SESSION["valid_user"] est égal à 1 et on renvoi par le header à index1.php

Ton $_SESSION["valid_user"]==1; ne sers à rien, enfin je ne vois pas à quoi.

Et alors où est ce que tu attribut la valeur 1 à ton $_SESSION["valid_user"] ? C'est ce que je pensais que tu voulais faire par le code ci dessus.

Ici vu que tu met == ton $_SESSION["valid_user"] n'a pas de valeur et dans ta page index1 le script part dans le else qui te renvoi à connexion.php.

Comprends tu ce que je veux dire ?
__________________
Vous débutez dans la creation de sites web : les bases du html et débuter avec les CSS
Pas de MP pour des questions techniques ! Mode d'emploi du forum ; Règles ; Pensez à la balise code ; Pas de SMS !
Votez pour les messages qui vous ont aidés...
12monkeys est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 21h45   #8
Membre régulier
 
Inscription : octobre 2007
Messages : 286
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 286
Points : 96
Points : 96
Oui j'ai tout compris et maintenant tout marche voila mon code final :
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
<?php
session_start();
 
$connexion = mysql_pconnect("sql.free.fr","***","***");
mysql_select_db("***", $connexion);
$pseudo="'".mysql_escape_string($_REQUEST['pseudo'])."'"; 
$mdp=mysql_escape_string($_REQUEST['mdp']); 
 
$resultat=mysql_query("SELECT * FROM formulaire WHERE login=$pseudo",$connexion); 
echo mysql_error();
if (empty($pseudo) || empty($mdp)){
  header('Location: authentification.html');
}
else{
if ($resultat) {
  $users=mysql_fetch_array($resultat);
  if ($users["pwd"] == $mdp)
    {
    $_SESSION["valid_user"]=1;
    header('Location: index1.php');
    }
  else {
  header('Location: authentification.html');
  }
}
else {
  header('Location: authentification.html');
}
}
 
?>
Merci beaucoup de l'aide.
kev484 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 21h52   #9
Rédacteur/Modérateur
 
Avatar de 12monkeys
 
Homme Dr. Peters
Webmaster
Inscription : novembre 2006
Messages : 3 628
Détails du profil
Informations personnelles :
Nom : Homme Dr. Peters
Âge : 35
Localisation : France, Bas Rhin (Alsace)

Informations professionnelles :
Activité : Webmaster
Secteur : Service public

Informations forums :
Inscription : novembre 2006
Messages : 3 628
Points : 6 232
Points : 6 232
J'y ai réfléchi (sous la douche ) et c'est ce que j'allais te proposer

Je rajouterais juste :

Code :
1
2
if (!empty($resultat)) {
...
juste pour vérifier que $resultat n'est pas vide...
__________________
Vous débutez dans la creation de sites web : les bases du html et débuter avec les CSS
Pas de MP pour des questions techniques ! Mode d'emploi du forum ; Règles ; Pensez à la balise code ; Pas de SMS !
Votez pour les messages qui vous ont aidés...
12monkeys est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h54.


 
 
 
 
Partenaires

Hébergement Web