Wamp 2.0 vers wamp 2.5, mysql vers mysqli, problème de requete

Fermé
perdudanswamp2.5 Messages postés 4 Date d'inscription samedi 20 septembre 2014 Statut Membre Dernière intervention 20 septembre 2014 - 20 sept. 2014 à 19:00
perdudanswamp2.5 Messages postés 4 Date d'inscription samedi 20 septembre 2014 Statut Membre Dernière intervention 20 septembre 2014 - 20 sept. 2014 à 21:58
Bonjour à tous, mon cerveau est un peu en ébullition mais je vais essayer d'être bref et claire.

Je développe un site en PHP classique mais un amis ma démonter les failles de sécurité de celui-ci. J'ai donc décider de monter en version et de passer de wamp 2.0 à wamp 2.5
(conséquence monter en version de PHP, Apache et Mysql)

Bref voici un morceau de code "ancienne version" suivis du code "nouvelle version"
je passe donc tout les mysql par des mysqli sans oublier de rajouter les arguments ou de les inverser quand c'est nécessaire.

<?
include_once("header.php");
//dans mon header on retrouve un include de ma page spl.php avec les identifiants etc..


if ($login<>"") {


function html ($val) {
return addslashes(stripslashes($val));
}

$req0 = "SELECT email FROM z_mail WHERE email = '" . html($email) . "'";
$rub = mysql_query($req0, $connexion);
$nbr = mysql_num_rows($rub);
$req1 = "SELECT login FROM accounts WHERE login = '" . html($login) . "'";
$rub1 = mysql_query($req1, $connexion);
$nbr1 = mysql_num_rows($rub1);
if ($nbr >= 1)
{
$resultat = '<span style="color:red">Ce mail est deja utilise.</span>';
}
else if ($nbr1 >= 1)
{
$resultat = '<span style="color:red">Ce pseudo est deja utilise.</span>';
}
else
{
$req00 = "INSERT INTO z_mail (login, email) VALUES ('" . html($login) . "', '" . html($email) . "')";
mysql_query($req00, $connexion);

$pass1 = base64_encode(pack('H*', sha1($pass1)));
$req2 = "INSERT INTO accounts (login, password, lastactive, accessLevel, lastIP, lastServer) VALUES ('" . html($login) . "', '" . html($pass1) . "', '', '0', '', '')";
mysql_query($req2, $connexion);

$resultat ='<span style="color:green">Votre compte a bien ete enregistre;. Bon jeu !</span>';

}
mysql_close();
}

?>


<div id="contenu">

<div id="text">

<table>
<td style="color:green; font-size:20px; height:10px">Gestionnaire de comptes</td>
<td width="500" align="right"><?echo $resultat;?></td>
</table>
<p style="color:green; font-size:14px; height:10px">Créez votre compte \ <a href="changepass.php" style="color:#F90; font-size:12px">
<font onmouseover="this.style.color='red'" onmouseout="this.style.color='#F90'">Changez votre mot de passe</font></a></p><br />


<form name="formulaire" method="post" action="compte.php" id="formulaire">
<table cellpadding="0" cellspacing="5px" border="0" width="400px" align="center">
<tr>
<td align="right">Login :</td>
<td align="left"><input name="login" type="text" class="validate[required,custom[noSpecialCaracters]]" id="login"/></td>
</tr>
<tr>
<td align="right">Email :</td>
<td align="left"><input name="email" type="text" class="validate[required,custom[email]]" id="email"/></td>
</tr>
<tr>
<td align="right">Mot de passe :</td>
<td align="left"><input name="pass1" type="password" class="validate[required,custom[noSpecialCaracters]]]" id="pass1"/></td>
</tr>
<tr>
<td align="right">Retapez le mot de passe :</td>
<td align="left"><input name="pass2" type="password" class="validate[required,confirm[pass1]]" id="pass2"/></td>
</tr>
</table>
<p><center><input type="checkbox" class="validate[required] checkbox" name="reglement" id="reglement" value="ok" onClick="ChangeStatut(this.form<?php echo $lang;?>)" /><br> J'accepte le règlement.</p>
<p><input type="submit" name="submit" value=" S'enregister " onClick="validation();" "/></p></center>
</form>

</div>

</div>


Et la partie modifier en mysqli ci-dessous (cela ne fonctionne pas mais je n'ai pas d'erreur non plus). J'ai tenter de retirer certaine fonction j'arrive a écrire dans la BDD mais cela met des champs vide.

if ($login<>"") {


function html ($val) {
return addslashes(stripslashes($val));
}

$req0 = "SELECT email FROM zz_mail WHERE email = '" . html($email) . "'" ;
$rub = mysqli_query($connexion, $req0);
$nbr = mysqli_num_rows($rub);
$req1 = "SELECT login FROM accounts WHERE login = '" . html($login) . "'" ;
$rub1 = mysqli_query($connexion, $req1);
$nbr1 = mysqli_num_rows($rub1);
if ($nbr >= 1)
{
$resultat = '<span style="color:red">Ce mail est déjà utilisé.</span>';
}
else if ($nbr1 >= 1)
{
$resultat = '<span style="color:red">Ce pseudo est déjà utilisé.</span>';
}
else
{
$req00 = "INSERT INTO zz_mail (login, email) VALUES ('" . html($login) . "', '" . html($email) . "')";
mysqli_query($connexion, $req00);

$pass1 = base64_encode(pack('H*', sha1($pass1)));
$req2 = "INSERT INTO accounts (login, password, lastactive, accessLevel) VALUES ('" . html($login) . "', '" . html($pass1) . "', '', '0')";
mysqli_query($connexion, $req2);

$resultat ='<span style="color:green">Votre compte a bien été enregistré. Bon jeu !</span>';

}
mysqli_close($connexion);
}

je ne comprend pas pourquoi cela ne marche pas, je n'ai pas toucher au formulaire car il n'y a rien a toucher dessus normalement, c'est donc un problème de fonction qui été gérer en mysql et non en mysqli ou un changement d'écriture.. je suis perdu

Help ^^
A voir également:

1 réponse

perdudanswamp2.5 Messages postés 4 Date d'inscription samedi 20 septembre 2014 Statut Membre Dernière intervention 20 septembre 2014
20 sept. 2014 à 21:58
Je viens de rajouter se bout de code a la fin et il me retourne bien la ligne sur le site.

		else	
{
$resultat = '<span style="color:red">la création des comptes ne fonctionne pas pour le moment</span>';
}

En gros si le champ login est vide il retourne ce résultat.. donc il passe au travers de mes requêtes ? mais elle sont exécuter lorsque je clic sur le bouton normalement , non ?
0