problème liaison table

Eléphant du PHP | 388 Messages

11 mars 2010, 08:26

Désolé mais je ne comprends pas.

Ton autre table n'a rien à voir la dedans. Tu fais une requête pour insérer des données, tu dois renseigner des valeurs. Tu utilises une variable, tu dois y mettre quelque chose.

Si tu veux que cette variable contienne l'id d'un utilisateur, tu dois le mettre dedans. Le champ de la table s'auto-incrémente peut-être mais ça n'a rien à voir avec ta variable, tu dois mettre une valeur dans cette variable sinon ça ne fonctionnera jamais. Ton code php ne peut pas deviner de quel utilisateur il s'agit et quel id récupérer.
Donc je comprend pas trop comment dois je faire pour que ma table annonce soit lié a ma table utilisateur ?
Exemple : un utilisateur peut avoir plusieurs annonces.

donc dans mon script ajout des donnée je doit rajouter la variable NUMUTILISATEURS ? sachant que le contenu de celle ci sera des chiffres qui s'auto-incremente(sachant que c'est ma clé primaire qui est déja parametré pour s' AI)

Faudrai que je face cela ?
<?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'];

$NUMUTILISATEURS=$_POST['NUMUTILISATEURS'];
$NOMUTILISATEURS=$_POST['NOMUTILISATEURS'];
$MAILUTILISATEURS=$_POST['MAILUTILISATEURS'];
$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);

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


//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.

$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 (NUMUTILISATEURS,NOMUTILISATEURS,MAILUTILISATEURS,TELEPHONE) VALUES ('$NUMUTILISATEURS','$NOMUTILISATEURS','$MAILUTILISATEURS','$TELEPHONE')"; //Alors on insert dans la table le nouvel utilisateur             
                mysql_query ($sql);
                        $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é");
        }
                    
               
               

?>
 

A savoir comme tu peut le constater dans mon formulaire lorsque la personne met une annonce elle s'inscrit en même temps.

Eléphanteau du PHP | 31 Messages

11 mars 2010, 19:31

