Télécharger
Noter:

Ajouté le 2017-12-17
Visionné 34514 fois
3.5/5 (20)

Formulaire d'inscription simple en PHP

Description

Script d'inscription PHP permettant l'enregistrement d'un nouveau membre dans une base de données MySQL.

Libre à vous de rajouter ou non des champs de formulaire, là le script est simplifié au maximum pour que vous puissiez l'intégrer et le modifier comme vous le souhaitez.

<?php

/* page: inscription.php */

//connexion à la base de données:
$BDD = array();
$BDD['host'] = "localhost";
$BDD['user'] = "root";
$BDD['pass'] = "";
$BDD['db'] = "nom_de_la_base_de_donnees";
$mysqli = mysqli_connect($BDD['host'], $BDD['user'], $BDD['pass'], $BDD['db']);
if(!$mysqli) {
echo "Connexion non établie.";
exit;
}

//création automatique de la table membres, une fois créée, vous pouvez supprimer les lignes de code suivantes:
echo mysqli_query($mysqli,"CREATE TABLE IF NOT EXISTS `".$BDD['db']."`.`membres` ( `id` INT NOT NULL AUTO_INCREMENT , `pseudo` VARCHAR(25) NOT NULL , `mdp` CHAR(32) NOT NULL , PRIMARY KEY (`id`)) ENGINE = MyISAM;")?"Table membres créée avec succès, vous pouvez maintenant supprimer la ligne ". __LINE__ ." de votre fichier ". __FILE__ ."!":"Erreur création table membres: ".mysqli_error($mysqli);
//la table est créée avec les paramètres suivants:
//champ "id": en auto increment pour un id unique, peux vous servir pour une identification future
//champ "pseudo": en varchar de 0 à 25 caractères
//champ "mdp": en char fixe de 32 caractères, soit la longueur de la fonction md5()
//fin création automatique

//par défaut, on affiche le formulaire (quand il validera le formulaire sans erreur avec l'inscription validée, on l'affichera plus)
$AfficherFormulaire=1;
//traitement du formulaire:
if(isset($_POST['pseudo'],$_POST['mdp'])){//l'utilisateur à cliqué sur "S'inscrire", on demande donc si les champs sont défini avec "isset"
if(empty($_POST['pseudo'])){//le champ pseudo est vide, on arrête l'exécution du script et on affiche un message d'erreur
echo "Le champ Pseudo est vide.";
} elseif(!preg_match("#^[a-z0-9]+$#",$_POST['pseudo'])){//le champ pseudo est renseigné mais ne convient pas au format qu'on souhaite qu'il soit, soit: que des lettres minuscule + des chiffres (je préfère personnellement enregistrer le pseudo de mes membres en minuscule afin de ne pas avoir deux pseudo identique mais différents comme par exemple: Admin et admin)
echo "Le Pseudo doit être renseigné en lettres minuscules sans accents, sans caractères spéciaux.";
} elseif(strlen($_POST['pseudo'])>25){//le pseudo est trop long, il dépasse 25 caractères
echo "Le pseudo est trop long, il dépasse 25 caractères.";
} elseif(empty($_POST['mdp'])){//le champ mot de passe est vide
echo "Le champ Mot de passe est vide.";
} elseif(mysqli_num_rows(mysqli_query($mysqli,"SELECT * FROM membres WHERE pseudo='".$_POST['pseudo']."'"))==1){//on vérifie que ce pseudo n'est pas déjà utilisé par un autre membre
echo "Ce pseudo est déjà utilisé.";
} else {
//toutes les vérifications sont faites, on passe à l'enregistrement dans la base de données:
//Bien évidement il s'agit là d'un script simplifié au maximum, libre à vous de rajouter des conditions avant l'enregistrement comme la longueur minimum du mot de passe par exemple
if(!mysqli_query($mysqli,"INSERT INTO membres SET pseudo='".$_POST['pseudo']."', mdp='".md5($_POST['mdp'])."'")){//on crypte le mot de passe avec la fonction propre à PHP: md5()
echo "Une erreur s'est produite: ".mysqli_error($mysqli);//je conseille de ne pas afficher les erreurs aux visiteurs mais de l'enregistrer dans un fichier log
} else {
echo "Vous êtes inscrit avec succès!";
//on affiche plus le formulaire
$AfficherFormulaire=0;
}
}
}
if($AfficherFormulaire==1){
?>
<!--
Les balises <form> sert à dire que c'est un formulaire
on lui demande de faire fonctionner la page inscription.php une fois le bouton "S'inscrire" cliqué
on lui dit également que c'est un formulaire de type "POST"

Les balises <input> sont les champs de formulaire
type="text" sera du texte
type="password" sera des petits points noir (texte caché)
type="submit" sera un bouton pour valider le formulaire
name="nom de l'input" sert à le reconnaitre une fois le bouton submit cliqué, pour le code PHP
-->
<br />
<form method="post" action="inscription.php">
Pseudo (a-z0-9) : <input type="text" name="pseudo">
<br />
Mot de passe : <input type="password" name="mdp">
<br />
<input type="submit" value="S'inscrire">
</form>
<?php
}
?>


