Page 1 sur 2

Formulaire d'identification membres

Posté : 01 oct. 2008, 11:20
par Jackisback
Bonjour,

J'ai utilisé un script que j'ai trouvé sur un site.

J'ai une page de connexion pseudo/pass:

Voici le script de la page CONNEXION.PHP:
<?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=iso-8859-1" />
<title>xxx</title>
<!-- lien de la feuille de style des textes -->
<link href="../Design/styletext.css" rel="stylesheet" type="text/css" />
<!-- lien de la feuille de style de la position des blocs -->
<link href="../Design/stylepage.css" rel="stylesheet" type="text/css" />
<!-- lien de la feuille de style de la gestion du menu -->
<link href="../Design/stylemenu.css" rel="stylesheet" type="text/css" />
<link rel="shortcut icon" type="image/png" href="../Images/favicon.png" />
</head>
<body>
<div id="corps">
  <div id="image_fond"></div>
  <div id="logo"><a href="../Index.php"><img src="../Images/Logo/colombe_couleur_text.png" width="160" height="160" border="0" /></a></div>
  <div id="posmenu">
<?php include("../Menu/MenuPages.php");?>
  </div>
  <div id="titre">Se connecter en tant que membre de l'Association xxx</div>
  <div id="texte"><br/><br/><br/><br/><center><?php include("../Formulaire/Connexion/test-Login.php");?></center><br/><br/><br/><br/><br/></div>
