Soucis avec mon module d'inscription

Fermé
som - Modifié par som le 24/05/2014 à 21:42
animostab Messages postés 2829 Date d'inscription jeudi 10 mars 2005 Statut Membre Dernière intervention 11 novembre 2019 - 27 mai 2014 à 03:02
Bonjour,


<?php
if (isset($_POST['inscription']) && $_POST['inscription'] == 'inscription') {
// connexion à la base de donnée
try
{
$bdd = new PDO('mysql:host=ftpfree.perso.fr;dbname=ma_base', 'mon_login', 'mon_password');
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}

// Vérification de la validité du pseudo
if ($_POST['pseudo'] == '') {
$erreur_pseudo = "- Erreur: Le pseudo n'est pas renseigné.";
}
// Vérification de la longueur du pseudo / Mini 3 caractères
elseif (strlen($_POST['pseudo']) < 3) {
$erreur_pseudo = '- Erreur: Le pseudo doit contenir minimum 3 caractères.';
}
// Vérification de la longueur du pseudo / Maxi 25 caractères
elseif (strlen($_POST['pseudo']) > 25) {
$erreur_pseudo = '- Erreur: Le pseudo doit contenir maximum 25 caractères.';
}
// Vérification de la disponibilité du pseudo (si déjà pris ou pas)
$query = $bdd->prepare("SELECT COUNT(*) AS verif_pseudo FROM membres WHERE membre_pseudo=:pseudo");
$query->execute(array("pseudo" => $_POST['pseudo']));
$count = $query->fetch();
if ($count['verif_pseudo'] > 0) {
$erreur_pseudo = "- Erreur: Ce pseudo est déjà utilisé, merci de bien vouloir en donner un autre.";
}
//vérification de la validité du mot de passe
// Vérification de la présence d'un mot de passe
if (($_POST['mdp'] == '') && ($_POST['mdp_verif'] == '')) {
$erreur_mdp = "- Erreur: Au moins un des champs mot de passe ne sont pas renseigné.";
}
// Vérification des deux mots de passe ($mdp et $mdp_verif)
elseif ($_POST['mdp'] != $_POST['mdp_verif']){
$erreur_mdp = '- Erreur: Les mots de passe ne sont pas identique.';
}
// Vérification de la longueur du mot de passe / Mini 8 caractères
elseif (strlen($_POST['mdp']) < 8) {
$erreur_mdp = '- Erreur: Pour votre sécurité, les mots de passe doit avoir un minimum de 8 caractères.';
}
// Vérification de la longueur du mot de passe / Max 20 caractères
elseif (strlen($_POST['mdp']) > 20) {
$erreur_mdp = '- Erreur: Les mots de passe doit avoir un maximum de 20 caract&eagrave;res.';
}
// Vérification de la présence d'un chiffre dans le mot de passe
elseif (!preg_match('#[0-9]#', (trim($_POST['mdp'])))) {
$erreur_mdp = '- Erreur: Le mot de passe doit contenir au moins un chiffre.';
}
// Vérification de la présence d'un majuscule dans le mot de passe
elseif (!preg_match('#[A-Z]#', (trim($_POST['mdp'])))) {
$erreur_mdp = '- Erreur: Le mot de passe doit contenir au moins un lettre majuscule.';
}
// Vérification de l'adresse mail
// Vérification de la présence de l'adresse mail
if (($_POST['mail'] == '') && ($_POST['mail_verif'] == '')) {
$erreur_mail = '- Erreur: les adresse mail ne sont pas renseignées.';
}
// Vérification des deux adresses mail ($mail et $mail_verif)
elseif ($_POST['mail'] != $_POST['mail_verif']) {
$erreur_mail = '- Erreur: Les adresses mail sont differente.';
}
// Verification de la conformité du format de l'adresse mail.
elseif (!preg_match('#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#is', (trim($_POST['mail'])))) {
$erreur_mail = '- Erreur: Votre adresse mail est incorrect.';
}
// Vérification de l'adresse mail dans la base de données (déjà utilisée ou pas)
$mquery = $bdd->prepare("SELECT COUNT(*) AS verif_mail FROM membres WHERE membre_mail=:mail");
$mquery->execute(array("mail" => $_POST['mail']));
$count = $mquery->fetch();
if ($count['verif_mail'] > 0) {
$erreur_mail = '- Erreur: Cette adresse mail est déjà utilisée';
}
// Insére des données dans la tables si $erreur_pseudo / $erreur_mdp / $erreur_mail n'éxistent pas
if ((!isset($erreur_pseudo)) && (!isset($erreur_mdp)) && (!isset($erreur_mail))) {
$pseudo = $_POST['pseudo'];
$mdp = $_POST['mdp'];
$email = $_POST['mail'];
$req = $bdd->prepare('INSERT INTO membres(membre_pseudo, membre_mdp, membre_mail, date_inscription) VALUE(:pseudo, :pass, :email, CURDATE())');
$req->execute(array(
'pseudo' => $pseudo,
'pass' => sha1($mdp),
'email' => $email));
$erreur_insert = '';
}
else {
$erreur_insert = "<hr /><p>La création de votre compte ne s'est pas faite pour les raisons suivantes:</p>";
}
}
?>
<!DOCTYPE html>
<html>
<header>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
<link rel="stylesheet" href="../css/style.css"/>
<script type="text/javascript">
<!--
function open_charte() {
width = 750;
height = 600;
if(window.innerWidth) {
var left = (window.innerWidth-width)/2;
var top = (window.innerHeight-height)/2;
}
else {
var left = (document.body.clientWidth-width)/2;
var top = (document.body.clientHeight-height)/2;
}
window.open('inc-charte-popup.php','Notre charte','menubar=no, scrollbars=1, top='+top+', left='+left+', width='+width+', height='+height+'');
}
-->
</script>
<script type="text/javascript">
<!--
function open_robot() {
width = 550;
height = 450;
if(window.innerWidth) {
var left = (window.innerWidth-width)/2;
var top = (window.innerHeight-height)/2;
}
else {
var left = (document.body.clientWidth-width)/2;
var top = (document.body.clientHeight-height)/2;
}
window.open('inc-anti-robot-popup.php','Anti-robot','menubar=no, scrollbars=no, top='+top+', left='+left+', width='+width+', height='+height+'');
}
-->
</script>
<title>samsjarril.free.fr</title>
<?php include("../banner/inc-baner.php"); ?>
</header>
<body>
<nav>
<?php include("../incs/nav-principal.php"); ?>
</nav>
<section id="section1">
<article id="article1">
<p>
<h2>Formulaire d'inscription:</h2>
</p>
</article>
</section>
<section>
<article id="article2">
<?php
if ((!isset($erreur_pseudo)) && (!isset($erreur_mdp)) && (!isset($erreur_mail))) {
?>
<p>Bienvenue <?php echo $pseudo ; ?></p>
<p>Le compte a bien été crée.</p>
<p>votre login: <?php echo htmlspecialchars($_POST['pseudo']) ?> <br />
Votre mot de passe: <?php echo htmlspecialchars($_POST['mdp']) ?><br />
Votre adresse mail: <?php echo htmlspecialchars($_POST['mail']) ?></p>
<p>
Gardez les précieusement car il vous permettrons de vous connecter au système VIP du site.
</p>
<?php
}
else {
?>
<!-- Formulaire mis à jour : -->
<form action="../inscription/inscription.php" method="post" name="inscription">
<fieldset>
<br />
<label for="pseudo" class="float">Pseudo <strong class="important">*</strong>:</label>
<input type="text" name="pseudo" id="pseudo" size="30" /> <em class="police-petite">(compris entre 3 et 25 caractères)</em><br />
<label for="mdp" class="float">Mot de passe <strong class="important">*</strong>:</label>
<input type="password" name="mdp" id="mdp" size="30" /> <em class="police-petite">(compris entre 8 et 20 caractères, composé de lettres majuscules et miniscules et de chiffres)</em><br />
<label for="mdp_verif" class="float">Mot de passe <strong class="important">*</strong> (vérification) :</label>
<input type="password" name="mdp_verif" id="mdp_verif" size="30" /><br />
<label for="mail" class="float">Mail <strong class="important">*</strong> :</label>
<input type="text" name="mail" id="mail" size="30" /> <br />
<label for="mail_verif" class="float">Mail <strong class="important">*</strong> (vérification) :</label>
<input type="text" name="mail_verif" id="mail_verif" size="30" /><br />
<p class="important">* Remplir ces champs est obligatoire pour vous inscrire.</p>
<p class="important">
<?php if (isset($erreur_insert)) { echo $erreur_insert; } ?>
<p class="important">
<?php if (isset($erreur_pseudo)) { echo $erreur_pseudo; } ?><br />
<?php if (isset($erreur_mdp)) { echo $erreur_mdp; } ?><br />
<?php if (isset($erreur_mail)) { echo $erreur_mail; } ?><br />
</p>
</fieldset>
<fieldset>
<h1>Système anti-robot :</h1>
<p><a href="#null" onclick="javascript:open_robot();">Qu'es ce qu'un anti-robot?</a></p>
<p>Une solution anti-robot est à l'étude...<br />
Le captcha est devenu presque inutile car de plus en plus illisible pour les internautes, les robots arrivent à les déchiffrer.<br />
Reste le petit quizz de quelques questions logiques, mais certains robots sont capable d'enregistrer questions et réponses.</p>
</fieldset>
<p class="important">Information: Cliquer sur le bouton "Inscription" signifie que vous acceptez tout les termes de <a href="#null" onclick="javascript:open_charte();">notre charte</a>.</p>
<div class="center"><input type="submit" value="inscription" /></div><br />
</form>
<?php
}
?>
</article>
</section>
</body>
<footer>
<?php include("../incs/pied-page.php"); ?>
</footer>
</html>


