Page 1 sur 2

Problème double enregistrement

Posté : 05 avr. 2010, 10:34
par spidercrash
bonjour a tous,

J'ai un formulaire d'ajout d'annonce avec photo, j'ai effectué deux script differrent un pour ajouter l'annonce et l'autre pour mettre une photo ensuite j'ai combiné les deux script.
Le problème cela n'est pas bon il me semble qu'il faudrait que j'utilise des If mais je ne voit pas ou les placer.
Deplus le code fait lourd je pence qu'il y a moyen de l'alleger

Voici mon code :
<?php
// Fonction pour parser les variables vers FLASH 
function Parse($variable,$valeur) { 
echo "&" . $variable . "=" . utf8_encode($valeur);
}


$categorie=$_POST['categorie']; 
$typeannonce=$_POST['typeannonce'];
$souscategorie=$_POST['souscategorie'];
$titreannonce=$_POST['titreannonce'];
$descriptionannonce=$_POST['descriptionannonce'];
$prix=$_POST['prix'];

$departement=$_POST['departement'];
$region=$_POST['region'];

$NOMUTILISATEURS=$_POST['NOMUTILISATEURS'];
$MAILUTILISATEURS=$_POST['MAILUTILISATEURS'];
$MDP=$_POST['MDP'];
$MDPBIS=$_POST['MDPBIS'];
$TELEPHONE=$_POST['TELEPHONE'];




//Fontion "decoder" (facultative)
function decoder($texte){
	$texte = utf8_decode($texte);
      /*$texte = stripslashes($texte);
	$texte = trim($texte);
	$texte = htmlentities($texte, ENT_QUOTES);
	$texte = strip_tags($texte);
	$texte = nl2br($texte);
	$texte = str_replace(">", ">", $texte);
	$texte = str_replace("<", "<", $texte);*/
		
		 
        
        $texte = str_replace("%","%25",$texte); 
        $texte = str_replace("!","%21",$texte); 
        $texte = str_replace("\"","%22",$texte); 
        $texte = str_replace("#","%23",$texte); 
        $texte = str_replace("\$","%24",$texte); 
        $texte = str_replace("&","%26",$texte); 
        $texte = str_replace("'","%27",$texte); 
        $texte = str_replace("(","%28",$texte); 
        $texte = str_replace(")","%29",$texte); 
        $texte = str_replace("*","%2A",$texte); 
        $texte = str_replace("+","%2B",$texte);               
        $texte = str_replace("<","%3C",$texte); 
        $texte = str_replace("=","%3D",$texte); 
        $texte = str_replace(">","%3E",$texte); 
        $texte = str_replace("?","%3F",$texte);         
        $texte = str_replace("[","%5B",$texte); 
        $texte = str_replace("]","%5D",$texte); 
        $texte = str_replace("^","%5E",$texte);          
        $texte = str_replace("`","%60",$texte); 
        $texte = str_replace("{","%7B",$texte); 
        $texte = str_replace("|","%7C",$texte); 
        $texte = str_replace("}","%7D",$texte); 
        $texte = str_replace("~","%7E",$texte); 
        $texte = str_replace("¢","%A2",$texte); 
        $texte = str_replace("£","%A3",$texte); 
        $texte = str_replace("¥","%A5",$texte); 
        $texte = str_replace("|","%A6",$texte); 
        $texte = str_replace("§","%A7",$texte); 
        $texte = str_replace("«","%AB",$texte); 
        $texte = str_replace("¬","%AC",$texte); 
        $texte = str_replace("¯","%AD",$texte); 
        $texte = str_replace("º","%B0",$texte); 
        $texte = str_replace("±","%B1",$texte); 
        $texte = str_replace("ª","%B2",$texte);        
        $texte = str_replace("µ","%B5",$texte); 
        $texte = str_replace("»","%BB",$texte); 
        $texte = str_replace("¼","%BC",$texte); 
        $texte = str_replace("½","%BD",$texte); 
        $texte = str_replace("¿","%BF",$texte); 
	return $texte;
}	

$categorie = decoder($categorie);
$typeannonce = decoder($typeannonce);
$souscategorie = decoder($souscategorie);
$titreannonce = decoder($titreannonce);
$descriptionannonce = decoder($descriptionannonce);
$prix = decoder($prix);
$departement = decoder($departement);
$region = decoder($region);

$NOMUTILISATEURS = decoder($NOMUTILISATEURS);
$MAILUTILISATEURS = decoder($MAILUTILISATEURS);
$MDP = decoder($MDP);
$TELEPHONE = decoder($TELEPHONE);