</div> 
</body>
</html>
Cette page fait un INCLUDE de TEST-LOGIN.PHP (le script que j'ai récupéré) et dont voici le code:
<?php session_start();?>
<?php
/* ecriture de l'entête html début de page */
$entete_debut='<!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=iso-8859-1" />
<title>Document sans titre</title>
</head>
<body>';
$entete_fin='</body></html>';
/* création du code de connexion à la bd */
// $connexion_mysql=mysql_connect('localhost','root','');
/* on teste maintenant si la session login n'est pas initialisé et le formulaire non posté on affiche le formulaire de connexion*/
if(empty($_SESSION['inscr_pseudo']) AND !isset($_POST['Envoyer']))
{
echo $entete_debut;
/* on affiche maintenant le formulaire */
?>
<form action="" method="post" name="login" id="login">
  Pseudo : 
  <input name="inscr_pseudo" type="text" id="inscr_pseudo"><br />
  Password : 
  <input name="inscr_pass" type="password" id="inscr_pass"><br />
  <input type="submit" name="Envoyer" value="Envoyer">  
</form>
<?php 
echo $entete_fin;
}
/* si le formulaire a été posté on tente la connexion de l'utilisateur et si la session n'est pas ouverte */
elseif(empty($_SESSION['inscr_pseudo']) AND $_POST['Envoyer']=="Envoyer")
{
/* connexion à la table membre */
mysql_connect("localhost", "root", "") or die("Impossible de se connecter");
mysql_select_db("xxx") or die("Impossible de se connecter");
$requete="SELECT id, inscr_pseudo FROM membre WHERE inscr_pseudo='".mysql_real_escape_string($_POST['inscr_pseudo'])."'
 AND inscr_pass='".mysql_real_escape_string($_POST['inscr_pass'])."'";
/* on teste que le membre existe bien dans la table */
if (mysql_num_rows(mysql_query($requete))==1)
{
$donnees_mysql=mysql_fetch_assoc(mysql_query($requete));
$_SESSION['inscr_pseudo']=$donnees_mysql['inscr_pseudo'];$_SESSION['id']=$donnees_mysql['id'];
mysql_close();
header('Refresh: 3;URL='.$_SERVER['PHP_SELF']);
$log_ok='www.google.fr';/* mettre ici l'url de la page de destination si la connexion est OK */
echo $entete_debut.'vous allez être redirigé dans 3 secondes sur l\'espace membre'.$entete_fin;
}
else
{
header('Refresh: 5;URL='.$_SERVER['PHP_SELF']);
echo $entete_debut.'la connexion à notre espace membre a échouée, merci de refaire un essai. 
Vous allez être redirigé sur le formulaire dans 5 secondes.';
/* mettre ici la requête avec les liens vers les fichier du membre */
echo $entete_fin;
}
}
/* si une erreur dans le script ce produit on affiche un message */
else
{
echo $entete_debut.'une erreur est survenue'.$entete_fin;
}
?>
----------------

Premier problème:

Il m'affiche ça quand j'ai entrer un pseudo/pass CORRECT:

Code : Tout sélectionner

Warning: Cannot modify header information - headers already sent by (output started at C:\wamp\www\Pages\Connexion.php:9) in C:\wamp\www\Formulaire\Connexion\TEST-LOGIN.php on line 43 vous allez être redirigé dans 3 secondes sur l'espace membre
La ligne 43 correspond à celle-ci:
mysql_close();
header('Refresh: 3;URL='.$_SERVER['PHP_SELF']);
$log_ok='www.google.fr';/* mettre ici l'url de la page de destination si la connexion est OK */
La ou il y a le mot HEADER(...)

-----------------------------

Deuxieme problème,

Lorsque j'écris un pseudo/pass INCORRECT, j'ai ce message d'erreur:

Code : Tout sélectionner

Warning: Cannot modify header information - headers already sent by (output started at C:\wamp\www\Pages\Connexion.php:9) in C:\wamp\www\Formulaire\Connexion\TEST-LOGIN.php on line 49 la connexion à notre espace membre a échouée, merci de refaire un essai. Vous allez être redirigé sur le formulaire dans 5 secondes.
La ligne 43 correspond à celle-ci:

else
{
header('Refresh: 5;URL='.$_SERVER['PHP_SELF']);
echo $entete_debut.'la connexion à notre espace membre a échouée, merci de refaire un essai. Vous allez être redirigé sur le formulaire dans 5 secondes.';
/* mettre ici la requête avec les liens vers les fichier du membre */
echo $entete_fin;
La ou il y a le mot HEADER(...)

--------------

Donc si quelqu'un à une idée de ce qui cloche et qui pourrait m'aider à résoudre mes deux problèmes ...

D'avance merci

Posté : 01 oct. 2008, 13:41
par caroube
Quand tu envoies des caractères via l'instruction header(), il faut que ce soient les tous premiers caractères envoyés au browser. Il faut que rien n'ait été envoyé avant.

Le plus classique, ce sont les espaces ou les retours-chariots avant et après les balises <?php et ?> dans les fichiers php et les includes.

Par exemple, si tu as ça -- (e) représente un espace ou un retour chariot ou quoique ce soit.
(e)
<?php
  header ('xx');
?>
tu auras le message d'erreur

Donc, première chose à faire : faire en sorte que les tags <?php et ?> "collent" au début et à la fin des fichiers.

Posté : 01 oct. 2008, 13:44
par Jackisback
En quelques sortes tout le script devrait être à touche-touche ...

Et c'est valable aussi pour les commentaires du genre //Ceci est le script de la securité ultime ???

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

Posté : 01 oct. 2008, 17:45
par AB
Dans ton cas plus précisément tu fais un include de code php qui génère un header (ton fichier de connexion) à l'intérieur de ton code html.

Code : Tout sélectionner

<div id="texte"><br/><br/><br/><br/><center><?php include("../Formulaire/Connexion/test-Login.php");?></center><br/><br/><br/><br/><br
EDIT Et tu as un autre souci car tu déclares deux fois session_start();

PUB

Sinon j'ai fait un tuto d'inscription dans un espace membre ici http://www.phpfrance.com/forums/voir_sujet-242539.php . Tu pourrais l'adapter facilement pour en faire un script de connexion.

Je dis pas que ton code de connexion n'est pas fonctionnel mais le tuto est présenté de manière beaucoup plus simple, il est documenté et opérationnel. :wink:

Posté : 01 oct. 2008, 19:52
par Jackisback
Super merci beaucoup ...

Je vais y jeter un oeil et je reviens vous dire si ça fonctionne ...

Merci

Posté : 01 oct. 2008, 20:38
par AB
Et si ça ne fonctionne pas montres nous le code que tu as fait :wink:

Posté : 01 oct. 2008, 22:35
par Jackisback
Ok donc je peux déjà mettre ça en début de chaque page dont je veux protéger l'accès ?

<?php
session_start();
if(!isset($_SESSION['login'])) {die('Vous devez être enregistré pour accéder à cette partie du site');}?>

J'ai vu qu'on pouvait écrire ça aussi:

<?
session_start();?>

Il ne manque pas le php après <? ?????

J'ai volontairement oublié les balises codes pour qu'on voit bien les <?php ?>

------------------------

EDIT:

C'est un script d'inscription que tu as fait et tu précises:

"Remarquez qu'il y a peu de choses à modifier pour transformer ce script d'inscription en script de connexion"

Parceque moi le script d'inscription fonctionnait, c'est plus celui de connexion qui déconne ....

Posté : 01 oct. 2008, 22:42
par djtec
Il ne faut pas utiliser les short tag en php car certain serveur les désactivent ce qui empêche au script d'être traité.

Posté : 01 oct. 2008, 22:44
par Jackisback
Par contre j'ai commencer à reprendre quelques fonctions et astuce de ton script pour les mettre dans le mien ... héhé :lol:

------------------

EDIT :

Pour les short tags ok j'en ai pris bonne note ....

Merci

Posté : 01 oct. 2008, 22:49
par djtec
Quel script?

Posté : 01 oct. 2008, 22:50
par Jackisback
Bah en fait je m'adressais à AB

J'écrivais le message quand tu as posté le tien ... c'est pour ça que j'ai EDITE car je n 'avais pas encore vu le tien ...

----------------------

EDIT:

J'ai pris ce script que j'ai adapté (très peu mais j'ai changé une ou deux choses):
<?php
// Indique le bon format des entêtes (par défaut apache risque de les envoyer au standard ISO-8859-1)
header('Content-type: text/html; charset=UTF-8');

/* Création d'une fonction - utilisée dans la récupération des variables - qui teste la configuration get_magic_quotes_gpc du serveur.
Si oui, supprime avec la fonction stripslashes les antislashes "\" insérés dans les chaines de caractère des variables gpc (GET, POST, COOKIE) */
function Verif_magicquotes ($chaine) 
{
if (get_magic_quotes_gpc()) $chaine = stripslashes($chaine);

return $chaine;
} 

// Initialisation du message de réponse
$message = null;


// Si le formulaire est envoyé
if (isset($_POST['inscr_pseudo'])) 
{

    /* Récupération des variables issues du formulaire
    Teste l'existence les données post en vérifiant qu'elles existent, qu'elles sont non vides et non composées uniquement d'espaces.
    (Ce dernier point est facultatif et l'on pourrait se passer d'utiliser la fonction trim())
    En cas de succès, on applique notre fonction Verif_magicquotes pour (éventuellement) nettoyer la variable */
    $pseudo = (isset($_POST['inscr_pseudo']) && trim($_POST['inscr_pseudo']) != '')? Verif_magicquotes($_POST['inscr_pseudo']) : null;
    $pass = (isset($_POST['inscr_pass']) && trim($_POST['inscr_pass']) != '')? Verif_magicquotes($_POST['inscr_pass']) : null;
    

    // Si $pseudo et $pass différents de null
    if(isset($pseudo,$pass)) 
    {
         /* Connexion au serveur : dans cet exemple, en local sur le serveur d'évaluation
         A MODIFIER avec vos valeurs */
         $hostname = "localhost";
         $database = "xxx";
         $username = "root";
         $password = "";
    
         $connection = mysql_connect($hostname, $username, $password) or die(mysql_error());

         // Connexion à la base
         mysql_select_db($database, $connection);
    
         // Indique à mySql de travailler en UTF-8 (par défaut mySql risque de travailler au standard ISO-8859-1)
         mysql_query("SET NAMES 'utf8'");
    
         // Préparation des données pour les requêtes à l'aide de la fonction mysql_real_escape_string
         $nom = mysql_real_escape_string($pseudo);
         $password = mysql_real_escape_string($pass);
    
    
         // Requête pour compter le nombre d'enregistrements répondant à la clause : champ du pseudo de la table = pseudo posté dans le formulaire
         $requete = "SELECT count(*) as nb FROM membre WHERE inscr_pseudo = '".$nom."'";
    
         // Exécution de la requête
         $req_exec = mysql_query($requete) or die(mysql_error());
    
         // Création du tableau associatif du résultat
         $resultat = mysql_fetch_assoc($req_exec);
    

         // nb est le nom de l'allias associé à count(*) et retourne le résultat de la requête dans le tableau $resultat; 
         if ($resultat['nb'] == 0) 
         // Résultat du comptage = 0 pour ce pseudo, on peut donc l'enregistrer 
         {
             // Pour enregistrer la date actuelle (date/heure/minutes/secondes) on peut utiliser directement la fonction mysql : NOW()
             $insertion = "INSERT INTO membre(inscr_pseudo,inscr_pass,date_enregistrement) VALUES('".$nom."', '".$password."', NOW())";
         
             // Exécution de la requête d'insertion
             $inser_exec = mysql_query($insertion) or die(mysql_error());
        
             /* Si l'insertion s'est faite correctement (une requête d'insertion retourne "true" en cas de succès, je peux donc utiliser 
             l'opérateur de comparaison strict '==='  c.f. http://fr.php.net/manual/fr/language.operators.comparison.php) */
             if ($inser_exec === true) 
             {
                 /* Démarre la session et enregistre le pseudo dans la variable de session $_SESSION['login']
                 qui donne au visiteur la possibilité de se connecter.  */
                 session_start();
                 $_SESSION['login'] = $pseudo;
            
                 // A MODIFIER Remplacer le '#' par l'adresse de votre page de destination, sinon ce lien indique la page actuelle.
                 $message = 'Votre inscription est enregistrée. <a href = "../index.php">Cliquez ici pour vous connecter</a>';
             }    
         }
         else
         {   // Le pseudo est déjà utilisé
             $message = 'Ce pseudo est déjà utilisé, changez-le.';
         }
    }
    else 
    {    // Au moins un des deux champs "pseudo" ou "mot de passe" n'a pas été rempli
         $message = 'Les champs "Pseudo" et "Mot de passe" doivent être remplis.';
    }
}
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Formulaire d'inscription - tutoriel PHP France</title>

<style type="text/css">
<!--
body, p, h1,form, input {
margin:0;
padding:0;
}
body {
background-color:#FFFFFF
}
#inscription {
width:380px;
background:#FFFFFF;
margin:20px auto;
font-family: Arial, Helvetica, sans-serif;
font-size:1em;
border:2px solid #333333;
}
#inscription h1 {
text-align:center;
font-size:1.2em;
background:#333333;
padding-bottom:5px;
margin-bottom:15px;
color:#FFFFFF;
letter-spacing:0.05em;
}
#inscription p {
padding-top:15px;
padding-right:50px;
text-align:right;
}
#inscription input {
margin-left:30px;
width:150px;
}
#inscription #valider {
width:155px;
font-size:0.8em;
}
#inscription #message {
height:27px;
font-size:0.7em;
font-weight:bold;
text-align:center;
padding:10px 0 0 0;
}
-->
</style>
</head>
<body>
<div id = "inscription">
    <form action = "#" method = "post">
    <h1>Inscription</h1>
    <p><label for = "inscr_pseudo">Pseudo : </label><input type = "text" name = "inscr_pseudo" id = "inscr_pseudo" /></p>
    <p><label for = "inscr_pass">Mot de passe : </label><input type = "password" name = "inscr_pass" id = "inscr_pass" /></p>
    <p><input type = "submit" value = "Envoyer" id = "valider" /></p>
    </form>
    <p id = "message"><?php if(isset($message)) echo $message ?></p>
