Aller au contenu

Modification valeur de $_GET mais marche quand meme


Sujets conseillés

Posté

Bonjour,

J'ai un problème, j'ai fais un script de vérification pour une inscription, il marche impec. Mais genre si je modifie dans le lien une des valeurs, le script s'exécute quand meme et insère dans la base de donnée une ligne vide.

Comment remédier à ca ?

Merci d'avance

Mon code source :

<?php
session_start();
$titre = "Vérification de votre inscription";
$description = "Vérification de votre inscription";
include("includes/haut.php");
include("includes/info.php");
mysql_connect($adresse, $nom, $motdepasse);
mysql_select_db($database);

if (isset($_GET['id']) AND isset($_GET['action']) AND $_GET['action'] == "yes" AND isset($_GET['d']) AND strlen($_GET['d'] != 40))
{
$id = (int) $_GET['id'];
$d = mysql_real_escape_string($_GET['d']);
$quete = mysql_query("SELECT * FROM validation WHERE id_client='{$id}'");
$connexion = mysql_fetch_array($quete);

if ($d = sha1($connexion['email']))
{
$id = $connexion['id_client'];
$civilite = $connexion['civilite'];
$adresse = $connexion['adresse'];
$ville = $connexion['ville'];
$codepostal = $connexion['codepostal'];
$email = $connexion['email'];
$mdp = $connexion['mdp'];
$nomprenom = $connexion['nomprenom'];
$telephone = $connexion['telephone'];
$telecopie = $connexion['telecopie'];
$portable = $connexion['portable'];
$jour = $connexion['jour_naissance'];
$mois = $connexion['mois_naissance'];
$annees = $connexion['annees_naissance'];
$entreprise = $connexion['entreprise'];
$to = $email;
$array = explode(' ', $nomprenom);
$nom = $array[0];
$prenom = $array[1];



mysql_query('INSERT INTO client(id_client, civilite, nomprenom, adresse, ville, codepostal, email, mdp, telephone, portable, telecopie, jour_naissance, mois_naissance, annees_naissance, entreprise)
VALUES ("'.$id.'" , "'.$civilite.'" , "'.$nomprenom.'" , "'.$adresse.'" , "'.$ville.'" , "'.$codepostal.'", "'.$email.'" ,
"'.$mdp.'" , "'.$telephone.'" , "'.$portable.'" , "'.$telecopie.'", "'.$jour.'", "'.$mois.'", "'.$annees.'", "'.$entreprise.'") ') or die(mysql_error());

mysql_query('INSERT INTO livraison (id_client, adr_liv_1, code_liv_1, ville_liv_1, nom_1, prenom_1, entreprise_1) VALUES ("'.$id.'", "'.$adresse.'", "'.$codepostal.'", "'.$ville.'", "'.$nom.'", "'.$prenom.'", "'.$entreprise.'" ) ') or die(mysql_error());
mysql_query('INSERT INTO facturation (id_client, nom, prenom, adresse, code, ville, entreprise) VALUES ("'.$id.'", "'.$nom.'", "'.$prenom.'", "'.$adresse.'", "'.$codepostal.'", "'.$ville.'", "'.$entreprise.'" ) ') or die(mysql_error());



mysql_query("DELETE FROM validation WHERE id_client='$id'");


echo ' Merci '.stripslashes(htmlspecialchars($nomprenom)).'. Votre inscription est maintenant finalisée. <br/>
Vous pouvez maintenant utiliser votre compte .';


}

else
{
echo' Vous devez d\'abord vous inscrire.';
}
}

else
{
echo' Vous avez dû vous tromper de page, <a href="./index.php">cliquez-ici pour retournez à l\'accuel</a>';
}
include("includes/bas.php");
?>

Posté (modifié)

Bonjour,

J'ai testé ta première condition qui, comme tu l'as dit, fonctionne à merveille. J'ai essayé de mettre une autre valeur que yes dans ?action= et ça m'a bloqué le script. Que souhaites-tu vérifier au juste ?

Cependant, il y a une erreur dans la seconde...

Dans ton code:


if($d = sha1($connexion['email']))

Le signe d'égalité n'est pas un simple = mais == (erreur courante que je fais très souvent :P). Voilà le code corrigé.


<?php
session_start();
$titre = "Vérification de votre inscription";
$description = "Vérification de votre inscription";
include("includes/haut.php");
include("includes/info.php");
mysql_connect($adresse, $nom, $motdepasse);
mysql_select_db($database);

if (isset($_GET['id']) AND isset($_GET['action']) AND $_GET['action'] == "yes" AND isset($_GET['d']) AND strlen($_GET['d'] != 40))
{
$id = (int) $_GET['id'];
$d = mysql_real_escape_string($_GET['d']);
$quete = mysql_query("SELECT * FROM validation WHERE id_client='{$id}'");
$connexion = mysql_fetch_array($quete);

if($d == sha1($connexion['email']))
{
$id = $connexion['id_client'];
$civilite = $connexion['civilite'];
$adresse = $connexion['adresse'];
$ville = $connexion['ville'];
$codepostal = $connexion['codepostal'];
$email = $connexion['email'];
$mdp = $connexion['mdp'];
$nomprenom = $connexion['nomprenom'];
$telephone = $connexion['telephone'];
$telecopie = $connexion['telecopie'];
$portable = $connexion['portable'];
$jour = $connexion['jour_naissance'];
$mois = $connexion['mois_naissance'];
$annees = $connexion['annees_naissance'];
$entreprise = $connexion['entreprise'];
$to = $email;
$array = explode(' ', $nomprenom);
$nom = $array[0];
$prenom = $array[1];

mysql_query('INSERT INTO client(id_client, civilite, nomprenom, adresse, ville, codepostal, email, mdp, telephone, portable, telecopie, jour_naissance, mois_naissance, annees_naissance, entreprise) VALUES ("'.$id.'" , "'.$civilite.'" , "'.$nomprenom.'" , "'.$adresse.'" , "'.$ville.'" , "'.$codepostal.'", "'.$email.'" ,
"'.$mdp.'" , "'.$telephone.'" , "'.$portable.'" , "'.$telecopie.'", "'.$jour.'", "'.$mois.'", "'.$annees.'", "'.$entreprise.'") ') or die(mysql_error());
mysql_query('INSERT INTO livraison (id_client, adr_liv_1, code_liv_1, ville_liv_1, nom_1, prenom_1, entreprise_1) VALUES ("'.$id.'", "'.$adresse.'", "'.$codepostal.'", "'.$ville.'", "'.$nom.'", "'.$prenom.'", "'.$entreprise.'" ) ') or die(mysql_error());
mysql_query('INSERT INTO facturation (id_client, nom, prenom, adresse, code, ville, entreprise) VALUES ("'.$id.'", "'.$nom.'", "'.$prenom.'", "'.$adresse.'", "'.$codepostal.'", "'.$ville.'", "'.$entreprise.'" ) ') or die(mysql_error());

mysql_query("DELETE FROM validation WHERE id_client='$id'");


echo ' Merci '.stripslashes(htmlspecialchars($nomprenom)).'. Votre inscription est maintenant finalisée. <br/> Vous pouvez maintenant utiliser votre compte .';
}
else
{
echo' Vous devez d\'abord vous inscrire.';
}
}

else
{
echo 'Vous avez dû vous tromper de page, <a href="./index.php">cliquez-ici pour retournez à l\'accuel</a>';
}
include("includes/bas.php");
?>

J'espère n'avoir rien raté d'autre...

Luan.

PS: Pense à indenter ton code... ça aide.

Modifié par Luan
Posté (modifié)

Alors pour l'indentation c'est quel bouton qu'il faut utiliser, c'est bien lui ["code]

Alors je souhaite vérifier le $d, le $d c'est en faite le sha1 de l'email.

Ok merci beaucoup pour l'aide.

Modifié par damienmou

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...