Problème lors de l'inscription !

WRInaute impliqué
BOnjour,
Je viens de développer un site web avec un formulaire d'inscription, j'ai bien regarder partout pour ne pas laisser de faille, sauf qu'il y a des visiteurs qui peuvent s'inscrire sans donner leurs email qui est obligatoire XD, voici mon petit HTML avec le javascript comme et un code php qui vérifier l'email en cas de hic avec le javascript :

Code:
<script language="JavaScript">
<!--
function couleur(obj) {
     obj.style.backgroundColor = "#ffffff";
}
 
function check() {
	var msg = "";
 
		if (document.formulaire.mail.value != "")	{
		indexAroba = document.formulaire.mail.value.indexOf('@');
		indexPoint = document.formulaire.mail.value.indexOf('.');
		if ((indexAroba < 0) || (indexPoint < 0))		{
		document.formulaire.mail.style.backgroundColor = "#cccccc";
			msg += "Erreur mail";
		}
	}
	else	{
		document.formulaire.mail.style.backgroundColor = "#cccccc";
		msg += "Erreur mail";
	}
 
if (document.formulaire.pseudo.value == "")	{
		msg += "-Veuillez saisir votre pseudo\n";
		document.formulaire.pseudo.style.backgroundColor = "#cccccc";
	}
 
if (document.formulaire.pseudo.value.length > 18)	{
		msg += "Erreur pseudo";
		document.formulaire.pseudo.style.backgroundColor = "#cccccc";
	}
 
 if (document.formulaire.pseudo.value.length < 2)	{
		msg += "Erreur pseudo";
		document.formulaire.pseudo.style.backgroundColor = "#cccccc";
	}
 
if(document.formulaire.motpasse.value.length < 6)
	{ 
		msg += "Erreur mot de passe";
		document.formulaire.motpasse.style.backgroundColor = "#cccccc";
	}
	
	

	
	if (msg == "") return(true);
	else	{
		alert(msg);
		return(false);
	}
}
//-->
</script>
<script type="text/javascript">
// Formatage d'un champs mail
function valid_mail(evt) {
	var keyCode = evt.which ? evt.which : evt.keyCode;
	var interdit = 'àâäãçéèêëìîïòôöõùûüñ &*?!:;,\t#~"^¨%$£?²¤§%*()[]{}<>|\\/`\'';
	if (interdit.indexOf(String.fromCharCode(keyCode)) >= 0) {
		return false;
	}
}
</script>

<form method="post" action="inscription.php" enctype="application/x-www-form-urlencoded" name="formulaire" onSubmit="return check();">
Pseudo :
<input name="pseudo" value="" onKeyUp="javascript:couleur(this);">
Email :
<input name="mail" value="" onKeyUp="javascript:couleur(this);" onKeypress="return valid_mail(event);" >		
Mot de Passe :
<input type="password" name="motpasse" value="" onKeyUp="javascript:couleur(this);" >
<input class="boutonsubmit" type="submit" name="submit" value="S'inscrire">

</form>

Le code PHP d’exécution :

Code:
$date= date('c');
$pass = $_POST['motpasse'];
$mail = htmlspecialchars($_POST['mail']);
$pseudo = htmlspecialchars($_POST['pseudo']);
$clef = md5(microtime(TRUE)*100000);
$ip=$_SERVER['REMOTE_ADDR'];
$pass5=md5($pass);

//tester l'existance de pseudo ou email
$ens= "SELECT * from users where email='$mail'";
$dbdb=mysql_query($ens) or die (mysql_error());
while ($enseg = mysql_fetch_array($dbdb)) {
$erreur=1;
if($enseg['email']==$mail){

echo '<script language="javascript" type="text/javascript">
	window.location.replace("inscription.php?dup=dupmail");
	</script>';
	
}
}

if($erreur!=1 and isset($_POST['mail'])){
$requete = "INSERT INTO users (id, pseudo, email, pass, clemail, mailactiv, reset, date, ip, insc2, insc3, lastconnect, lastip, secisconnec) VALUES ('', '$pseudo', '$mail', '$pass5','$clef', '0', '', '$date', '$ip', '0', '0', '', '', '$date')";

$execution = mysql_query($requete);

Merci beaucoup de votre aide :)
 
WRInaute accro
- htmlspecialchars() en lieu et place de mysql_real_escape_string() pr échapper les données envoyées à MySQL, donc on px passer à 1=1 ta query "SELECT * from users where email='$mail'" (renseignes toi sur les injections SQL).
- mot de passe juste en md5() sans salt 8O
- Redirection en JS, le code PHP en dessous risque de s'exécuter qd même.
 
Discussions similaires
Haut