</div>
</body>
</html> 
Et dans son tuto, AB disait "Remarquez qu'il y a peu de choses à modifier pour transformer ce script d'inscription en script de connexion" et donc j'aurais voulu savoir ce qu'il y avait à changer pour que ça marche comme il le disait ...

Si tu as une idée ....

Posté : 01 oct. 2008, 22:52
par djtec
ok ok

Posté : 01 oct. 2008, 23:09
par AB
Ok donc je peux déjà mettre ça en début de chaque page dont je veux protéger l'accès ?

<?php
session_start();
if(!isset($_SESSION['login'])) {die('Vous devez être enregistré pour accéder à cette partie du site');}?>

J'ai vu qu'on pouvait écrire ça aussi:

<?
session_start();?>

Il ne manque pas le php après <? ?????

J'ai volontairement oublié les balises codes pour qu'on voit bien les <?php ?>

------------------------

EDIT:

C'est un script d'inscription que tu as fait et tu précises:

"Remarquez qu'il y a peu de choses à modifier pour transformer ce script d'inscription en script de connexion"

Parceque moi le script d'inscription fonctionnait, c'est plus celui de connexion qui déconne ....

Il vaut mieux mettre <?php que <? car la dernière syntaxe suppose que les short tags soient activés sur le serveur ce qui n'est maintenant plus le cas par défaut avec PHP5