if($_POST['MDP'] == $_POST['MDPBIS']){
  // traitement


//ici on commence avec les requêtes MySQL pour vérifier dans la table

include ('connect.php');//ici on inclut le fichier avec l'accès MySQL.
$crypt=md5($MDP);

$sql = "SELECT * FROM utilisateurs WHERE MAILUTILISATEURS = '$MAILUTILISATEURS'";//On sélectionne dans la table "UTILISATEUR" le login qui a pour valeur la variable "$login" 
    $req = mysql_query($sql)or die(mysql_error());   
    $result = mysql_numrows($req);// on compte le nombre de résultats 

    if($result!=0)  // le login existe déjà
        { 
        Parse("resultat","email '$MAILUTILISATEURS' existe deja, desole"); //alors on renvoi au Flash que le login '$MAILUTILISATEURS' existe déjà
        } 
    else  //sinon le login n'existe pas  
        {
		
        $sql = "INSERT INTO utilisateurs (NOMUTILISATEURS,MAILUTILISATEURS,MDP,TELEPHONE) VALUES ('$NOMUTILISATEURS','$MAILUTILISATEURS','$crypt','$TELEPHONE')"; //Alors on insert dans la table le nouvel utilisateur		
		mysql_query ($sql);
		$NUMUTILISATEURS=mysql_insert_id();
			$sql2 = "INSERT INTO annonces (categorie,typeannonce,souscategorie,titreannonce,descriptionannonce,prix,date,departement,region,NUMUTILISATEURS) VALUES ('$categorie','$typeannonce','$souscategorie','$titreannonce','$descriptionannonce','$prix','".date("Y-m-d H:i:s")."','$departement','$region','$NUMUTILISATEURS')";
			$req = mysql_query($sql2)or die(mysql_error()); 			
			
  	Parse("resultat","merci $MAILUTILISATEURS, vous etes a present enregistre et votre annonce est enregistré");
        }
		
} else {
  echo("Le Mot de passe est different du premier.");
}		

		$dossier = 'Images/';
        $maxsize = '1048576';
        $maxwidth = '2000';
        $maxheight = '2000';
		$compteur +=1;

        if ($_FILES['icone']['error'] > 0)
        {
                echo 'Erreur lors du transfert';
        }
        else
        {
                if ($_FILES['icone']['size'] > $maxsize)
                {
                        echo 'Le fichier est trop gros';
                }
                else
                {
                        $extensions_valides = array('jpg','jpeg','gif','png');
                        $extension_upload = strtolower(  substr(  strrchr($_FILES['icone']['name'], '.'),1));
                       
                        if (in_array($extension_upload,$extensions_valides))
                        {
                                $image_sizes = getimagesize($_FILES['icone']['tmp_name']);
                               
                                if (!$image_sizes[0] > $maxwidth OR $image_sizes[1] > $maxheight)
                                {
                                        echo 'Image trop grande';
                                }
                                elseif (file_exists($dossier . $_FILES['icone']['name']))
                                {
                                       echo 'Le nom de votre photo éxiste déjà merci de la renommer';
                                }
                                else
                                {
                                        $nom = "{$_FILES['icone']['name']}";
                                        $resultat = move_uploaded_file($_FILES['icone']['tmp_name'],$dossier.$nom);     if ($resultat)
                                        {
                                                echo 'Transfert réussi';
                                                mysql_connect("aaaa", "aaaa", "aaaaaaaaaa");
                                                mysql_select_db("aaaaa");
                                               
                                                $nom = mysql_real_escape_string($nom);
                        $image = $dossier.$nom;
                        $description = mysql_real_escape_string($_POST['description']);
                                               
                        mysql_query("INSERT INTO images VALUES('','" . $nom . "', '" . $description. "', '" . $image . "')");
                                        }
                                        else
                                        {
                                                echo 'Echec du transfert';
                                        }
                                }
                        }
                        else
                        {
                                echo 'Extension incorect';
                        }
                }
        }		
		

?>

merci de votre aide

Re: Problème double enregistrement

Posté : 05 avr. 2010, 10:57
par Aureusms
C'est ici que cela te pose problème ?
$sql = "INSERT INTO utilisateurs (NOMUTILISATEURS,MAILUTILISATEURS,MDP,TELEPHONE) VALUES ('$NOMUTILISATEURS','$MAILUTILISATEURS','$crypt','$TELEPHONE')"; //Alors on insert dans la table le nouvel utilisateur        
                mysql_query ($sql);
                $NUMUTILISATEURS=mysql_insert_id();
                        $sql2 = "INSERT INTO annonces (categorie,typeannonce,souscategorie,titreannonce,descriptionannonce,prix,date,departement,region,NUMUTILISATEURS) VALUES ('$categorie','$typeannonce','$souscategorie','$titreannon...

Re: Problème double enregistrement

Posté : 05 avr. 2010, 11:04
par spidercrash
Pourquoi cela pose t'il problème sachant que le formulaire marche bien me manque t'il des éléments ?

Re: Problème double enregistrement

Posté : 05 avr. 2010, 12:30
par Dr@ke
Bonjour,
Bon il y a surement pas mal de petites choses, mais pas forcément évident de s'y retrouver.

Si je me rappelle bien et ne me trompe pas, tu te sers de la variable $NUMUTILISATEURS pour tes sessions...
Donc ceci:
$NUMUTILISATEURS=mysql_insert_id();
Je me demande si cela ne serait pas mieux pour pleins de petites de choses, de le remplacer par:
$NUMUTILISATEURS = $MAILUTILISATEURS;
Maintenant, il faudrait surement modifier ce champ de ta table, pour qu'il accepte un autre type de valeur, et il y a aussi un risque de bugs avec des valeurs déjà existantes...
Tout dépend si tu as déjà des utilisateurs et des annonces enregistrés dans ta BD...

Donc ce n'est pas forcément un bon conseil que je te donne là vue les risques de possibles bugs, mais c'est un élément qui me dérange un peu :wink:
Car le seul élément que tu peux te fier ensuite, c'est le mail de l'utilisateur, que se soit pour les sessions, pour les annonces, pour aussi rendre compatible tes deux tables, ne pas gêner l'ajout de nouvelles annonces...

Re: Problème double enregistrement

Posté : 05 avr. 2010, 12:37
par spidercrash
Bonjour,
Bon il y a surement pas mal de petites choses, mais pas forcément évident de s'y retrouver.

