Mon problème survient quand je veux vérifier dans ma base de données si l'adresse Mail et le pseudo que le joueur à rentrée lors de son inscription existe déjà ou pas dans la base de données, mais quand je faisait le test et que je clique sur le bouton Enregistrer, cela ne m'exécute pas ma boucle while(lire. Read()) et rien ne se passe, donc est ce que ma requête pose problème, ou ma vérification des if/else, j'espère que vous pourriez m'aider à résoudre mon problème.
Script d'enregistrement :
Code : Tout sélectionner
using UnityEngine;
using UnityEngine.UI;
using System.Text.RegularExpressions;
using MySql.Data.MySqlClient;
public class Register : MonoBehaviour
{
[SerializeField]
private InputField adresseMail;
[SerializeField]
private InputField pseudo;
[SerializeField]
private InputField password;
[SerializeField]
private InputField confirmPassword;
[SerializeField]
private Text erreurText;
[SerializeField]
private GameObject connexionPanel;
private bool verificationOK = false;
public void Update()
{
Debug.Log("Test !");
string msg = ValidMail(adresseMail.text) ? "Adresse valide" : "Adresse invalide";
if(pseudo.text == "")
erreurText.text = "Veuillez mettre un Pseudo !";
else if(adresseMail.text == "")
erreurText.text = "Veuillez mettre une AddreseMail !";
else if(msg == "Adresse invalide")
erreurText.text = "Veuillez mettre une AdresseMail valide !";
else if(password.text == "")
erreurText.text = "Veuillez mettre un Password !";
else if(confirmPassword.text == "")
erreurText.text = "Veuillez mettre une confirmation Password !";
else if(password.text != confirmPassword.text)
erreurText.text = "La confirmation de Password n'est pas correct !";
else if(pseudo.text.Length <= 4)
erreurText.text = "Votre pseudo doit contenir 5 caractère minimum !";
else if(password.text.Length <= 4)
erreurText.text = "Votre Password doit contenir 5 caractère minimum !";
else
{
verificationOK = true;
erreurText.text = "";
}
}
public void enregistrement()
{
if(verificationOK)
{
string verification = "SELECT * FROM compteutilisateur";
MySqlCommand cmdVerifiation = new MySqlCommand(verification, ConnectorBDD.con);
using(MySqlDataReader lire = cmdVerifiation.ExecuteReader())
{
while(lire.Read())
{
string Mail = lire[name: "AdresseMail"].ToString();
string Pseudo = lire[name: "Pseudo"].ToString();
if(Mail != adresseMail.text && Pseudo != pseudo.text)
{
lire.Close();
Debug.Log("N'éxiste pas !");
string ajoutUtilisateur = "INSERT INTO compteutilisateur(AdresseMail,Pseudo,Password) VALUE (@adresseMail,@pseudo,@password)";
MySqlCommand cmd = new MySqlCommand(ajoutUtilisateur, ConnectorBDD.con);
cmd.Parameters.AddWithValue("@adresseMail", adresseMail.text);
cmd.Parameters.AddWithValue("@pseudo", pseudo.text);
cmd.Parameters.AddWithValue("@password", password.text);
cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
Debug.Log("Ajouté !");
connexionPanel.SetActive(true);
gameObject.SetActive(false);
}
else if(Mail == adresseMail.text)
{
Debug.Log("AdresseMail Existe déja !");
erreurText.text = "Cette AdresseMail est déjà utiliser !";
}
else if(Pseudo == pseudo.text)
{
Debug.Log("pseudo Existe déja !");
erreurText.text = "Ce pseudo est déjà utiliser !";
}
}
}
}
}
private bool ValidMail(string mail_address)
{
Regex myRegex = new Regex(@"^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$", RegexOptions.IgnoreCase);
return myRegex.IsMatch(mail_address);
}
}