Ben le script de connexion est juste un peu plus simple que le script d'inscription. On modifie un peu la requête pour tester le mot de passe et au lieu de faire l'enregistrement dans la base si on ne trouve aucune correspondance dans la bdd, on fait simplement la redirection si on trouve une correspondance.
        // Requête pour compter le nombre d'enregistrements répondant à la clause : champ du pseudo et champ du mdp de la table = pseudo et mdp posté dans le formulaire

         $requete = "SELECT count(*) as nb FROM membres WHERE pseudo = '".$nom."' AND pass = '".password."'";
    
         // Exécution de la requête
         $req_exec = mysql_query($requete) or die(mysql_error());
    
         // Création du tableau associatif du résultat
         $resultat = mysql_fetch_assoc($req_exec);
    

         // nb est le nom de l'allias associé à count(*) et retourne le résultat de la requête dans le tableau $resultat; 
         if ($resultat['nb'] == 1) 
         // Résultat du comptage = 1 , le pseudo et le mot de passe sont correct
               {
                 /* Démarre la session et enregistre le pseudo dans la variable de session $_SESSION['login']
                 qui donne au visiteur la possibilité de se connecter.  */
                 session_start();
                 $_SESSION['login'] = $pseudo;
                 //redirection vers la page que tu veux en cas de succès
                 header("Location: nom_de_ton_fichier_de_destination.php");
                 exit(); 
             }    
         }
         else
         {   // Le pseudo ou le mot de passe sont incorrect
             $message = 'Le pseudo ou le mot de passe sont incorrect';
         }