Si je me rappelle bien et ne me trompe pas, tu te sers de la variable $NUMUTILISATEURS pour tes sessions...
Donc ceci:
$NUMUTILISATEURS=mysql_insert_id();
Je me demande si cela ne serait pas mieux pour pleins de petites de choses, de le remplacer par:
$NUMUTILISATEURS = $MAILUTILISATEURS;
Maintenant, il faudrait surement modifier ce champ de ta table, pour qu'il accepte un autre type de valeur, et il y a aussi un risque de bugs avec des valeurs déjà existantes...
Tout dépend si tu as déjà des utilisateurs et des annonces enregistrés dans ta BD...

Donc ce n'est pas forcément un bon conseil que je te donne là vue les risques de possibles bugs, mais c'est un élément qui me dérange un peu :wink:
Je te remercie pour ta réponse cependant je souhaiterai garder mais champs tel quel :oops: , le script au dessus permet d'enregistrer l'utilisateur et d'ajouter sont annonce pour la première fois.si tu veut y jeter une coup d'œil http://www.logisdesannonces.fr/ajoutannonce.php.
donc pour le moment le principe de session n'est pas encore utilisé,cela se fera par la suite.
Effectivement j'ai déjà des utilisateurs enregistrés avec des annonces en cour.

Re: Problème double enregistrement

Posté : 05 avr. 2010, 12:53
par spidercrash
Oui c'est exact de se fait j'ai dans ma table annonces une clé étrangère qui reprend l'ID de l'utilisateur et cela fonctionne bien quand tu te loggue tu as tes annonces et si tu te loggue avec un autre compte tu as également tes annonces passé mais pas celle des autres utilisateurs

Re: Problème double enregistrement

Posté : 05 avr. 2010, 13:06
par Dr@ke
Ok , je complique surement les choses pour rien.

Sinon:
if($_POST['MDP'] == $_POST['MDPBIS']){
Remplace par:
if (!empty($_POST) && $_POST['MDP'] == $_POST['MDPBIS']){
Ensuite:
} else {
  echo("Le Mot de passe est different du premier.");
}
Déplace ceci tout à la fin, donc la fin sera comme ceci:
} else {
  echo("Le Mot de passe est different du premier.");
}
?>

Re: Problème double enregistrement

Posté : 05 avr. 2010, 13:11
par spidercrash
Donc j'ai éffectué se que tu ma dit j'obtient cela

&resultat=merci toto, vous etes a present enregistre et votre annonce est enregistrÃ-Extension incorect

Il enregistre bien l'utilisateur et l'annonce mais il mentionne que la photo est incorrect alors que c'est du jpg

voici donc le script total

deplus a deux moment je mentionne la connexion avec les paramétres de connexion je peut en supprimer un ?
<?php
// Fonction pour parser les variables vers FLASH 
function Parse($variable,$valeur) { 
echo "&" . $variable . "=" . utf8_encode($valeur);
}


$categorie=$_POST['categorie']; 
$typeannonce=$_POST['typeannonce'];
$souscategorie=$_POST['souscategorie'];
$titreannonce=$_POST['titreannonce'];
$descriptionannonce=$_POST['descriptionannonce'];
$prix=$_POST['prix'];

$departement=$_POST['departement'];
$region=$_POST['region'];

$NOMUTILISATEURS=$_POST['NOMUTILISATEURS'];
$MAILUTILISATEURS=$_POST['MAILUTILISATEURS'];
$MDP=$_POST['MDP'];
$MDPBIS=$_POST['MDPBIS'];
$TELEPHONE=$_POST['TELEPHONE'];

$dossier = 'Images/';
$maxsize = '1048576';
$maxwidth = '2000';
$maxheight = '2000';


//Fontion "decoder" (facultative)
function decoder($texte){
	$texte = utf8_decode($texte);
      /*$texte = stripslashes($texte);
	$texte = trim($texte);
	$texte = htmlentities($texte, ENT_QUOTES);
	$texte = strip_tags($texte);
	$texte = nl2br($texte);
	$texte = str_replace(">", ">", $texte);
	$texte = str_replace("<", "<", $texte);*/
		
		 
        
        $texte = str_replace("%","%25",$texte); 
        $texte = str_replace("!","%21",$texte); 
        $texte = str_replace("\"","%22",$texte); 
        $texte = str_replace("#","%23",$texte); 
        $texte = str_replace("\$","%24",$texte); 
        $texte = str_replace("&","%26",$texte); 
        $texte = str_replace("'","%27",$texte); 
        $texte = str_replace("(","%28",$texte); 
        $texte = str_replace(")","%29",$texte); 
        $texte = str_replace("*","%2A",$texte); 
        $texte = str_replace("+","%2B",$texte);               
        $texte = str_replace("<","%3C",$texte); 
        $texte = str_replace("=","%3D",$texte); 
        $texte = str_replace(">","%3E",$texte); 
        $texte = str_replace("?","%3F",$texte);         
        $texte = str_replace("[","%5B",$texte); 
        $texte = str_replace("]","%5D",$texte); 
        $texte = str_replace("^","%5E",$texte);          
        $texte = str_replace("`","%60",$texte); 
        $texte = str_replace("{","%7B",$texte); 
        $texte = str_replace("|","%7C",$texte); 
        $texte = str_replace("}","%7D",$texte); 
        $texte = str_replace("~","%7E",$texte); 
        $texte = str_replace("¢","%A2",$texte); 
        $texte = str_replace("£","%A3",$texte); 
        $texte = str_replace("¥","%A5",$texte); 
        $texte = str_replace("|","%A6",$texte); 
        $texte = str_replace("§","%A7",$texte); 
        $texte = str_replace("«","%AB",$texte); 
        $texte = str_replace("¬","%AC",$texte); 
        $texte = str_replace("¯","%AD",$texte); 
        $texte = str_replace("º","%B0",$texte); 
        $texte = str_replace("±","%B1",$texte); 
        $texte = str_replace("ª","%B2",$texte);        
        $texte = str_replace("µ","%B5",$texte); 
        $texte = str_replace("»","%BB",$texte); 
        $texte = str_replace("¼","%BC",$texte); 
        $texte = str_replace("½","%BD",$texte); 
        $texte = str_replace("¿","%BF",$texte); 
	return $texte;
}	

