Mon Problème Qui Est Super Bien Expliqué Sujet : Sessions

ViPHP
ViPHP | 1961 Messages

11 déc. 2006, 23:34

Re,
Effectivement, ta ligne ne veut rien dire.

Je suppose que tu essies de créer un champ de type mot de passe,
Si c'est le cas elle devrait être comme ceci
<input type="password" name="pass" />
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Eléphant du PHP | 112 Messages

11 déc. 2006, 23:37

Je vien de touver une erreur Fatal !!

Je me suis tromper pour session.php

Code : Tout sélectionner

<html> <head> <title>Connexion</title> </head> <body> <form method="post" action="verifLogin.php"> <table border="0" width="400" align="center"> <tr> <td width="200">Pseudo</td> <td width="200"> <input type="password" name="login"> </td> </tr> <tr> <td width="200">Pass</td> <td width="200"> <input type="<?php echo($password); ?>" name="<?php echo($password); ?>"> </td> </tr> <tr> <td colspan="2"> <input type="submit" name="submit" value="Vérifier"> </td> </tr> </table> </form> </body> </html>
Regardez attentivement :

- Il se trouve que le nom du champ pseudo est "login" (pas la même chose dans verifLogin.php)
- Il se trouve que le nom du champ pass est "<?php echo($password); ?>" (pas la même chose dans verifLogin.php)

Je ne sais pas mais c'est rès louche !
Cordialement, France-Webmaster
www.france-webmaster.fr
[email protected]
--------------------------------------
Magnifique invention qu'est la base de donnée !!

Eléphant du PHP | 112 Messages

11 déc. 2006, 23:42

Autre chose !!

Si il n'y a pas :

Code : Tout sélectionner

Le pseudonyme ou le mot de passe est erroné, veuillez réessayer !
et que le le couple pass+pseudo fonctionne vers quel page seron ils rediriger les inscrit, il faut ajouter quelque chose a ce sujet dans verifLogin.php ??
Cordialement, France-Webmaster
www.france-webmaster.fr
[email protected]
--------------------------------------
Magnifique invention qu'est la base de donnée !!

ViPHP
ViPHP | 1961 Messages

11 déc. 2006, 23:50

Re,

Tu dois te faire un schéma du fonctionnement de ton application.

Exemple:
J'ai une page (x)HTML qui va permettre de saisir le pseudo et le mot de passe,
Une fois cette page validée je contrôle l'existance de ce couple (pseudo, mot de pass).
Si Ok je dirige l'utilisateur vers telle page.
Si pas OK, un message et retour à la page de saisie.
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Eléphant du PHP | 112 Messages

12 déc. 2006, 00:03

Si Ok je dirige l'utilisateur vers telle page.
J'avait compris cette partie, celle qui m'intrigue c'est que faut-il ajouter (comme code) à l'une des deux pages pour que la redirestion est lieu ?
Cordialement, France-Webmaster
www.france-webmaster.fr
[email protected]
--------------------------------------
Magnifique invention qu'est la base de donnée !!

ViPHP
ViPHP | 1961 Messages

12 déc. 2006, 00:05

Re,

Quelles sont tes deux pages ?

poste-les qu'on y voie plus clair.
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Eléphant du PHP | 112 Messages

12 déc. 2006, 00:10

session.php

Code : Tout sélectionner

<html> <head> <title>Connexion</title> </head> <body> <form method="post" action="verifLogin.php"> <table border="0" width="400" align="center"> <tr> <td width="200">Pseudo</td> <td width="200"> <input type="texte" name="pseudo"> </td> </tr> <tr> <td width="200">Pass</td> <td width="200"> <input type="password" name="pass" /> </td> </tr> <tr> <td colspan="2"> <input type="submit" name="submit" value="Vérifier"> </td> </tr> </table> </form> </body> </html>
verifLogin.php

Code : Tout sélectionner