Posté : 01 oct. 2008, 23:31
par Jackisback
Merci merci merci et encore merci pour votre rapidité et votre efficacité ...

J'ai modifié le script pour mes besoins et voilà ce que ça donne, connexion.php:
<?php
// Indique le bon format des entêtes (par défaut apache risque de les envoyer au standard ISO-8859-1)
header('Content-type: text/html; charset=UTF-8');

/* Création d'une fonction - utilisée dans la récupération des variables - qui teste la configuration get_magic_quotes_gpc du serveur.
Si oui, supprime avec la fonction stripslashes les antislashes "\" insérés dans les chaines de caractère des variables gpc (GET, POST, COOKIE) */
function Verif_magicquotes ($chaine) 
{
if (get_magic_quotes_gpc()) $chaine = stripslashes($chaine);

return $chaine;
} 

// Initialisation du message de réponse
$message = null;


// Si le formulaire est envoyé
if (isset($_POST['inscr_pseudo'])) 
{

    /* Récupération des variables issues du formulaire
    Teste l'existence les données post en vérifiant qu'elles existent, qu'elles sont non vides et non composées uniquement d'espaces.
    (Ce dernier point est facultatif et l'on pourrait se passer d'utiliser la fonction trim())
    En cas de succès, on applique notre fonction Verif_magicquotes pour (éventuellement) nettoyer la variable */
    $pseudo = (isset($_POST['inscr_pseudo']) && trim($_POST['inscr_pseudo']) != '')? Verif_magicquotes($_POST['inscr_pseudo']) : null;
    $pass = (isset($_POST['inscr_pass']) && trim($_POST['inscr_pass']) != '')? Verif_magicquotes($_POST['inscr_pass']) : null;
    

    // Si $pseudo et $pass différents de null
    if(isset($pseudo,$pass)) 
    {
         /* Connexion au serveur : dans cet exemple, en local sur le serveur d'évaluation
         A MODIFIER avec vos valeurs */
         $hostname = "localhost";
         $database = "xxx";
         $username = "root";
         $password = "";
    
         $connection = mysql_connect($hostname, $username, $password) or die(mysql_error());

         // Connexion à la base
         mysql_select_db($database, $connection);
    
         // Indique à mySql de travailler en UTF-8 (par défaut mySql risque de travailler au standard ISO-8859-1)
         mysql_query("SET NAMES 'utf8'");
    
         // Préparation des données pour les requêtes à l'aide de la fonction mysql_real_escape_string
         $nom = mysql_real_escape_string($pseudo);
         $password = mysql_real_escape_string($pass);
        
		// Requête pour compter le nombre d'enregistrements répondant à la clause : champ du pseudo et champ du mdp de la table = pseudo et mdp posté dans le formulaire
        $requete = "SELECT count(*) as nb FROM membre WHERE inscr_pseudo = '".$nom."' AND inscr_pass = '".$password."'";  
	
         // Exécution de la requête
         $req_exec = mysql_query($requete) or die(mysql_error());
    
         // Création du tableau associatif du résultat
         $resultat = mysql_fetch_assoc($req_exec); 

         // nb est le nom de l'allias associé à count(*) et retourne le résultat de la requête dans le tableau $resultat; 
         if ($resultat['nb'] == 1) 
         // Résultat du comptage = 1 , le pseudo et le mot de passe sont correct		 
         {
             {
                 /* Démarre la session et enregistre le pseudo dans la variable de session $_SESSION['login']
                 qui donne au visiteur la possibilité de se connecter.  */
                 session_start();
                 $_SESSION['login'] = $pseudo;
                 //redirection vers la page que tu veux en cas de succès
                 header("Location: bravo.php");
                 exit(); 
             }    
         }
         else
         {   // Le pseudo ou le mot de passe sont incorrect
             $message = 'Le pseudo ou le mot de passe sont incorrect';
         }
	}
}
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Formulaire de connexion</title>