$categorie = decoder($categorie);
$typeannonce = decoder($typeannonce);
$souscategorie = decoder($souscategorie);
$titreannonce = decoder($titreannonce);
$descriptionannonce = decoder($descriptionannonce);
$prix = decoder($prix);
$departement = decoder($departement);
$region = decoder($region);

$NOMUTILISATEURS = decoder($NOMUTILISATEURS);
$MAILUTILISATEURS = decoder($MAILUTILISATEURS);
$MDP = decoder($MDP);
$TELEPHONE = decoder($TELEPHONE);

if (!empty($_POST) && $_POST['MDP'] == $_POST['MDPBIS']){
  // traitement


//ici on commence avec les requêtes MySQL pour vérifier dans la table

include ('connect.php');//ici on inclut le fichier avec l'accès MySQL.
$crypt=md5($MDP);

$sql = "SELECT * FROM utilisateurs WHERE MAILUTILISATEURS = '$MAILUTILISATEURS'";//On sélectionne dans la table "UTILISATEUR" le login qui a pour valeur la variable "$login" 
    $req = mysql_query($sql)or die(mysql_error());   
    $result = mysql_numrows($req);// on compte le nombre de résultats 

    if($result!=0)  // le login existe déjà
        { 
        Parse("resultat","email '$MAILUTILISATEURS' existe deja, desole"); //alors on renvoi au Flash que le login '$MAILUTILISATEURS' existe déjà
        } 
    else  //sinon le login n'existe pas  
        {
		
        $sql = "INSERT INTO utilisateurs (NOMUTILISATEURS,MAILUTILISATEURS,MDP,TELEPHONE) VALUES ('$NOMUTILISATEURS','$MAILUTILISATEURS','$crypt','$TELEPHONE')"; //Alors on insert dans la table le nouvel utilisateur		
		mysql_query ($sql);
		$NUMUTILISATEURS=mysql_insert_id();
			$sql2 = "INSERT INTO annonces (categorie,typeannonce,souscategorie,titreannonce,descriptionannonce,prix,date,departement,region,NUMUTILISATEURS) VALUES ('$categorie','$typeannonce','$souscategorie','$titreannonce','$descriptionannonce','$prix','".date("Y-m-d H:i:s")."','$departement','$region','$NUMUTILISATEURS')";
			$req = mysql_query($sql2)or die(mysql_error()); 			
			
  	Parse("resultat","merci $MAILUTILISATEURS, vous etes a present enregistre et votre annonce est enregistré");
        }
		
	

		
		

        if ($_FILES['icone']['error'] > 0)
        {
                echo 'Erreur lors du transfert';
        }
        else
        {
                if ($_FILES['icone']['size'] > $maxsize)
                {
                        echo 'Le fichier est trop gros';
                }
                else
                {
                        $extensions_valides = array('jpg','jpeg','gif','png');
                        $extension_upload = strtolower(  substr(  strrchr($_FILES['icone']['name'], '.'),1));
                       
                        if (in_array($extension_upload,$extensions_valides))
                        {
                                $image_sizes = getimagesize($_FILES['icone']['tmp_name']);
                               
                                if (!$image_sizes[0] > $maxwidth OR $image_sizes[1] > $maxheight)
                                {
                                        echo 'Image trop grande';
                                }
                                elseif (file_exists($dossier . $_FILES['icone']['name']))
                                {
                                       echo 'Le nom de votre photo éxiste déjà merci de la renommer';
                                }
                                else
                                {
                                        $nom = "{$_FILES['icone']['name']}";
                                        $resultat = move_uploaded_file($_FILES['icone']['tmp_name'],$dossier.$nom);     if ($resultat)
                                        {
                                                echo 'Transfert réussi';
                                                mysql_connect("aaaaa", "aaaaa", "aaaa");
                                                mysql_select_db("aaaa");
                                               
                                                $nom = mysql_real_escape_string($nom);
                        $image = $dossier.$nom;
                        $description = mysql_real_escape_string($_POST['description']);
                                               
                        mysql_query("INSERT INTO images VALUES('','" . $nom . "', '" . $description. "', '" . $image . "')");
                                        }
                                        else
                                        {
                                                echo 'Echec du transfert';
                                        }
                                }
                        }
                        else
                        {
                                echo 'Extension incorect';
                        }
                }
        }		
		
} else {
  echo("Le Mot de passe est different du premier.");
}	

?>

Re: Problème double enregistrement

Posté : 05 avr. 2010, 13:16
par Dr@ke
Ensuite ceci:
$categorie=$_POST['categorie'];
$typeannonce=$_POST['typeannonce'];
$souscategorie=$_POST['souscategorie'];
$titreannonce=$_POST['titreannonce'];
$descriptionannonce=$_POST['descriptionannonce'];
$prix=$_POST['prix'];

$departement=$_POST['departement'];
$region=$_POST['region'];