<?php $loginOK = false; $pseudo = isset($_POST['pseudo']) ? $_POST['pseudo'] : ""; $pass = isset($_POST['pass']) ? $_POST['pass'] : ""; if ( (!empty($pseudo)) && (!empty($pass)) ) { //connexion à la base de données $liendb = mysql_connect("sql.free.fr","francewebmaster","6521digk"); $db = mysql_select_db(francewebmaster); // On va vérifier l'existence du couple pseudonyme+mot de passe $sql = "SELECT COUNT(*) FROM `user` WHERE `pseudo` = '" . addslashes($pseudo) . "' AND `pass` = '" . addslashes($pass) . "'"; /* Exécution de la requête */ $req = mysql_query($sql) or die("Erreur lors de l'exécution de la requête : \"".$sql ."\";<br />\nErreur retournée : ". mysql_error()); // On vérifie le résultat retourné if (mysql_result($req, 0) == 1) { $loginOK = true; } } // Si le login a été validé on met les données en sessions if ($loginOK) { $_SESSION['pseudo'] = $pseudo; /* On enregistre jamais un mot de passe dans une variable de session ! */ } else { echo "Le pseudonyme ou le mot de passe est erroné, veuillez réessayer !"; } ?>
Cordialement, France-Webmaster
www.france-webmaster.fr
[email protected]
--------------------------------------
Magnifique invention qu'est la base de donnée !!

Eléphant du PHP | 112 Messages

12 déc. 2006, 00:12

la table user

Code : Tout sélectionner

CREATE TABLE user (id INT (11) not null AUTO_INCREMENT, nom VARCHAR (35) null , prenom VARCHAR (35) null , pseudo VARCHAR (70) not null , pass VARCHAR (70) not null , email VARCHAR (70) null , telephone VARCHAR (255) null , numero VARCHAR (255) null , PRIMARY KEY (id), INDEX (id), UNIQUE (id))
Cordialement, France-Webmaster
www.france-webmaster.fr
[email protected]
--------------------------------------
Magnifique invention qu'est la base de donnée !!

Eléphant du PHP | 112 Messages

12 déc. 2006, 00:14

Je veux me servir seulement de pseudo et pass pour l'identification, les autres servent pour plus tard !
Cordialement, France-Webmaster
www.france-webmaster.fr
[email protected]
--------------------------------------
Magnifique invention qu'est la base de donnée !!

Eléphant du PHP | 445 Messages

12 déc. 2006, 00:18

Désolé, ce post n'a rien à faire là, mais je tiens quand même à ouvrir une petite parenthèse... Quitte à me faire modérer... :?


France-Webmaster, arrêtes les doubles, triples voire quadruples posts... A part énerver les personnes qui t'aident, cela ne t'apporte rien. Ces personnes ont également des choses personnelles à faire, et ne sont pas à ta disposition continuellement. Personnellement, je n'ai pas envie de t'aider à résoudre ce problème vu la manière dont tu postes... Soit patient, et attentif... C'est relativement énervant, et je comprendrais que certains en ai marre de ton soucis ;)

En tout cas bonne chance pour ton problème.
LLDC
Ulti

ViPHP
ViPHP | 1961 Messages

12 déc. 2006, 00:32

Re,

Corrige tes deux fichiers de la façon suivante
session.php
<html>
 <head>
  <title>Connexion</title>
 </head>
 <body>
  <?php 
 		if(isset($_GET['msg']) && $_GET['msg'] == 'o'){
 			echo '<center><h3>Le pseudonyme ou le mot de passe est erroné, veuillez réessayer !</h3></center>';
 		}
 	?>
  <form method="post" action="verifLogin.php">
   <table border="0" width="400" align="center">
    <tr>
     <td width="200">Pseudo</td>
     <td width="200">
      <input type="texte" name="pseudo">
     </td>
    </tr>
    <tr>
     <td width="200">Pass</td>
     <td width="200">
<input type="password" name="pass" />
     </td>
    </tr>
    <tr>
     <td colspan="2">
      <input type="submit" name="submit" value="Vérifier">
     </td>
    </tr>
   </table>
  </form>
 </body>
</html>
et verifLogin.php
<?php
$loginOK = false;
$pseudo  = isset($_POST['pseudo']) ? $_POST['pseudo'] : "";
$pass    = isset($_POST['pass'])   ? $_POST['pass']   : "";

if ( (!empty($pseudo)) && (!empty($pass)) )
{
    //connexion à la base de données
    $liendb = mysql_connect("sql.free.fr","francewebmaster","6521digk");
    $db     = mysql_select_db(francewebmaster);

    // On va vérifier l'existence du couple pseudonyme+mot de passe
    $sql = "SELECT COUNT(*) FROM `user` WHERE `pseudo` = '" . addslashes($pseudo) . "' AND `pass` = '" . addslashes($pass) . "'";
    /* Exécution de la requête */
    $req = mysql_query($sql) or die("Erreur lors de l'exécution de la requête : \"".$sql ."\";<br />\nErreur retournée : ". mysql_error());

    // On vérifie le résultat retourné
    if (mysql_result($req, 0) == 1)
    {
        $loginOK = true;
    }
}

// Si le login a été validé on met les données en sessions
if ($loginOK) 
{
    $_SESSION['pseudo'] = $pseudo;
    /* On enregistre jamais un mot de passe dans une variable de session ! */
}
else 
{
    header('Location: id.php?msg=o');
}
?>
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

12 déc. 2006, 00:35

Modération :
Ultim4T0m, n'étant pas modérateur,
tu n'es pas censé faire ce type de remarques.

Toutefois, dans la mesure où celle-ci me semble tout à fait justifiée
compte tenu de l'interdiction formelle du multipostage sur ce forum,
je la valide. À titre exceptionnel, bien évidemment. ;)

