Webmaster Hub: Modification valeur de $_GET mais marche quand meme - Webmaster Hub

Aller au contenu

Page 1 sur 1
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

Modification valeur de $_GET mais marche quand meme Noter : -----

#1 L'utilisateur est hors-ligne   ruoyu 

  • Groupe : Actif
  • Messages : 20
  • Inscrit(e) : 27-janvier 10
  • Genre:Indefini

Posté 12 mars 2010 - 17:33

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");
?>


0

#2 L'utilisateur est hors-ligne   Luan 

  • Groupe : Actif
  • Messages : 25
  • Inscrit(e) : 28-février 10
  • Genre:Homme
  • Localisation:Genève

Posté 13 mars 2010 - 16:46

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.

Ce message a été modifié par Luan - 13 mars 2010 - 16:46.

0

#3 L'utilisateur est hors-ligne   ruoyu 

  • Groupe : Actif
  • Messages : 20
  • Inscrit(e) : 27-janvier 10
  • Genre:Indefini

Posté 13 mars 2010 - 18:06

Alors pour l'indentation c'est quel bouton qu'il faut utiliser, c'est bien lui ["code][/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.

Ce message a été modifié par damienmou - 13 mars 2010 - 18:07.

0

Partager ce sujet :


Page 1 sur 1
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

1 utilisateur(s) en train de lire ce sujet
0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)