$NOMUTILISATEURS=$_POST['NOMUTILISATEURS'];
$MAILUTILISATEURS=$_POST['MAILUTILISATEURS'];
$MDP=$_POST['MDP'];
$MDPBIS=$_POST['MDPBIS'];
$TELEPHONE=$_POST['TELEPHONE'];
Tu le déplaces juste en dessous de:
if (!empty($_POST) && $_POST['MDP'] == $_POST['MDPBIS']){
[EDIT]
Oups déplace ceci aussi en dessous:
$categorie = decoder($categorie);
$typeannonce = decoder($typeannonce);
$souscategorie = decoder($souscategorie);
$titreannonce = decoder($titreannonce);
$descriptionannonce = decoder($descriptionannonce);
$prix = decoder($prix);
$departement = decoder($departement);
$region = decoder($region);

$NOMUTILISATEURS = decoder($NOMUTILISATEURS);
$MAILUTILISATEURS = decoder($MAILUTILISATEURS);
$MDP = decoder($MDP);
$TELEPHONE = decoder($TELEPHONE);
Donc tu auras:
if (!empty($_POST) && $_POST['MDP'] == $_POST['MDPBIS']){

$categorie=$_POST['categorie'];
$typeannonce=$_POST['typeannonce'];
$souscategorie=$_POST['souscategorie'];
$titreannonce=$_POST['titreannonce'];
$descriptionannonce=$_POST['descriptionannonce'];
$prix=$_POST['prix'];

$departement=$_POST['departement'];
$region=$_POST['region'];

$NOMUTILISATEURS=$_POST['NOMUTILISATEURS'];
$MAILUTILISATEURS=$_POST['MAILUTILISATEURS'];
$MDP=$_POST['MDP'];
$MDPBIS=$_POST['MDPBIS'];
$TELEPHONE=$_POST['TELEPHONE'];

$categorie = decoder($categorie);
$typeannonce = decoder($typeannonce);
$souscategorie = decoder($souscategorie);
$titreannonce = decoder($titreannonce);
$descriptionannonce = decoder($descriptionannonce);
$prix = decoder($prix);
$departement = decoder($departement);
$region = decoder($region);

$NOMUTILISATEURS = decoder($NOMUTILISATEURS);
$MAILUTILISATEURS = decoder($MAILUTILISATEURS);
$MDP = decoder($MDP);
$TELEPHONE = decoder($TELEPHONE);

Re: Problème double enregistrement

Posté : 05 avr. 2010, 13:32
par spidercrash
Toujours le même problème : extension incorrect mais l'annonce s'enregistre

Re: Problème double enregistrement

Posté : 05 avr. 2010, 13:42
par Dr@ke
Déplace ceci:
  // traitement


//ici on commence avec les requêtes MySQL pour vérifier dans la table

include ('connect.php');//ici on inclut le fichier avec l'accès MySQL.
$crypt=md5($MDP);

$sql = "SELECT * FROM utilisateurs WHERE MAILUTILISATEURS = '$MAILUTILISATEURS'";//On sélectionne dans la table "UTILISATEUR" le login qui a pour valeur la variable "$login"
    $req = mysql_query($sql)or die(mysql_error());  
    $result = mysql_numrows($req);// on compte le nombre de résultats

    if($result!=0)  // le login existe déjà
        {
        Parse("resultat","email '$MAILUTILISATEURS' existe deja, desole"); //alors on renvoi au Flash que le login '$MAILUTILISATEURS' existe déjà
        }
    else  //sinon le login n'existe pas  
        {
               
        $sql = "INSERT INTO utilisateurs (NOMUTILISATEURS,MAILUTILISATEURS,MDP,TELEPHONE) VALUES ('$NOMUTILISATEURS','$MAILUTILISATEURS','$crypt','$TELEPHONE')"; //Alors on insert dans la table le nouvel utilisateur        
                mysql_query ($sql);
                $NUMUTILISATEURS=mysql_insert_id();
                        $sql2 = "INSERT INTO annonces (categorie,typeannonce,souscategorie,titreannonce,descriptionannonce,prix,date,departement,region,NUMUTILISATEURS) VALUES ('$categorie','$typeannonce','$souscategorie','$titreannonce','$descriptionannonce','$prix','".date("Y-m-d H:i:s")."','$departement','$region','$NUMUTILISATEURS')";
                        $req = mysql_query($sql2)or die(mysql_error());                        
                       
        Parse("resultat","merci $MAILUTILISATEURS, vous etes a present enregistre et votre annonce est enregistré");
        }
Sous:
if ($resultat)
                                        {
[EDIT]
Ensuite tu peux supprimer de façon safe ceci:
                                                mysql_connect("aaaa", "aaaa", "aaaaaaaaaa");
                                                mysql_select_db("aaaaa");

Re: Problème double enregistrement

Posté : 05 avr. 2010, 14:21
par spidercrash
j'obtient une erreur voici le code

<?php
// Fonction pour parser les variables vers FLASH 
function Parse($variable,$valeur) { 
echo "&" . $variable . "=" . utf8_encode($valeur);
}




$dossier = 'Images/';
$maxsize = '1048576';
$maxwidth = '2000';
$maxheight = '2000';


//Fontion "decoder" (facultative)
function decoder($texte){
	$texte = utf8_decode($texte);
      /*$texte = stripslashes($texte);
	$texte = trim($texte);
	$texte = htmlentities($texte, ENT_QUOTES);
	$texte = strip_tags($texte);
	$texte = nl2br($texte);
	$texte = str_replace(">", ">", $texte);
	$texte = str_replace("<", "<", $texte);*/
		
		 
        
        $texte = str_replace("%","%25",$texte); 
        $texte = str_replace("!","%21",$texte); 
        $texte = str_replace("\"","%22",$texte); 
        $texte = str_replace("#","%23",$texte); 
        $texte = str_replace("\$","%24",$texte); 
        $texte = str_replace("&","%26",$texte); 
        $texte = str_replace("'","%27",$texte); 
        $texte = str_replace("(","%28",$texte); 
        $texte = str_replace(")","%29",$texte); 
        $texte = str_replace("*","%2A",$texte); 
        $texte = str_replace("+","%2B",$texte);               
        $texte = str_replace("<","%3C",$texte); 
        $texte = str_replace("=","%3D",$texte); 
        $texte = str_replace(">","%3E",$texte); 
        $texte = str_replace("?","%3F",$texte);         
        $texte = str_replace("[","%5B",$texte); 
        $texte = str_replace("]","%5D",$texte); 
        $texte = str_replace("^","%5E",$texte);          
        $texte = str_replace("`","%60",$texte); 
        $texte = str_replace("{","%7B",$texte); 
        $texte = str_replace("|","%7C",$texte); 
        $texte = str_replace("}","%7D",$texte); 
        $texte = str_replace("~","%7E",$texte); 
        $texte = str_replace("¢","%A2",$texte); 
        $texte = str_replace("£","%A3",$texte); 
        $texte = str_replace("¥","%A5",$texte); 
        $texte = str_replace("|","%A6",$texte); 
        $texte = str_replace("§","%A7",$texte); 
        $texte = str_replace("«","%AB",$texte); 
        $texte = str_replace("¬","%AC",$texte); 
        $texte = str_replace("¯","%AD",$texte); 
        $texte = str_replace("º","%B0",$texte); 
        $texte = str_replace("±","%B1",$texte); 
        $texte = str_replace("ª","%B2",$texte);        
        $texte = str_replace("µ","%B5",$texte); 
        $texte = str_replace("»","%BB",$texte); 
        $texte = str_replace("¼","%BC",$texte); 
        $texte = str_replace("½","%BD",$texte); 
        $texte = str_replace("¿","%BF",$texte); 
	return $texte;
}	



if (!empty($_POST) && $_POST['MDP'] == $_POST['MDPBIS']){
  // traitement
$categorie=$_POST['categorie'];
$typeannonce=$_POST['typeannonce'];
$souscategorie=$_POST['souscategorie'];
$titreannonce=$_POST['titreannonce'];
$descriptionannonce=$_POST['descriptionannonce'];
$prix=$_POST['prix'];

$departement=$_POST['departement'];
$region=$_POST['region'];

$NOMUTILISATEURS=$_POST['NOMUTILISATEURS'];
$MAILUTILISATEURS=$_POST['MAILUTILISATEURS'];
$MDP=$_POST['MDP'];
$MDPBIS=$_POST['MDPBIS'];
$TELEPHONE=$_POST['TELEPHONE'];

$categorie = decoder($categorie);
$typeannonce = decoder($typeannonce);
$souscategorie = decoder($souscategorie);
$titreannonce = decoder($titreannonce);
$descriptionannonce = decoder($descriptionannonce);
$prix = decoder($prix);
$departement = decoder($departement);
$region = decoder($region);

$NOMUTILISATEURS = decoder($NOMUTILISATEURS);
$MAILUTILISATEURS = decoder($MAILUTILISATEURS);
$MDP = decoder($MDP);
$TELEPHONE = decoder($TELEPHONE);


		
	

		
		

        if ($_FILES['icone']['error'] > 0)
        {
                echo 'Erreur lors du transfert';
        }
        else
        {
                if ($_FILES['icone']['size'] > $maxsize)
                {
                        echo 'Le fichier est trop gros';
                }
                else
                {
                        $extensions_valides = array('jpg','jpeg','gif','png');
                        $extension_upload = strtolower(  substr(  strrchr($_FILES['icone']['name'], '.'),1));
                       
                        if (in_array($extension_upload,$extensions_valides))
                        {
                                $image_sizes = getimagesize($_FILES['icone']['tmp_name']);
                               
                                if (!$image_sizes[0] > $maxwidth OR $image_sizes[1] > $maxheight)
                                {
                                        echo 'Image trop grande';
                                }
                                elseif (file_exists($dossier . $_FILES['icone']['name']))
                                {
                                       echo 'Le nom de votre photo éxiste déjà merci de la renommer';
                                }
                                else
                                {
                                        $nom = "{$_FILES['icone']['name']}";
                                        $resultat = move_uploaded_file($_FILES['icone']['tmp_name'],$dossier.$nom);     if ($resultat)
										
										//ici on commence avec les requêtes MySQL pour vérifier dans la table

include ('connect.php');//ici on inclut le fichier avec l'accès MySQL.
$crypt=md5($MDP);

$sql = "SELECT * FROM utilisateurs WHERE MAILUTILISATEURS = '$MAILUTILISATEURS'";//On sélectionne dans la table "UTILISATEUR" le login qui a pour valeur la variable "$login" 
    $req = mysql_query($sql)or die(mysql_error());   
    $result = mysql_numrows($req);// on compte le nombre de résultats 

    if($result!=0)  // le login existe déjà
        { 
        Parse("resultat","email '$MAILUTILISATEURS' existe deja, desole"); //alors on renvoi au Flash que le login '$MAILUTILISATEURS' existe déjà
        } 
    else  //sinon le login n'existe pas  
        {
		
        $sql = "INSERT INTO utilisateurs (NOMUTILISATEURS,MAILUTILISATEURS,MDP,TELEPHONE) VALUES ('$NOMUTILISATEURS','$MAILUTILISATEURS','$crypt','$TELEPHONE')"; //Alors on insert dans la table le nouvel utilisateur		
		mysql_query ($sql);
		$NUMUTILISATEURS=mysql_insert_id();
			$sql2 = "INSERT INTO annonces (categorie,typeannonce,souscategorie,titreannonce,descriptionannonce,prix,date,departement,region,NUMUTILISATEURS) VALUES ('$categorie','$typeannonce','$souscategorie','$titreannonce','$descriptionannonce','$prix','".date("Y-m-d H:i:s")."','$departement','$region','$NUMUTILISATEURS')";
			$req = mysql_query($sql2)or die(mysql_error()); 			
			
  	Parse("resultat","merci $MAILUTILISATEURS, vous etes a present enregistre et votre annonce est enregistré");
        }
                                        {
                                                echo 'Transfert réussi';
                                                
                                               
                                                $nom = mysql_real_escape_string($nom);
                        $image = $dossier.$nom;
                        $description = mysql_real_escape_string($_POST['description']);
                                               
                        mysql_query("INSERT INTO images VALUES('','" . $nom . "', '" . $description. "', '" . $image . "')");
                                        }
                                        else
                                        {
                                                echo 'Echec du transfert';
                                        }
                                }
                        }
                        else
                        {
                                echo 'Extension incorect';
                        }
                }
        }		
		
} else {
  echo("Le Mot de passe est different du premier.");
}	

?>
Parse error: syntax error, unexpected T_ELSE in /homez.316/logisdesq/www/php/validationannonce.php on line 178

Re: Problème double enregistrement

Posté : 05 avr. 2010, 14:28
par stealth35
l'utilises quoi comme éditeur ?
il te manque un if quelque par genre ligne 169,
sinon ta fonction decode elle sert a rien

Re: Problème double enregistrement

Posté : 05 avr. 2010, 14:33
par Dr@ke
Une chose à la fois Steal, et il ne manque pas de if, il a juste collé avant le {
  {
                                                echo 'Transfert réussi';
Déplace le { ci-dessus (plus haut) juste après:
if ($resultat)
Donc ton script actuellement devrait être comme ceci:
<?php
// Fonction pour parser les variables vers FLASH
function Parse($variable,$valeur) {
echo "&" . $variable . "=" . utf8_encode($valeur);
}

//Fontion "decoder" (facultative)
function decoder($texte){
        $texte = utf8_decode($texte);
      /*$texte = stripslashes($texte);
        $texte = trim($texte);
        $texte = htmlentities($texte, ENT_QUOTES);
        $texte = strip_tags($texte);
        $texte = nl2br($texte);
        $texte = str_replace(">", ">", $texte);
        $texte = str_replace("<", "<", $texte);*/
        $texte = str_replace("%","%25",$texte);
        $texte = str_replace("!","%21",$texte);
        $texte = str_replace("\"","%22",$texte);
        $texte = str_replace("#","%23",$texte);
        $texte = str_replace("\$","%24",$texte);
        $texte = str_replace("&","%26",$texte);
        $texte = str_replace("'","%27",$texte);
        $texte = str_replace("(","%28",$texte);
        $texte = str_replace(")","%29",$texte);
        $texte = str_replace("*","%2A",$texte);
        $texte = str_replace("+","%2B",$texte);              
        $texte = str_replace("<","%3C",$texte);
        $texte = str_replace("=","%3D",$texte);
        $texte = str_replace(">","%3E",$texte);
        $texte = str_replace("?","%3F",$texte);        
        $texte = str_replace("[","%5B",$texte);
        $texte = str_replace("]","%5D",$texte);
        $texte = str_replace("^","%5E",$texte);          
        $texte = str_replace("`","%60",$texte);
        $texte = str_replace("{","%7B",$texte);
        $texte = str_replace("|","%7C",$texte);
        $texte = str_replace("}","%7D",$texte);
        $texte = str_replace("~","%7E",$texte);
        $texte = str_replace("¢","%A2",$texte);
        $texte = str_replace("£","%A3",$texte);
        $texte = str_replace("¥","%A5",$texte);
        $texte = str_replace("|","%A6",$texte);
        $texte = str_replace("§","%A7",$texte);
        $texte = str_replace("«","%AB",$texte);
        $texte = str_replace("¬","%AC",$texte);
        $texte = str_replace("¯","%AD",$texte);
        $texte = str_replace("º","%B0",$texte);
        $texte = str_replace("±","%B1",$texte);
        $texte = str_replace("ª","%B2",$texte);        
        $texte = str_replace("µ","%B5",$texte);
        $texte = str_replace("»","%BB",$texte);
        $texte = str_replace("¼","%BC",$texte);
        $texte = str_replace("½","%BD",$texte);
        $texte = str_replace("¿","%BF",$texte);
        return $texte;
}      

if (!empty($_POST) && $_POST['MDP'] == $_POST['MDPBIS']) {

  // traitement
$categorie=$_POST['categorie'];
$typeannonce=$_POST['typeannonce'];
$souscategorie=$_POST['souscategorie'];
$titreannonce=$_POST['titreannonce'];
$descriptionannonce=$_POST['descriptionannonce'];
$prix=$_POST['prix'];

$departement=$_POST['departement'];
$region=$_POST['region'];

$NOMUTILISATEURS=$_POST['NOMUTILISATEURS'];
$MAILUTILISATEURS=$_POST['MAILUTILISATEURS'];
$MDP=$_POST['MDP'];
$MDPBIS=$_POST['MDPBIS'];
$TELEPHONE=$_POST['TELEPHONE'];

$categorie = decoder($categorie);
$typeannonce = decoder($typeannonce);
$souscategorie = decoder($souscategorie);
$titreannonce = decoder($titreannonce);
$descriptionannonce = decoder($descriptionannonce);
$prix = decoder($prix);
$departement = decoder($departement);
$region = decoder($region);

$NOMUTILISATEURS = decoder($NOMUTILISATEURS);
$MAILUTILISATEURS = decoder($MAILUTILISATEURS);
$MDP = decoder($MDP);
$TELEPHONE = decoder($TELEPHONE);

$dossier = 'Images/';
$maxsize = '1048576';
$maxwidth = '2000';
$maxheight = '2000';

        if ($_FILES['icone']['error'] > 0)
        {
                echo 'Erreur lors du transfert';
        }
        else
        {
                if ($_FILES['icone']['size'] > $maxsize)
                {
                        echo 'Le fichier est trop gros';
                }
                else
                {
                        $extensions_valides = array('jpg','jpeg','gif','png');
                        $extension_upload = strtolower(  substr(  strrchr($_FILES['icone']['name'], '.'),1));
                       
                        if (in_array($extension_upload,$extensions_valides))
                        {
                                $image_sizes = getimagesize($_FILES['icone']['tmp_name']);
                               
                                if (!$image_sizes[0] > $maxwidth OR $image_sizes[1] > $maxheight)
                                {
                                        echo 'Image trop grande';
                                }
                                elseif (file_exists($dossier . $_FILES['icone']['name']))
                                {
                                       echo 'Le nom de votre photo éxiste déjà merci de la renommer';
                                }
                                else
                                {
                                        $nom = "{$_FILES['icone']['name']}";
                                        $resultat = move_uploaded_file($_FILES['icone']['tmp_name'],$dossier.$nom);     if ($resultat) {
                                                                               
                                                                                //ici on commence avec les requêtes MySQL pour vérifier dans la table

include ('connect.php');//ici on inclut le fichier avec l'accès MySQL.
$crypt=md5($MDP);

$sql = "SELECT * FROM utilisateurs WHERE MAILUTILISATEURS = '$MAILUTILISATEURS'";//On sélectionne dans la table "UTILISATEUR" le login qui a pour valeur la variable "$login"
    $req = mysql_query($sql)or die(mysql_error());  
    $result = mysql_numrows($req);// on compte le nombre de résultats

    if($result!=0)  // le login existe déjà
        {
        Parse("resultat","email '$MAILUTILISATEURS' existe deja, desole"); //alors on renvoi au Flash que le login '$MAILUTILISATEURS' existe déjà
        }
    else  //sinon le login n'existe pas  
        {
               
        $sql = "INSERT INTO utilisateurs (NOMUTILISATEURS,MAILUTILISATEURS,MDP,TELEPHONE) VALUES ('$NOMUTILISATEURS','$MAILUTILISATEURS','$crypt','$TELEPHONE')"; //Alors on insert dans la table le nouvel utilisateur        
                mysql_query ($sql);
                $NUMUTILISATEURS=mysql_insert_id();
                        $sql2 = "INSERT INTO annonces (categorie,typeannonce,souscategorie,titreannonce,descriptionannonce,prix,date,departement,region,NUMUTILISATEURS) VALUES ('$categorie','$typeannonce','$souscategorie','$titreannonce','$descriptionannonce','$prix','".date("Y-m-d H:i:s")."','$departement','$region','$NUMUTILISATEURS')";
                        $req = mysql_query($sql2)or die(mysql_error());                        
                       
        Parse("resultat","merci $MAILUTILISATEURS, vous etes a present enregistre et votre annonce est enregistré");
        }
                                                echo 'Transfert réussi';
                                               
                                               
                                                $nom = mysql_real_escape_string($nom);
                        $image = $dossier.$nom;
                        $description = mysql_real_escape_string($_POST['description']);
                                               
                        mysql_query("INSERT INTO images VALUES('','" . $nom . "', '" . $description. "', '" . $image . "')");
                                        }
                                        else
                                        {
                                                echo 'Echec du transfert';
                                        }
                                }
                        }
                        else
                        {
                                echo 'Extension incorect';
                        }
                }
        }              
               
} 
elseif (!empty($_POST)) 
{
  echo 'Le Mot de passe est different du premier.';
}      

?>
[EDIT]
Utilise le script ci-dessus, j'en ai profité pour juste modifier le else final en elseif

Re: Problème double enregistrement

Posté : 05 avr. 2010, 16:07
par spidercrash
Donc j'ai plus d'erreur mais plus rien ne fonctionne :( les enregistrement ne se font plus et en message j'ai juste extension incorrect

Meme quand je met pas de photo donc
$dossier = 'Images/';
$maxsize = '1048576';
$maxwidth = '2000';
$maxheight = '2000';

        if ($_FILES['icone']['error'] > 0)
        {
                echo 'Erreur lors du transfert';
        }
        else
        {
                if ($_FILES['icone']['size'] > $maxsize)
                {
                        echo 'Le fichier est trop gros';
                }
                else
                {
                        $extensions_valides = array('jpg','jpeg','gif','png');
                        $extension_upload = strtolower(  substr(  strrchr($_FILES['icone']['name'], '.'),1));
                       
                        if (in_array($extension_upload,$extensions_valides))
                        {
                                $image_sizes = getimagesize($_FILES['icone']['tmp_name']);
                               
                                if (!$image_sizes[0] > $maxwidth OR $image_sizes[1] > $maxheight)
                                {
                                        echo 'Image trop grande';
                                }
                                elseif (file_exists($dossier . $_FILES['icone']['name']))
                                {
                                       echo 'Le nom de votre photo éxiste déjà merci de la renommer';
                                }
                                else
                                {
                                        $nom = "{$_FILES['icone']['name']}";
                                        $resultat = move_uploaded_file($_FILES['icone']['tmp_name'],$dossier.$nom);     if ($resultat) {
ceci doit etre mal placé je pence