Et puis, ça me fait du boulot en moins... :lol:


France-Webmaster, ce sujet que tu as ouvert contient déjà 70 messages.
Bien que ne l'ayant pas suivi entièrement, je ne peux que déduire l'existence d'un problème :
énoncé insuffisamment précis, mécompréhension, infos erronées, etc.

Toujours est-il que les membres qui te répondent risquent de se lasser.
À toi de voir ce que tu peux faire pour faciliter la résolution de ta question...

Moi, j'aime bien voir fleurir des petits [Résolu] un peu partout... :pouce:

Eléphant du PHP | 112 Messages

12 déc. 2006, 00:43

Désoler à tout ce petit monde qui se lasserai bien de mes pos-it en grand nombres !!

Je viens de remarqué (en lisant le texte de albat) que ce forum est issue de phpbb, et qu'il existe un petit bouton sur l'extrême droite qui s'appel "éditer" je l'utiliserai le plus souvent possible maintenant que je suis inscrit !

Ajoloca, je veux bien corriger mais (un peu normal) mais pouvez-vous m'expliquer les changement juste un peu de curiosité !...

albat en temps que modérateur pouvez-vous changer le nom du forum car ces page vont êtres relu par des visiteur, le nom ne donne pas très envie de lire, mettez le nom que vous voulez sa met égal...

En plus on arrive bientôt au resultat attendu Ajoloca :

Code : Tout sélectionner

Impossible de trouver la page Il est possible que la page recherchée ait été supprimée, que son nom ait changé ou qu'elle ne soit pas disponible pour le moment. -------------------------------------------------------------------------------- Essayez de la manière suivante : Si vous avez entré l'adresse de cette page dans la barre d'adresses, vérifiez qu'elle est correcte. Ouvrez la page de démarrage francewebmaster.free.fr et recherchez des liens vers les informations voulues. Cliquez sur le bouton Précédente pour essayer un autre lien. Cliquez sur Rechercher pour trouver des informations sur Internet. HTTP 404 - Fichier non trouvé Internet Explorer
Modifié en dernier par France-Webmaster le 12 déc. 2006, 00:54, modifié 1 fois.
Cordialement, France-Webmaster
www.france-webmaster.fr
[email protected]
--------------------------------------
Magnifique invention qu'est la base de donnée !!

ViPHP
ViPHP | 1961 Messages

12 déc. 2006, 00:53

Re,

Dans la page session.php on teste si l'URI contient un paramètre, si c'est le cas c'est quelle a été appellée par verifLogin, on affiche donc le message et la page se réexécute.

Quand c'est le premier le premier appel, l'URI ne contien pas de paramètre, donc pas de message et la page s'exécute normalement.

Dans verfLogin.php si le couple pseudo, mot de passe n'ont pas été trouvés on redirige vers session.php avec un paramètre.

C'est pas plus compliqué que ça.
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Eléphant du PHP | 112 Messages

12 déc. 2006, 00:58

C'est bon je viend de dessiner un shéma pour comprendre

Ceci est un pseudo frame ? :

Code : Tout sélectionner

header('Location: id.php?msg=o');
je doit trouver un tuto pour savoir m'enservir...

J'aime bien ce lien mais, je ne comprend pas certain point important :

<couple (nom,valeur)>&<couple (nom,valeur)>&...

(...) ne m'aide pas, bon peut être que la réponse est dans la suite...
Modifié en dernier par France-Webmaster le 12 déc. 2006, 19:43, modifié 4 fois.
Cordialement, France-Webmaster
www.france-webmaster.fr
[email protected]
--------------------------------------
Magnifique invention qu'est la base de donnée !!