Mon accèes à la base de donnée est bon.

Mes condition pour les vérifications de données entrées dans le formulaire marche.

j'ai ajoute le code:
1

if (isset($_POST['inscription']) && $_POST['inscription'] == 'inscription') { }

Et il m'affiche plus que:

"Bienvenue

Le compte a bien été crée.

votre login:
Votre mot de passe:
Votre adresse mail:

Gardez les précieusement car il vous permettrons de vous connecter au système VIP du site."

a chaque fois que je vais sur ma page inscription.

la vrai question est comment fait-on pour que le script de vérification ne s'éxécute pas avant que le formulaire ne s'exécute, seulement si le formulaire a été validé?
A voir également:

3 réponses

bg62 Messages postés 23598 Date d'inscription samedi 22 octobre 2005 Statut Modérateur Dernière intervention 11 mai 2024 2 364
25 mai 2014 à 12:07
bonjour;)
comment veux-tu que l'on puisse répondre à cette demande ???
'module d'inscription', ah oui où, chez qui, etc etc ...
la science 'infuse' n'existe pas ...
0
je suis chez free.fr ( hébergement bien sur )
le module c'est ma création.

Et ma question est très simple:

je fais une seul page pour l'inscription donc mon code php s'exécute à chaque chargement de ma page "inscription.php".

