adresse valide dans un formulaire

Discutez ici à propos de la conception de pages ou sites web, de la configuration de serveurs, des langages Html, Php, Flash ...
Scanner Windows pour détecter les erreurs de registre

Ce que nous vous conseillons :

1. Lisez les réponses ci-dessous où vous trouverez des conseils et de l'aide de la part des autres utilisateurs.

2. Avant de faire des modifications sur votre système ou d'installer des logiciels, nous vous recommandons
    fortement de cliquer ici pour scanner Windows afin de détecter les erreurs de registre.



Messagepar cool_angevelu » 10 Nov 2005, 21:02

Bonjour à tous ,

mon soucis est celui ci;
J'ai créer sur mon site web un formulaire d'inscription pour une LAN, avec les champs suivant;
pseudo
team
nom
prenom
adresse email
jeux 1
jeux 2
etc...
Je viens de me faire attaquer par un gus qui avec un petit programe ou je ne sais quel moyen, m'as pollué ma base de données Msql et ma liste d'inscriptions avec plus de 1500 inscriptions factices.

Il me semble que j'ai une faille notament dans le champ des adresses mail à remplir, car ici , on peut mettre n'importe quoi, car je ne sais pas comment obligé les gens à mettre une adresse valide dans ce champs, je m'explique;
il suffit au minimum de mettre une ou deux lettres dans le champs " email" pour que l'inscription fonctionne,donc évidement c'est tres facile.

Peut on soit, obliger de mettre un adresse comportant au moins un @ , à defaut un message d'erreur empeche l'inscription?
Soit bannir un pesudo, email, ou IP d'un formulaire ?

Merci
cool_angevelu
 

Messagepar Thanatos » 11 Nov 2005, 01:03

hoo oui. tu fait ca en quoi PHP ? si oui alors :

Déja valider l'email c'est simple... verifier que dans la chaine il y ait "@" et après cet "@" un "." et vérifier qu'il n'y ai pas de characteres exotique..
Une fonction jolie expression réguliere te fera cela

function EmailOK($email) {
return (ereg('^[-!#$%&'*+\./0-9=?A-Z^_`a-z{|}~]+'.
'@'.
'[-!#$%&'*+\/0-9=?A-Z^_`a-z{|}~]+.'.
'[-!#$%&'*+\./0-9=?A-Z^_`a-z{|}~]{2,3}$',
$email));
}


ensuite tu peut logger l'ip du quidam et lui dire non tu t'est déja enregistré cette semaine s'il revient... en php c'est la variable

$HTTP_SERVER_VARS[REMOTE_ADDR]

mais le fin du fin, c'est le Gif généré au vol qui affiche une sequence lettre chiffre que l'humain doit lire et taper...là tu est quasiment sur que le robot ne passe pas. il y a cela dans de nombreuses page d'inscriptions msn etc etc

ex : http://www.trollprod.org/images/code.gif
Every One has his own day to DIe....
Thanatos
 
Messages: 274
Inscrit le: 29 Mai 2002, 21:11
Localisation: Devant Mon Clavier

Messagepar cool_angevelu » 12 Nov 2005, 13:26

le formulaire d'inscription est en Html, avec un java script contactform pour le retour des messsages d'erreurs.

Et l'envoi sur la base de donnée passe par une page inscription_form.php avec un retour par mail sur ma boite mail.

Alors n'etant lieu de là un veritable connaisseur , faut il juste inserer la fonction emailOK dans la page php form ?
ou remplacer le champs $EMAIL par cette fonction ?

pour plus de précision voici ma page php

function SendData(){


/* ENVOYER VERS BASE DE DONNEES */


If (Isset($_REQUEST["CS16"])){
$test01 = $_REQUEST["CS16"];
$CS16 = implode(", ", $test01);
}
Else {
$CS16 = "-";
}

If (Isset($_REQUEST["UT"])){
$test02 = $_REQUEST["UT"];
$UT = implode(", ", $test02);
}
Else {
$UT = "-";
}
If (Isset($_REQUEST["WARIII"])){
$test03 = $_REQUEST["WARIII"];
$WARIII = implode(", ", $test03);
}
Else {
$WARIII = "-";
}
If (Isset($_REQUEST["AOE"])){
$test04 = $_REQUEST["AOE"];
$AOE = implode(", ", $test04);
}
Else {
$AOE = "-";
}
If (!Isset($_REQUEST["team"])){
$TEAM = "neant";
}
Else {
$TEAM = str_replace("'", "''", $_REQUEST["team"]);
}
If (!Isset($_REQUEST["pseudo"])){
$PSEUDO = "-";
}
Else {
$PSEUDO = str_replace("'", "''", $_REQUEST["pseudo"]);
}
If (!Isset($_REQUEST["jeupc_autre"])){
$JEUPC_AUTRE = "-";
}
Else {
$JEUPC_AUTRE = str_replace("'", "''", $_REQUEST["jeupc_autre"]);
}


$NOM = str_replace("'", "''", $_REQUEST["nom"]);
$PRENOM = str_replace("'", "''", $_REQUEST["prenom"]);
$EMAIL = str_replace("'", "''", $_REQUEST["email"]);
$LOCALITE = str_replace("'", "''", $_REQUEST["localite"]);
$DATE = date("Y-m-d");

}


$MySQL = "INSERT INTO LANT (ID, PSEUDO, NOM, PRENOM, EMAIL, LOCALITE, TEAM, CS16, UT, WARIII, AOE, JEUPC_AUTRE, DATE)".
" VALUES (NULL, '".$PSEUDO."', '".$NOM."', '".$PRENOM."', '".$EMAIL."', '".$LOCALITE."', '".$TEAM."', '".$CS16."', '".$UT."', '".$WARIII."', '".$AOE."', '".$JEUPC_AUTRE."', '".$DATE."');";

$query = mysql_query($MySQL) or die (mysql_error());



/* ENVOYER EGALEMENT UN MAIL */

$to = "xxx@.com";
$subject = "Inscription LAN ";
$message = "
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">n
<html>
<head>
<title>Inscription LAN</title>
</head>
<body bgcolor=#FFFFFF>
<font face=verdana size=1 color=#003366>
<b>".$NOM." a remplit le formulaire</b><br><br>
- Nom:   <i>".$NOM."</i><br>
- Prenom:   <i>".$PRENOM."</i><br>
- Pseudo   <i>".$PSEUDO."</i><br>
- Team:   <i>".$TEAM."</i><br>
- Localite:   <i>".$LOCALITE."</i><br>
- Jeux PC souhaites:   <i>".$CS16."</i><br>
- Jeux PC souhaites:   <i>".$UT."</i><br>
- Jeux PC souhaites:   <i>".$WARIII."</i><br>
- Jeux PC souhaites:   <i>".$AOE."</i><br>
- Suggestion jeu PC:   <i>".$JEUPC_AUTRE."</i><br>
</font>
</body>
</html>";

$headers = "MIME-Version: 1.0n";
$headers .= "Content-Type: text/html; charset=iso-8859-1n";
$headers .= "From: " . $NOM . "<" . $EMAIL . ">n";



mail($to, $subject, $message, $headers);
echo("<br><br><br><center><b>Votre inscription a été envoyée</b></center><br><br><br>");

}
?>
cool_angevelu
 


Retour vers Le développement de sites Web

Qui est en ligne ?

Utilisateurs parcourant actuellement ce forum : Aucun utilisateur inscrit et 2 invités

  •  Liens commerciaux