<style type="text/css">
<!--





body, p, h1,form, input {
margin:0;
padding:0;
}
body {
background-color:#FFFFFF
}
#inscription {
width:380px;
background:#FFFFFF;
margin:20px auto;
font-family: Arial, Helvetica, sans-serif;
font-size:1em;
border:2px solid #333333;
}
#inscription h1 {
text-align:center;
font-size:1.2em;
background:#333333;
padding-bottom:5px;
margin-bottom:15px;
color:#FFFFFF;
letter-spacing:0.05em;
}
#inscription p {
padding-top:15px;
padding-right:50px;
text-align:right;
}
#inscription input {
margin-left:30px;
width:150px;
}
#inscription #valider {
width:155px;
font-size:0.8em;
}
#inscription #message {
height:27px;
font-size:0.7em;
font-weight:bold;
text-align:center;
padding:10px 0 0 0;
}
-->
</style>
</head>
<body>
<div id = "inscription">
    <form action = "#" method = "post">
    <h1>Connexion</h1>
    <p><label for = "inscr_pseudo">Pseudo : </label><input type = "text" name = "inscr_pseudo" id = "inscr_pseudo" /></p>
    <p><label for = "inscr_pass">Mot de passe : </label><input type = "password" name = "inscr_pass" id = "inscr_pass" /></p>
    <p><input type = "submit" value = "Envoyer" id = "valider" /></p>
    </form>
    <p id = "message"><?php if(isset($message)) echo $message ?></p>
</div>
</body>
</html>
Je me suis permis de rajouter $password ici:
$requete = "SELECT count(*) as nb FROM membre WHERE inscr_pseudo = '".$nom."' AND inscr_pass = '".$password."'";  
Car tu avais écris :
$requete = "SELECT count(*) as nb FROM membre WHERE inscr_pseudo = '".$nom."' AND inscr_pass = '".password."'";
Merci encore de votre aide ...

Maintenant que les scripts inscription et connexion fonctionne bien je n'ai plus qu'à les adapter pour ajouter d'autre champs pour l'inscription ...

Si je veux rajouter un champ site web, sexe, email, ville, pays, etc ...

est-ce que je dois ajouter ça aussi:
$email = (isset($_POST['inscr_email']) && trim($_POST['inscr_email']) != '')? Verif_magicquotes($_POST['inscr_email']) : null;
$sexe = (isset($_POST['inscr_sexe']) && trim($_POST['inscr_sexe']) != '')? Verif_magicquotes($_POST['inscr_sexe']) : null;
$pays= (isset($_POST['inscr_pays']) && trim($_POST['inscr_pays']) != '')? Verif_magicquotes($_POST['inscr_pays']) : null;
Mais pour l'email, une autre ligne pour le pays etc etc .... c'est bien ça ??? ou il y a d'autres astuces pour ce genre de champ ???

Posté : 01 oct. 2008, 23:49
par AB
c'est bien ça... évidemment pour l'enregistrement il faudra penser à insérer les valeurs correspondantes dans ta table.
En considérant que tu aies ajouté le champ email dans ta table cela donnerait :
$insertion = "INSERT INTO membres(pseudo,pass,date_enregistrement,email) VALUES('".$nom."', '".$password."', NOW(), '".$email."')";
(à adapter avec le nom des champs de ta table)