je veux que quand un utilisateur vient sur la page, le formulaire s'affiche.
Si il rempli mal le formulaire les retour $erreur_... s'affichent sinon il donne la confirmation de l'enregistrement du compte avec les infos ( pseudo, mdp et mail).

je pense que ma demande est claire ou alors précise se que tu ne comprend pas :s

Note: j'oubliais de dire que si le code n'est pas entre les balises, c'est que je ne savais pas qu'on pouvais le faire....

Question: comment fait-on pour que le script php des vérifications ne s'exécute pas avant que le formulaire soit validé?
0
animostab Messages postés 2829 Date d'inscription jeudi 10 mars 2005 Statut Membre Dernière intervention 11 novembre 2019 738
Modifié par animostab le 26/05/2014 à 02:01
salut

sans meme lire tout ton code la reponse est simple
verifie d'abords que le submit est activé
ensuite vérifie si les champs sont rempli car meme vide un champ existe
le code de verification s'execute vu que les champs existent meme vides (isset) et que le submit n'est pas vérifié comme non vide au chargement de page
donc il faut vérifier le name du submit avec !empty

deja donne un name a ton submit par exemple

<input type="submit" value="inscription" name="ok" />

après le code de vérification

if (!empty($_POST['ok']) {
if (!empty($_POST['nom du champ1']) && (!empty($_POST['nom du champ2']) etc pour tous les champs.... { tout ton code de verification, connection bd etc }
else { echo 'un des champs est vide';}
}

sinon tu mets ton code de verification dans une autre page que ton formulaire et tu appelle son link dans l'action du formulaire.

Un petit merci vaut mieux qu'une grande ignorance !
Donc si votre sujet est résolu une réponse avec merci c'est pas de refus.
0
animostab Messages postés 2829 Date d'inscription jeudi 10 mars 2005 Statut Membre Dernière intervention 11 novembre 2019 738
26 mai 2014 à 02:17
oups j'ai oublié une parenthèse après les $_post['...']) mais bon tu va rectifier ca
0
animostab Messages postés 2829 Date d'inscription jeudi 10 mars 2005 Statut Membre Dernière intervention 11 novembre 2019 738
27 mai 2014 à 03:02
alors ca le fait ????
0