par
Jackisback » 01 oct. 2008, 23:31
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 ???
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]<?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>[/php]
Je me suis permis de rajouter $password ici:
[php]$requete = "SELECT count(*) as nb FROM membre WHERE inscr_pseudo = '".$nom."' AND inscr_pass = '".$password."'"; [/php]
Car tu avais écris :
[php]$requete = "SELECT count(*) as nb FROM membre WHERE inscr_pseudo = '".$nom."' AND inscr_pass = '".password."'";[/php]
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:
[php]$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;[/php]
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 ???