Je laisse néamoins le code si jamais ça peut être utile à quelqu'un d'autre
Bonjour à tous ! (Désolé pour le code, lorsque je le met dans la balise code je ne peux pas publier et ça m'envoie sur un site qui me dit que je suis bloqué)...
Des années que je n'étais pas venu sur ce forum, j'ai connu le SdZ pour vous dire ...
Bref, ce n'est pas le sujet. Je programme actuellement un site web multilingue, composer d'une page Index qui contient un menu, un footer, et un double formulaire Connexion/Inscription (On peut choisir grâce à JavaScript lequel affiché, par défaut c'est le formulaire de connexion). Lorsqu'on arrive sur le site, la langue est l'anglais par défaut, il y a une balise <select> dans le menu pour changer de langue ET qui crée un cookie pour se rappeler du choix de la langue la prochaine fois qu'on vient sur le site et qui modifie tout le contenu de la page dynamiquement.
Parlons maintenant du formulaire de connexion.
Ce formulaire fonctionne correctement, les erreurs (Mauvaise combinaison mot de passe/adresse mail par exemple) sont affiché dans la langue choisis OU par défaut en anglais.
Parlons maintenant du formulaire d'inscription.
Lui, il a un gros problème ! Il m'affiche bien les erreurs dans la langue voulu, mais lorsqu'il n'y a pas d'erreur, j'ai une requête qui enregistre les infos dans la base de données.
Le problème se situe dans cette requête. Si je la laisse comme elle est actuellement, rien ne se passe, rien ne s'enregistre et aucun message de validation.
Si je met la requête dans un try/catch, le contenu s'enregistre en double dans la base de données (Seul l'ID est différent), mais il m'affiche le message "Inscription réussis" et si je renvoi le formulaire avec les mêmes informations il m'affiche bien le message "Cette adresse mail est déjà prise".
Voici l'arborescence du projet:
www/Index.php
www/Ajax/Traitement_connexion.php
www/Ajax/Traitement_inscription.php
www/Includes/Configuration.php
www/Includes/Menu.php
www/Includes/Footer.php www/CSS/(là où se trouvent les feuilles de style de la page).
<script> $("#Formulaire_connexion").show(); $("#Formulaire_inscription").hide(); $("#Inscription").click(function() { if ($("#Formulaire_connexion").is(":visible")) { $("#Formulaire_connexion").hide(); $("#Formulaire_inscription").show(); } else { $("#Formulaire_connexion").show(); $("#Formulaire_inscription").hide(); } } ); $("#Connexion_bouton").click(function() { if ($("#Formulaire_inscription").is(":visible")) { $("#Formulaire_inscription").hide(); $("#Formulaire_connexion").show(); } else { $("#Formulaire_inscription").show(); $("#Formulaire_connexion").hide(); } } ); </script> <script> $(document).ready(function(){ $("#Inscription_formulaire").on('submit', function(e){ e.preventDefault(); var Login_inscription=$("#Login_inscription").val(); var Mail_inscription=$("#Mail_inscription").val(); var Pass_inscription=$("#Pass_inscription").val();
$.ajax({ url:'Ajax/Inscription_traitement.php', type:'POST', dataType: 'json', data: { Login_inscription:Login_inscription, Mail_inscription:Mail_inscription, Pass_inscription:Pass_inscription }, success:function(response) { // Afficher le message d'erreur dans le div avec la classe 'Erreur' $('.Erreur').html(response).fadeIn('fast'); } });
setTimeout(function() { $('.Erreur').fadeOut('fast'); }, 3000); }); }); </script> <script> $(document).ready(function(){ $("#Connexion_formulaire").on('submit', function(e){ e.preventDefault(); var User_login=$("#User_login").val(); var Pass_connexion=$("#Pass_connexion").val(); $.ajax({ url:'Ajax/Connexion_traitement.php', type:'POST', dataType: 'json', data: { User_login:User_login, Pass_connexion:Pass_connexion }, success: function(response) { // Afficher le message d'erreur dans le div avec la classe 'Erreur' $('.Erreur').html(response).fadeIn('fast');
// Optionnel : Rediriger l'utilisateur si la connexion est réussie if (response === 'success') { // Remplacez 'success' par le message de succès que vous renvoyez window.location.href = 'Livret.php'; } } });
$Requete = $BDD->prepare('SELECT Mail_utilisateurs FROM Utilisateurs WHERE Mail_utilisateurs = :Mail_utilisateurs'); $Requete->execute(array(':Mail_utilisateurs'=>$Mail_inscription)); $Donnees_mail = $Requete->fetch(); if ($Donnees_mail == 0) // Si une valeur est retournée c'est qu'un membre possède déjà le pseudo. { $Requete = $BDD->prepare('SELECT Login_utilisateurs FROM Utilisateurs WHERE Login_utilisateurs = :Login_utilisateurs'); $Requete->execute(array(':Login_utilisateurs'=>$Login_inscription)); $Donnees_login = $Requete->fetch();
if ($Donnees_login == 0) // Si une valeur est retournée c'est qu'un membre possède déjà le pseudo. { $Requete = $BDD->prepare('INSERT INTO Utilisateurs (Login_utilisateurs, Mail_utilisateurs, Pass_utilisateurs, Date_inscription, Rang, Activation, Adresse_IP) VALUES(?, ?, ?, NOW(), 0, 0, ?)'); $Requete->execute(array($Login_inscription, $Mail_inscription, $Pass_inscription, $Mail_inscription, $IP)); $langage = $_COOKIE['Langage'] ?? 'EN'; // Get the user's language from the cookie $reqErreur = $BDD->prepare("SELECT Inscription_succes FROM Erreur_inscription WHERE Erreur_langage = :langage"); $reqErreur->execute([':langage' => $langage]); $erreur = $reqErreur->fetchColumn(); $successc = $erreur ?: "";
//$Sujet_mail = 'Votre inscription sur Driv'R'; //$Message_mail = "Bonjour ".$Mail_inscription.",</div>
//Une dernière étape pour vous permettre de profiter pleinement de notre site.<br/> //Prenez le temps de valider votre adresse mail grâce au lien ci-dessous.<br/>
//<br/>Nous avons bien enregistrer votre inscription sur IPBrowser.fr<br/>
//<br/>Rappel de vos identifiants:<br/> //- Adresse mail : ".$Mail_inscription."<br/> //- Pass : ".$Pass_naturel."<br/>
//<br/>Pour activer votre compte, veuillez cliquer sur ce lien : <a href='http://drivr.fr/Activation.php?Mail=".urlencode($Mail_inscription)."&Cle=".urlencode($Cle)."'>Activer mon compte</a><br/>
//Si ce mail ne vous est pas destiné, merci de l'ignorer.<br/> //<br/>Ce mail est envoyé automatiquement, il est inutile d'y répondre."; //$Destinataire = $Mail_inscription; //$headers = "From: \"IPBrowser.fr\"<Contact@IPBrowser.fr>\n"; //$headers .= "Content-Type: text/html; charset=\"iso-8859-1\"";
// } //else // { // echo 'Une erreur est survenu durant l\'envoi du mail.'; // include "Includes/Formulaire.php"; // }
//$Sujet_IPB = 'Nouveau message sur IPBrowser.fr'; //$Message_contact = "Bonjour M. Alizon,<br/>
//<br/>Vous avez reçu un nouveau message sur IPBrowser.<br/> //Vous pouvez le consultez depuis votre panel d'administration <a href='http://IPBrowser.fr/Administration' title='Administration'>ici</a>.<br/>
J'ai également la page Connexion_traitement.php et Script_traduction_index.php (pour traduire le contenu de la page index), mais je n'ai pas vraiment besoin de les partagar étant donné qu'elles fonctionne. Mais si jamais, je peux, notamment Connexion_traitement qui est parfaitement fonctionnel et est codé exactement de la même manière qu'Inscription_traitement.
Si vous avez le moindre indice pour moi, je vous en serez extrêmement reconnaissant, il y a encore des failles de sécurité mais ma priorité pour le moment est de résoudre ce problème.
Merci d'avance à tous !
- Edité par Lauloque 5 février 2025 à 23:40:21
Agrémenter votre site web grâce à nos templates gratuit sur IPBrowser.fr !