J'aurais besoin d'aide pour l'amélioration d'un script au niveau de la sécurité ou si vous voyez d'autres choses dite le moi^^.
Et si vous avez le temps m'aider a faire une vérification par mail avant de changer le mot de passe de la personne en utilisant un lien dans le mail pour activer la modification.
Je vous met aussi le script en Quote.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
<html>
<head>
<title>Site.com</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
 
<body>
<?php
$login = "root";
$dbpass = "pass";
$db = "login";
$host = "localhost";
$nb_faux = 0;
@mysql_connect($host, $login, $dbpass) or die("<b><font color='red'>Connexion au serveur impossible.<br/>Contactez le webmaster si le problème n'est pas résolu.<br/></font></b>" );
if (isset($_POST['Email']) AND isset($_POST['Login']))
{
$emailmember = ($_POST['Email']);
$loginmember = ($_POST['Login']);
 
}
if (empty($_POST['Email']) || empty($_POST['Login']))
{
$error = $error."<font color='red'><b><br/>Champs non remplis</b><br/></font>";
$nb_faux++;
}
// incrementer la variable $nb_faux si des caracteres ne sont pas autorisés pour le pseudo
$atom = '`^(\W{3,15})$`'; // caractères autorisés (entre crochets)
// on autorise a à z, A à Z, 0 à 9 et +-*_~°†éèàùç et une taille min/max 4/16 caractères
if (preg_match($atom, $emailmember))
{
$error = $error."<font color='red'><b><br/>Caractères non autorisés pour l'email</b><br/></font>";
$nb_faux++;
}
 
if (preg_match($atom, $loginmember))
{
$error = $error."<font color='red'><b><br/>Caractères non autorisés pour le pseudo</b><br/></font>";
$nb_faux++;
}
 
// incrementer la variable $nb_faux si le Logon et le mail existe dans la base de donnée
if ($nb_faux >= 0)
{
@mysql_select_db($db) or die("<b><font color='red'>Sélection de la base de donnée echouée. <br/>Contactez le webmaster si le problème n'est pas résolu.<br/></font></b>" );
$requete = "SELECT * FROM `login` WHERE userid='$loginmember' AND email='$emailmember'";
$resultat = mysql_query($requete) or die("<b><font color='red'>Exécution de la requête t1 impossible.<br/>Contactez le webmaster si le problème n'est pas résolu.<br/></font></b>" );
$ligne = mysql_num_rows($resultat);
//
//
if ($ligne == 0)
{
$error = $error."<font color='red'><b><br/>Ce coumple de Login et de Mails existe pas</b><br/></font>";
$nb_faux++;
}
}
 
?>
<br>
erreur<?php echo $error ?><br>
ligne<?php echo $ligne ?><br>
resulta<?php echo $resultat ?><br>
requette<?php echo $requete ?>
requette<?php echo $requete2 ?>
 
<form action="teste4.php" method="post">
<table width="200" border="1" align="center">
<tr>
<td width="89"><div align="right">EMAIL</div></td>
<td width="95"><input name="Email" type="text" size="22" maxlength="44"></td>
</tr>
<tr>
<td><div align="right">LOGIN</div></td>
<td><input name="Login" type="text" size="15" maxlength="22"></td>
</tr>
<tr>
<td colspan="2">
<p><input type="submit" value="Valider" /></p>
</td>
</tr>
</table>
</form>
 
</body>
</html>
<?php
$pointemail = strpos($emailmember,"." );
$arobaemail = strpos($emailmember,"@" );
$error = "";
$emailadmin = "villersm@hotmail.com";
 
settype($template, "string" );
$template = "0123456789abcdefghijkmnopqrstuvwxyz";
function GetRandomString($length) {
 
global $template;
 
settype($length, "integer" );
settype($rndstring, "string" );
settype($a, "integer" );
settype($b, "integer" );
 
for ($a = 0; $a <= $length; $a++) {
$b = rand(0, strlen($template) - 1);
$rndstring .= $template[$b];
}
 
return $rndstring;
 
}
 
$passwd1 = GetRandomString(6);
$passwd2= md5($passwd1);
 
 
 
mysql_connect('localhost','root','pass') OR die;
 
mysql_select_db('login') OR die(mysql_error());
 
 
$requete = mysql_query('SELECT * FROM `login` WHERE userid = "'.$loginmember.'" AND email="'.$emailmember.'"') OR die(mysql_error());
$requete2 = mysql_query('UPDATE `login` SET `user_pass` = "'.$passwd2.'" WHERE userid = "'.$loginmember.'" AND email="'.$emailmember.'"') OR die(mysql_error());
 
if(mysql_num_rows($requete)== 1)
{
$result=mysql_fetch_array($requete);
$passmember = $result['user_pass'];
$subjectmember = "Les Informations de votre compte";
$textmember = "Bonjour,

Voici les information de votre compte :
Email : $emailmember
Login : $loginmember
pass : $passwd1
pass-sql : $passwd2

Keep your informations secret to avoid account theft, because then you won't be abble to access Site.com !

Have a wonderfull day ! ;)

Site.com support team.";
 
@mail("$emailmember", $subjectmember, $textmember, "FROM: $emailadmin" );
 
}
 
?>