La table membres est créée automatiquement quand vous lancez le fichier inscription.php mais je vous met le code si besoin:
CREATE TABLE `membres` (
`id` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
`pseudo` varchar(25) COLLATE utf8_unicode_ci NOT NULL,
`mdp` char(32) COLLATE utf8_unicode_ci NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;


Une fois inscrit, vous pourrez vous connecter avec le script de connexion
Besoin de travaux pour votre site ?

Je suis là pour vous aider !

Commentaires

Ajouter un commentaire

Commenter
Pseudo/Nom *
Email *
Message *
Captcha *
memo1memo2
Commenter

Les champs marqués d'un * sont obligatoires.

iamlouky le 18 Décembre 2017 à 10:39

Bonjour,
J'ai suivi ce tuto et je suis ravi ça marche superbement bien, je vous suggère de l'utiliser avec script de connexion.

Merci beaucoup à l'admin

admin le 18 Décembre 2017 à 11:34

Super merci pour votre retour!

alain04 le 13 Mars 2018 à 02:45

Bonjour, je n'y comprend pas grand chose en script mais je voudrais juste récupérer l'email de mon visiteur pour un abonnement à la news
Merci

admin le 13 Mars 2018 à 10:11

Bonjour,

je ne propose pas de script newsletter mais vous devriez en trouver facilement sur internet.

alain04 le 13 Mars 2018 à 10:27

Bonjour admin, et merci pour la réponse,
Hélas non, j'ai parcouru des centaines de pages sans résultat.
Je trouve des choses très compliquées parce-que très complètes, mais il semblerait que ma demande soit trop simple.
Tant pis, et merci quand même pour la réponse.
ALAIN

admin le 13 Mars 2018 à 12:31

Vous pouvez prendre le script "page de contact" avec le script "vérifier une adresse mail" et le script inscription de cette page pour faire un module newsletter.

alain04 le 13 Mars 2018 à 20:34

Bonjour et merci infiniment pour ces conseils ... dont je ne sais pas quoi faire, hélas, puisque je ne sais pas où coller les divers scripts proposés.
J'ai fait un copier/coller tout bête et j'ai mis en ligne et bien sûr, ça ne fonctionne pas.
Tant pis pour moi, je n'vais qu'à apprendre à coder.
Peut-être y aura-t-il un lecteur à l'humanisme généreux pour le fabriquer ce que je cherche.
cordialement - ALAIN

admin le 14 Mars 2018 à 14:40

Je pari qu'avec un peu de recherche vous devriez pouvoir trouver un "simple newsletter form script php".

yonis le 03 Avril 2018 à 08:05

Merci admin ça marche trés bien ton code mais je voulais voir comment faire apres l'inscription rediriger vers une autre page et puis quand la personne voudrais faire un petit retour en arriere d'une page celui ci dois pas affiché le formulaire d'inscription puisque deja la personne connecté et inscrit merci d''avance de ta reponse !

olsys le 12 Avril 2018 à 14:57

Bonjour j'ai un soucis avec le mot de passe.

Je m'explique lors de l’enregistrement l'user indique sont propre MDP mais il est crypté dans la bdd et du coup impossible de se connecter sauf si je tape le mdp crypté

voila comment sont mes tables :

www.image-heberg.fr/files/15234885641540470588.png

www.image-heberg.fr/files/1523488587668766356.png

merci bcp pour votre aide

admin le 16 Avril 2018 à 18:48

Bonjour, vous trouverez comment faire avec le script de connexion: http://www.c2script.com/scripts/formulaire-de-connexion-en-php-s3.html

Fu le 30 Avril 2018 à 16:46

Bonjour j'ai un petit souci avec le formulaire d'inscription que je n'ai pas avec le formulaire de connexion , quand j'appuie sur le bouton s'inscrire , que j'ai rempli les champs ou non , ont me renvoie sur une erreur 404 plus exactement l'erreur " The requested URL inscription.php was not found on this server" j'espere que vous aller pouvoir m'aider , merci beaucoup d'avance

admin le 10 Mai 2018 à 15:18

il vous faut mettre "./" devant inscription.php, comme ceci:

<form method="post" action="./inscription.php">


cela permettra de rester dans le dossier actuel là où vous avez votre page inscription car vous utilisez sans doute la page inscription dans un répertoire de votre domaine et quand vous cliquez sur le envoyer vous arrivez sytématiquement à la racine, soit domaine.tld/inscription.php et il ne trouve pas la page

admin le 10 Mai 2018 à 15:21

@yonis: vous pouvez faire une condition du style:

if(isset($_SESSION['nom_session_membre'])){
alors on affiche pas la page
} else {
sinon on l'affiche
}

Jordan le 29 Septembre 2019 à 13:17

Merci beaucoup , cela faisait plus d'une semaine que je cherchais un code qui fonctionne correctement !

admin le 29 Septembre 2019 à 17:26

Merci beaucoup

Marcus le 17 Avril 2020 à 18:48

bonjour admin,
tout d'abord merci beaucoup: le code fonctionne parfaitement.
J'ai cependant un petit problème, quand j'entre mes infos et que j'appuie sur envoyer, il y a une erreur 404

j'ai pourtant deja ajouté le ./ devant le nom du fichier
(j'héberge le site de test sur infinity free)

admin le 17 Avril 2020 à 20:35

Bonjour, merci pour votre commentaire, c'est erreur est dû au fait que vous avez renseigné un nom de fichier incorrect dans <form ... action="ici">, à vérifier ;)

ilies El Asraoui le 26 Décembre 2020 à 12:08

Merci beaucoup les freres

Le Grenier le 18 Mai 2021 à 19:07

Bonjour,
je souhaiterais savoir ce que je dois mettre dans un fichier PHP quand j'ai codé en html ce qui suit:

<form action="traitement.php" method="post">
<input type="email" name="mail" class="mail" placeholder="votre email">
<button type="submit" class="submit"><i class="fa fa-long-arrow-right" aria-hidden="true"></i></button>
</form>

Merci

admin le 18 Mai 2021 à 19:23

Bonjour, suivez le tuto, vous comprendrez un peu mieux.

amani le 27 Mai 2021 à 15:19

reçu d inscription

Bonjour le 15 Septembre 2021 à 12:59

Bonjour est il normal que quand je remplie bien le pseudo et mdp pour s’inscrire cela n’ajoute rien dans la table membres ?
(Ps: je suis en local )

admin le 15 Septembre 2021 à 14:14

Bonjour, il est évident que non, ya un message d'erreur ?

Bonjour le 15 Septembre 2021 à 17:42

Non aucun message d’erreur quand j’appuie sur inscription tout s’efface et rien dans la bdd

admin le 15 Septembre 2021 à 18:27

Est ce que la connexion se fait correctement ?
Est ce que la table "membres" est créée ?

Il vous faut débuguer petit à petit, j'ai mis des message d'erreur ou de succès donc il devrait y avoir un message (comme par exemple "Ce pseudo est déjà utilisé.")

Bonjour le 15 Septembre 2021 à 19:02

Problème résolu grâce à toi je n’avais pas que il fallait juste écrire en minuscule.

En tout cas merci de ta réactivité et de ton travaille tu m’as beaucoup aider !

Passe une bonne soirée

Retour à la liste des scripts

Ici, les cookies, on les bouffent!!