Code PHP inscription
Résolu/Fermé
SIHM_EL
Messages postés
5
Date d'inscription
mardi 26 mars 2013
Statut
Membre
Dernière intervention
28 mars 2013
-
26 mars 2013 à 17:42
SIHM_EL Messages postés 5 Date d'inscription mardi 26 mars 2013 Statut Membre Dernière intervention 28 mars 2013 - 28 mars 2013 à 19:53
SIHM_EL Messages postés 5 Date d'inscription mardi 26 mars 2013 Statut Membre Dernière intervention 28 mars 2013 - 28 mars 2013 à 19:53
A voir également:
- Code PHP inscription
- Code asci - Guide
- Code puk bloqué - Guide
- Code telephone oublié - Guide
- Code activation windows 10 - Guide
- Créer un qr code gratuit sans inscription - Guide
7 réponses
roussos
Messages postés
221
Date d'inscription
mercredi 16 février 2005
Statut
Membre
Dernière intervention
17 décembre 2014
8
26 mars 2013 à 17:46
26 mars 2013 à 17:46
Bonjour,
quel est le code que tu as déjà écrit?
si une modification s'impose??
Merci.
quel est le code que tu as déjà écrit?
si une modification s'impose??
Merci.
SIHM_EL
Messages postés
5
Date d'inscription
mardi 26 mars 2013
Statut
Membre
Dernière intervention
28 mars 2013
26 mars 2013 à 17:57
26 mars 2013 à 17:57
J'ai trouvé ce code (ci dessous) sur un site mais je ne sais pas ce qu'il faut changer pour l adapter à ma base de donnée et pour que ça puisse fonctionner.
<?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['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['pseudo']) && trim($_POST['pseudo']) != '')? Verif_magicquotes($_POST['pseudo']) : null;
$pass = (isset($_POST['pass']) && trim($_POST['pass']) != '')? Verif_magicquotes($_POST['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 = "nom_de_votre_base";
$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 membres WHERE 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 (isset($resultat['nb']) && $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 membres(pseudo,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.op ... arison.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 = "#">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 = "pseudo">Pseudo : </label><input type = "text" name = "pseudo" id = "pseudo" /></p>
<p><label for = "pass">Mot de passe : </label><input type = "password" name = "pass" id = "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
// 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['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['pseudo']) && trim($_POST['pseudo']) != '')? Verif_magicquotes($_POST['pseudo']) : null;
$pass = (isset($_POST['pass']) && trim($_POST['pass']) != '')? Verif_magicquotes($_POST['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 = "nom_de_votre_base";
$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 membres WHERE 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 (isset($resultat['nb']) && $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 membres(pseudo,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.op ... arison.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 = "#">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 = "pseudo">Pseudo : </label><input type = "text" name = "pseudo" id = "pseudo" /></p>
<p><label for = "pass">Mot de passe : </label><input type = "password" name = "pass" id = "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>
roussos
Messages postés
221
Date d'inscription
mercredi 16 février 2005
Statut
Membre
Dernière intervention
17 décembre 2014
8
26 mars 2013 à 18:10
26 mars 2013 à 18:10
Bonjour,
il faudra spécifier les bons identifiants de connexion à la base de données pour la connexion, à savoir $username et $password.
il faudra spécifier les bons identifiants de connexion à la base de données pour la connexion, à savoir $username et $password.
<?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'); // Initialisation du message de réponse $message = null; // Si le formulaire est envoyé if (isset($_POST['id_mail'])) { $idmail = $_POST['id_mail']; if(isset($idmail)) { /* Connexion au serveur : dans cet exemple, en local sur le serveur d'évaluation A MODIFIER avec vos valeurs */ $hostname = "localhost"; $database = "vsffr"; $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 $email = mysql_real_escape_string($idmail); // 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 mail FROM tb_adresse WHERE id_mail = '".$email."'"; // 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 (isset($resultat['mail']) == 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 tb_adresse(id_mail) VALUES('".$email."')"; // 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.op ... arison.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. */ // 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'; } } else { // Le pseudo est déjà utilisé $message = 'Cet email est déjà utilisé, changez-le.'; } } } ?> <!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 = "mail">Email : </label><input type = "text" name ="id_mail" id ="id_mail" /></p> <p><input type = "submit" value = "Envoyer" id = "valider" /></p> </form> <p id = "message"><?php if(isset($message)) echo $message ?></p> </div> </body> </html>
SIHM_EL
Messages postés
5
Date d'inscription
mardi 26 mars 2013
Statut
Membre
Dernière intervention
28 mars 2013
26 mars 2013 à 18:31
26 mars 2013 à 18:31
J'ai testé le code mais j'ai un message " cette adresse email existe déjà, changez-le" pourtant rien n'est encore inscrit dans ma bdd :(
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
roussos
Messages postés
221
Date d'inscription
mercredi 16 février 2005
Statut
Membre
Dernière intervention
17 décembre 2014
8
26 mars 2013 à 19:31
26 mars 2013 à 19:31
Bonsoir,
voilà la partie PHP à modifier une vérification ici dans un premier temps n'est pas nécessaire.
voilà la partie PHP à modifier une vérification ici dans un premier temps n'est pas nécessaire.
<?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'); // Initialisation du message de réponse $message = null; // Si le formulaire est envoyé if (isset($_POST['id_mail'])) { $idmail = $_POST['id_mail']; /* Connexion au serveur : dans cet exemple, en local sur le serveur d'évaluation A MODIFIER avec vos valeurs */ $hostname = "localhost"; $database = "vsffr"; $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 $email = mysql_real_escape_string($idmail); // Pour enregistrer la date actuelle (date/heure/minutes/secondes) on peut utiliser directement la fonction mysql : NOW() $insertion = "INSERT INTO tb_adresse(id_mail) VALUES('".$email."')"; // 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.op ... arison.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. */ // 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'; } } ?>
SIHM_EL
Messages postés
5
Date d'inscription
mardi 26 mars 2013
Statut
Membre
Dernière intervention
28 mars 2013
26 mars 2013 à 21:39
26 mars 2013 à 21:39
Super! il fonctionne, le seul petit souci qui reste est que l'adresse mail s'inscrit sous forme numérique dans ma base de donnée. C'est-à-dire la première adresse que j'encode s'inscrit dans ma base de donnée sous le nombre 1, la seconde sous le nombre 2. Du coup, je ne vois pas apparaître l'adresse mail. :/
roussos
Messages postés
221
Date d'inscription
mercredi 16 février 2005
Statut
Membre
Dernière intervention
17 décembre 2014
8
28 mars 2013 à 15:27
28 mars 2013 à 15:27
Bonjour,
il faut deux champs dans la table,
- un champ(tu pourrais nommer id_mail de type entier qui s'incrémente automatiquement ) pour la numérotation automatique des champs insérés
- un champ ( mail de type varchar(60) ) qui contient l'adresse inséré dans le formulaire.
il faut deux champs dans la table,
- un champ(tu pourrais nommer id_mail de type entier qui s'incrémente automatiquement ) pour la numérotation automatique des champs insérés
- un champ ( mail de type varchar(60) ) qui contient l'adresse inséré dans le formulaire.
SIHM_EL
Messages postés
5
Date d'inscription
mardi 26 mars 2013
Statut
Membre
Dernière intervention
28 mars 2013
28 mars 2013 à 19:53
28 mars 2013 à 19:53
COOOOL ça marche!!!!! Merci beaucoup pour ton aide!! :D