Cette fois ci, $NUMUTILISATEURS semble contenir quelque chose (enfin la variable est initialisée avec le contenu de $_POST, ce qui ne veut pas dire qu'elle ne peut pas être vide).

Par contre je ne comprends pas, si tu veux que ce soit une valeur autoincrémentée par MySql, pourquoi récupérer en POST ?

Vu que je ne sais pas ce que contiennent tes variables en POST, je pars du principe que chaque appel à ce script se fait pour un nouvel utilisateur (ce qui semble être confirmé par le fait que si l'email existe alors tu envois un message d'erreur). Dans ce cas voilà comment tu peux faire (synthétiquement) :

-> Tu fais une requête d'insertion de ton utilisateur, sans donner d'id puisque celui-ci sera généré automatiquement.
-> Tu récupères l'ID du dernier enregistrement (avec la fonction mysql_insert_id() )
-> Tu insères dans annonces en passant cet ID

Eléphant du PHP | 388 Messages

11 mars 2010, 20:14

non je suis désolé oublie $NUMUTILISATEURS=$_POST['NUMUTILISATEURS']; car dans mon formulaire j'ai aucune valeur qui concerne NUMUTILISATEURS

Voici mon formulaire :

<?php

echo("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n");

/* Variables de connexion : ajustez ces paramètres selon votre propre environnement */

$serveur = "qqqqq";

$admin   = "qqqqqq";

$mdp     = "qqqq";

$base    = "qqqqq";

/* On récupère si elle existe la valeur de la région envoyée par le formulaire */

$idr = isset($_POST['region'])?$_POST['region']:null;

?>



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
		<head> 
			<title>petite annonce gratuite pour particulier encart publicitaire pour profesionnel - mon espace</title>
				 <meta http-equiv="Content-Type" content="text/html";
				charset=iso-8859-1" /> 
				<link rel="stylesheet" media="screen" type="text/css"
				title="Design espace" href="css/ajoutannonce_style.css" />
		</head>
<body>

	<div id="annonce"></div>
	

	<div id="entete">
 
	</div>

	<div id="corps">
 
		<img src="contenu/logisdesannonces.png" alt="logisdesannonces" class="logisdesannonces" />
		<img src="contenu/logo.png" alt="logo" class="logo" />
	<div id="bouton">		
		<a href="divers.html"><img src="contenu/divers.png" alt="divers" class="divers" border="0"/></a>
		<a href="vehicule.html"><img src="contenu/vehicule.png" alt="vehicule" class="vehicule" border="0"/></a>
		<a href="hightech.html"><img src="contenu/high-tech.png" alt="hightech" class="hightech" border="0"/></a>
		<a href="immobilier.html"><img src="contenu/immobilier.png" alt="immobilier" class="immobilier" border="0"/></a>
		<a href="animaux.html"><img src="contenu/animaux.png" alt="animaux" class="animaux" border="0"/></a>
		<a href="espacepro.html"><img src="contenu/boutonpro.png" alt="bouton" class="bouton" border="0"/></a>
	</div>	
		<a href="http://www.logisdesannonces.fr/accueil.html"><img src="contenu/bouton_accueil.png" alt="accueil" class="accueil" border="0"/></a>

	</div>
	<div id="formulaire">
			Votre region :<br />
<?php

	/* On établit la connexion à MySQL avec mysql_pconnect() plutôt qu'avec mysql_connect()

	*  car on aura besoin de la connexion un peu plus loin dans le script */

	$connexion = mysql_pconnect($serveur, $admin, $mdp);

	if($connexion != false)

	{

		$choixbase = mysql_select_db($base, $connexion);

		$sql1 = "SELECT `id_region`, `region`".

		" FROM `region`".

		" ORDER BY `id_region`";
	
		$rech_regions = mysql_query($sql1);

		$code_region = array();

		$region = array();

		/* On active un compteur pour les régions */

		$nb_regions = 0;

		if($rech_regions != false)

			{

				while($ligne = mysql_fetch_assoc($rech_regions))

				{

					array_push($code_region, $ligne['id_region']);

					array_push($region, $ligne['region']);



					/* On incrémente de compteur */

					$nb_regions++;

				}

			}

?>

	<form action="<?php echo($_SERVER['PHP_SELF']); ?>" method="post" id="chgdept">
		<select name="region" id="region" onchange="document.forms['chgdept'].submit();">


		<option value="-1">- - - Choisissez une région - - -</option>

<?php

    for($i = 0; $i < $nb_regions; $i++)

    {

?>

		<option value="<?php echo($code_region[$i]); ?>"<?php echo((isset($idr) && $idr == $code_region[$i])?" selected=\"selected\"":null); ?>><?php echo($region[$i]); ?></option>

<?php

    }

?>

		</select>

    
	</form>
<br />
	<form id="ok" method="post" action="php/validationannonce.php">

<?php

    mysql_free_result($rech_regions);

    /* On commence par vérifier si on a envoyé un numéro de région et le cas échéant s'il est différent de -1 */



    if(isset($idr) && $idr != -1)

    {

        /* Cération de la requête pour avoir les départements de cette région */

        $sql2 = "SELECT `id_departement`, `departement`".

        " FROM `departement`".

        " WHERE `id_region` = ". $idr ."".

        " ORDER BY `id_departement`;";

        if($connexion != false)

        {

            $rech_dept = mysql_query($sql2, $connexion);

            /* Un petit compteur pour les départements */

            $nd = 0;

            /* On crée deux tableaux pour les numéros et les noms des départements */

            $code_dept = array();

            $nom_dept = array();

            /* On va mettre les numéros et noms des départements dans les deux tableaux */

            while($ligne_dept = mysql_fetch_assoc($rech_dept))

            {

                array_push($code_dept, $ligne_dept['id_departement']);

                array_push($nom_dept, $ligne_dept['departement']);

                $nd++;

            }

            /* Maintenant on peut construire la liste déroulante */

            ?>


Votre departement :<br />
<select name="departement" id="departement">

            <?php  

            for($d = 0; $d<$nd; $d++)

            {

                ?>

  <option value="<?php echo($code_dept[$d].'-'.$nom_dept[$d]); ?>"<?php echo((isset($dept_selectionne) && $dept_selectionne == $code_dept[$d])?" selected=\"selected\"":null); ?>><?php echo($nom_dept[$d]." (". $code_dept[$d] .")"); ?></option>



                <?php

            }

?>

</select>

<?php

        }

        /* Un petit coup de balai */

        mysql_free_result($rech_dept);

    }

?>
<br />

		<label for="NOMUTILISATEURS">Nom:</label><br />
			<input type="text" name="NOMUTILISATEURS" id="NOMUTILISATEURS" size="20" /><br />
		<label for="MAILUTILISATEURS">Email:</label><br />
			<input type="text" name="MAILUTILISATEURS" id="MAILUTILISATEURS" size="20" /><br />
		<label for="TELEPHONE">Téléphone:</label><br />
			<input type="text" name="TELEPHONE" id="TELEPHONE" size="20" /><br />
				<span>Vous n'étes pas obliger de le mentionner.</span><br /><br />
		
		<label for="typeannonce">Type d'annonce:</label><br />		
			<label>
					<input type="radio" name="typeannonce" value="vends" />Je vends
				</label>
				<label>
					<input type="radio" name="typeannonce" value="donne" />Je donne
				</label>
				<label>
					<input type="radio" name="typeannonce" value="troc" />Je troc
				</label>
				<br /><br />
				
			<label for="categorie">Sélectionner une catégorie:</label><br />
				<select name="categorie" id="categorie">
					<option value="0">Votre catégorie</option>
					<option value="divers">Divers</option>
					<option value="vehicules">Véhicules</option>
					<option value="immobilier">Immobilier</option>
					<option value="high-tech">High-Tech</option>
					<option value="animaux">Animaux</option>
			</select>	
			
			<br /><br />
			<label for="souscategorie">Sélectionner un sous catégorie:</label><br />
				<select name="souscategorie" id="souscategorie">
					<optgroup label="DIVERS">
						<option value="select">Votre sous-catégorie</option>
						<option value="antiquite-art">Antiquité-Art</option>
						<option value="bricolage-jardin-chauffage">Bricolage-Jardin-Chauffage</option>
						<option value="meuble-decoration">Meuble-Décoration</option>
						<option value="vetements">Vêtements</option>
						<option value="puericulture">Puériculture</option>
						<option value="livres">Livres</option>
						<option value="loisir">Loisir</option>
						<option value="collections">Collections</option>
						<option value="musique">Musique</option>
						<option value="jeux-jouets">Jeux-Jouets</option>
						<option value="sport">Sport</option>
					</optgroup>
					<optgroup label="VEHICULES">
						<option value="voiture">Voiture</option>
						<option value="moto-scooter">Moto-Scooter</option>
						<option value="camping-car">Camping car</option>
						<option value="caravane">Caravane</option>
						<option value="utilitaire">Utilitaire</option>
						<option value="bateau-nautisme">Bateau-Nautisme</option>
						<option value="pieces-accessoire auto">Piéces-Accessoire auto</option>
						<option value="pieces-accessoire moto">Piéces-Acessoire moto</option>
						<option value="pieces-accessoire nautisme">Piéces-Accessoire nautisme</option>
						<option value="pieces-accessoire camping car">Piéces-Accessoire camping car</option>				
					</optgroup>
					<optgroup label="IMMOBILIER">
						<option value="location">Location</option>
						<option value="location saisonniere">Location saisonnère</option>
						<option value="vente maison">Vente Maison</option>
						<option value="vente appartement">Vente appartement</option>
						<option value="vente propriete">Vente propriété</option>
						<option value="vente hotel particulier">Vente hotel particulier</option>
						<option value="vente garage">Vente garage</option>
						<option value="immeuble">Immeuble</option>
						<option value="vente constructeur">Vente constructeur</option>
						<option value="investisseur">Investisseur</option>
						<option value="renovation">Rénovation</option>
						<option value="etang">Etang</option>
						<option value="corps de ferme">Corps de ferme</option>				
					</optgroup>
					<optgroup label="HIGH-TECH">
						<option value="hifi-photo-video">Hifi-Photo-Video</option>
						<option value="informatique">Informatique</option>
						<option value="jeux video">Jeux video</option>
						<option value="musique-film">Musique-Film</option>
						<option value="telephonie">Téléphonie</option>
						<option value="autre">Autre</option>								
					</optgroup>
					<optgroup label="ANIMAUX">
						<option value="achat-vente">Achat-Vente</option>
						<option value="adoption-don">Adoption-Don</option>
						<option value="services">Services</option>
						<option value="accessoires">Accessoires</option>												
					</optgroup>
				</select>
		<br />
		<label for="titreannonce">Titre de l'annonce:</label><br />
			<input type="titreannonce" name="titreannonce" id="titreannonce" size="20" /><br />
				<span>Décriver précisement en quelques mots le titre de votre annonces</span><br /><br />
		<label for="descriptionannonce">Description de l'annonce :</label><br />
			<textarea name="descriptionannonce" id="descriptionannonce" rows="5" cols="30"></textarea><br />
		<label for="prix">Prix:</label><br />
			<input type="prix" name="prix" id="prix" size="10" /><br />

<?php
	
	echo '<input type="hidden" name="region" id="region" value="'.$region[$idr - 1].'"/>';
	
?>



<input type="submit" name="ok" id="ok" value="envoyer" />

</form>





<?php

    /* Terminé, on ferme la connexion */

    mysql_close($connexion);

}

else

{

    /* Si on arrive là, c'est pas bon signe, il faut vérifier les

    * paramètres de connexion, mot de passe, serveur pas démarré etc... */


}

?>
<br /><br /><br /><br /><br /><br />




</div>
<div id="fondlogin">

</div>
<div id="login">VOUS ÊTES INSCRIT ?

	<div id="formlogin">
		Espace résérvé au particulier<br />
	</div>
	<div id="form">
		<form method="post" action="../php/login.php">
 	
		<label for="MAILUTILISATEURS">Email:</label><br />
			<input type="text" name="MAILUTILISATEURS" id="MAILUTILISATEURS" size="20" /><br />
		<label for="MDP">Mot de passe:</label><br />
			<input type="password" name="MDP" id="MDP" size="20" /><br /><br />
				<input type="submit" value="Valider" />	
		</form>		
	</div>
	<div id="mpsoublie">
		<a href="renouvellementmps.html""style=color:white;">Mot de passe oublié ?</a>
	</div>

</div>
<div id="pied_de_page">
 <div id="boutonbas">
	<a href="information.html"><img src="contenu/information.png" alt="information" class="information" border="0"/></a>
	<a href="contact.html"><img src="contenu/contact.png" alt="contact" class="contact" border="0"/></a>
	<a href="newsletters.html"><img src="contenu/newsletters.png" alt="newsletters" class="newsletters" border="0"/></a>
	<a href="offre.html"><img src="contenu/offre.png" alt="offre" class="offre" border="0"/></a>
	<a href="aide.html"><img src="contenu/aide.png" alt="aide" class="aide" border="0"/></a>

</div>
</div>

</body>

</html>

-> Tu récupères l'ID du dernier enregistrement (avec la fonction mysql_insert_id() )
faut til que je rajoute cela aprés ma requete d'ajout dans ma table annonces ?
$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')";
$NUMUTILISATEURS=mysql_insert_id();

Eléphanteau du PHP | 31 Messages

11 mars 2010, 21:07

Puisque tu utilises la valeur dans la requête c'est avant la requête que tu dois faire ça.

Tu insères dans la table des utilisateurs, tu appel la fonction (qui te renverra l'id de l'utilisateur qui vient d'être enregistré et enfin tu insères ton annonce.

Eléphant du PHP | 388 Messages

11 mars 2010, 21:43

J'ai fait cela
$sql = "INSERT INTO utilisateurs (NOMUTILISATEURS,MAILUTILISATEURS,TELEPHONE) VALUES ('$NOMUTILISATEURS','$MAILUTILISATEURS','$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()); 
Sa marche a priori je te remercie pour ton aide :D

Question :

A présent comme j'ai recuperer l'ID si je veut afficher l'annonce et je veut que dans cette annonce apparaisse le mail de l'utilisateur c'est possible ?
Vu que les tables son liée ?

Eléphanteau du PHP | 31 Messages

11 mars 2010, 22:32

C'était laborieux mais on y ait finalement arrivé ^^

Que veux tu dire par afficher l'annonce dans le mail ?

De quel mail s'agit-il ? D'un mail que tu envois après le dépôt d'une annonce ? Tu veux y mettre le contenu de l'annonce ou un lien vers celle-ci ?

Eléphant du PHP | 388 Messages

11 mars 2010, 23:23

désolé je me suis mal exprimé,
Lors de l'affichage de toute mes annonces, elle s'affiche toute dans un tableau je souhaiterai que exemple l'annonce 1 contient un champs pseudo qui appelerai l'adresse mail de la personne.
exemple
catégorie : voiture
prix : 3000€
date 14/04/2010
heure : 15h
émail de l'annonceur : [email protected]

grâce a la liaison de la table on c'est que l'annonce fait référence a l'utilisateur n°10
donc peut ton récupérer le champs émail de l'utilisateur numéro 10

Eléphanteau du PHP | 31 Messages

11 mars 2010, 23:36

Quand tu récupères tes annonces tu peux lier les deux tables. Par exemple :
SELECT * FROM annonces a, utilisateurs u WHERE a.NUMUTILISATEURS  = u.NUMUTILISATEURS;

Eléphant du PHP | 388 Messages

14 mars 2010, 21:16

j'ai encore un petit problème :).

Lorsque l'utilisateur se logue il a accées a la possibilité d'ajouter une annonces.
Cependant lorsque je reprend les même paramètre en mentionnant bien
$NUMUTILISATEURS=mysql_insert_id();
dans mon fichier de traitement

J'ai toujours 0 qui reviens dans le numutilisateurs de l'annonce.
Comment puis je procédé ?

voici ma page de traitement du login qui me renvoie sur la pages avec mes boutons afin d'ajouter une annonces.
<?
// Fonction pour parser les variables vers FLASH 
function Parse($variable,$valeur) { 
echo "&" . $variable . "=" . utf8_encode($valeur);
}
$MAILUTILISATEURS=$HTTP_POST_VARS['MAILUTILISATEURS']; 
$MDP=$HTTP_POST_VARS['MDP']; 

//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("è","%E8",$texte);	
	$texte = str_replace("é","%E9",$texte);	 
        $texte = str_replace("è","%EA",$texte);
        $texte = str_replace("ç","%E7",$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(",","%2C",$texte); 
         
        
        $texte = str_replace("/","%2F",$texte); 
        $texte = str_replace(":","%3A",$texte); 
        $texte = str_replace(";","%3B",$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(",","%B4",$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;
}	
//On applique la fonction "decoder" sur les deux variables
$MAILUTILISATEURS = decoder($MAILUTILISATEURS);
$MDP = decoder($MDP);

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

include ('../php/connect.php');//ici on inclut le fichier avec l'accès à MySQL.

$crypt=md5($MDP);//On crypt le mot de passe en md5 pour l'entrer dans la table
$sql = "select MDP from utilisateurs where MAILUTILISATEURS='".$MAILUTILISATEURS."'"; // on recupère le password de la table qui correspond au login du visiteur
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

$data = mysql_fetch_array($req);//On comptabilise le nombre de résultat trouvé

if($data['MDP'] != $crypt)
  {//Si le mot de passe envoyé par Flash, est différent au mot de passe de la table
    echo 'Mauvais identifiant(s)';//on affiche le "resulat"
  }
    else
     { //sinon
           session_start();//La session commence
           session_register('MAILUTILISATEURS');  
           header("Location: ../moncomptepart.php");
     }  

?>
Je pense plustot que c'est dans ma pages "moncomptepart" qu'il manque le NUMUTILISATEURS a rementionner.

ViPHP
ViPHP | 5462 Messages

15 mars 2010, 11:18

ca pique les yeux quand même ton code
$mail = $_POST['MAILUTILISATEURS'];
$mdp  = $_POST['MDP'];

include '../php/connect.php';

$sql = sprintf("SELECT mailutilisateurs FORM utilisateurs WHERE mailutilisateurs='%s' AND mdp=MD5(%s)", $mail, $mdp);
$req = mysql_query($sql) || exit('<pre>' . $sql . PHP_EOL . mysql_error() . '</pre>');

if($req)
{
    session_start();
    $_SESSION['MAILUTILISATEURS'] = $mail;  
    header('Location: ../moncomptepart.php');
}
else
{
    echo 'Mauvais identifiant';
}

Eléphant du PHP | 388 Messages

15 mars 2010, 21:01

oui effectivement sa fait moin mal aux yeux :D par contre je ne trouve pas la solution de mon problème #-o

ViPHP
ViPHP | 5462 Messages

16 mars 2010, 00:19

sachant que tu recuperes l'utilisateur avec ta requete rien t'empeche de prendre son ID et le mettre dans une variable

Eléphant du PHP | 388 Messages

17 mars 2010, 10:33

ben justement j'ai placé cela
$NUMUTILISATEURS=mysql_insert_id();
juste avant ma requete d'insertion mais l'ID de l'utilisateur n'est pas renvoyer

ViPHP
ViPHP | 5462 Messages

17 mars 2010, 11:03

mysql_insert_id c'est le dernier id que ta inserer dans ta connexion en cours, or la tu fais un select ton c'est inutile
$sql = sprintf("SELECT [b]id[/b], mailutilisateurs FORM utilisateurs WHERE mailutilisateurs='%s' AND mdp=MD5(%s)", $mail, $mdp);
$req = mysql_query($sql) || exit('<pre>' . $sql . PHP_EOL . mysql_error() . '</pre>');

if($req)
{
    session_start();
    $user = mysql_fetch_assoc($req);

    $_SESSION['MAILUTILISATEURS'] = $user['mailutilisateurs']; 
    $_SESSION['ID'] = $user['id'];
 
    header('Location: ../moncomptepart.php');
}
else
{
echo 'Mauvais identifiant';
}


évite les majuscule partout aussi :wink:

Eléphant du PHP | 388 Messages

17 mars 2010, 13:57

donc j'ai effectué se que tu ma dit, quand la personne se logue le traitement de la page passe par cela
<?

$MAILUTILISATEURS=$HTTP_POST_VARS['MAILUTILISATEURS']; 
$MDP=$HTTP_POST_VARS['MDP']; 

include ('../php/connect.php');//ici on inclut le fichier avec l'accès à MySQL.

$crypt=md5($MDP);//On crypt le mot de passe en md5 pour l'entrer dans la table
$sql = "select MDP from utilisateurs where MAILUTILISATEURS='".$MAILUTILISATEURS."'"; // on recupère le password de la table qui correspond au login du visiteur
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

$data = mysql_fetch_array($req);//On comptabilise le nombre de résultat trouvé

if($data['MDP'] != $crypt)
  {//Si le mot de passe envoyé par Flash, est différent au mot de passe de la table
    echo 'Mauvais identifiant(s)';//on affiche le "resulat"
  }
    else
     { 
	 session_start();
     $_SESSION['MAILUTILISATEURS'] = $user['MAILTUILISATEURS']; 
	 $_SESSION['NUMUTILISATEURS'] = $user['NUMUTILISATEURS'];
     header('Location: ../moncomptepart.php');
     }  

?>
cepedant que l'user et logué et qu'il pose une annonce sont id n'apparait toujours pas dans la table annonce #-o