Page 1 sur 2

Cacher URL + ID

Posté : 27 avr. 2010, 19:40
par spidercrash
bonjour,

Dans une de mes pages j'ai un lien qui s'appelle modification.

je les placer comme cela.

<td class="modification"><a href="modification.php?modif=<?php echo $numID ?>"><img src="contenu/modification.png" alt="modifier" class="modifier" border="0"/></a></td>

le problème lorsque je survole le bouton ou je clic dessus
apparait l'URL
exemple :
www.xxx.fr/modification.php?modif=13

Sauf que si a la place de 13 je met 24 je peut modifier le contenu de la 24.

Gros problème.
Je souhaiterai cacher cela mais je voit pas

Re: Cacher URL + ID

Posté : 27 avr. 2010, 19:44
par SnqKe
Tiens donc, je viens de te répondre sur un autre forum.
Salut,

Tu ne peux pas "cacher" un $_GET.
Qu'est ce que $numID ? L'ID de l'utilisateur ?

Par ailleurs,

Code : Tout sélectionner

<td class="modification"><a href="modification.php?modif=<?php echo $numID ?>"><img src="contenu/modification.png" alt="modifier" class="modifier" border="0"/></a></td>
Tu oublies de fermer la fonction echo par un point-virgule (;), ça pourrait être dangereux.

Re: Cacher URL + ID

Posté : 27 avr. 2010, 19:52
par spidercrash
:D oui oui

Re: Cacher URL + ID

Posté : 27 avr. 2010, 20:15
par Dr@ke
Il ne faut pas trouver une solution pour cacher l'ID mais trouver une solution pour que l'ID ne puisse être que l'ID de l'utilisateur en question.
Tout ceci d'une façon sécurisée et donc dans ton cas, que cet ID ne soit pas récupéré par une variable modifiable par l'utilisateur...

Tu utilises les sessions si je me rappelle bien, et tu utilises un champ de ta Bd qui contient l'ID de l'utilisateur.
Donc tu peux récupérer cet ID grâce aux sessions.

Re: Cacher URL + ID

Posté : 27 avr. 2010, 20:43
par spidercrash
Salut Dr@ke sa fait longtemps en vacance :D
ben voici se que j'avais fait.

lorsque je clic sur cette URL
<td class="modificationannonce"><a href="modificationannonce.php?numannonce=<?php echo $numannonce ;?>"><img src="contenu/modificationannonce.png" alt="modifierannonce" class="modifierannonce" border="0"/></a></td>
j'arrive sur cette page:
<?php
session_start();
// tester la présence de la session numutilisateurs
if ( isset( $_SESSION['NUMUTILISATEURS']) ) {
// Recuperation pour la variable 
$NUMUTILISATEURS = $_SESSION['NUMUTILISATEURS'];


}
if (isset($_SESSION['MAILUTILISATEURS'])) {
?>

<!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/moncomptepart_style.css" />
</head>
<body>



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




<div id="entete">
  <div id="h2">
<p><h2>Mon compte  </h2></p>
</div>
<div id="email">
<?php //Affichage Email de l'utilisateur
echo $_SESSION['MAILUTILISATEURS'],' vous étes connectées ','<br />';       
?>
</div>
</div>

 <div id="corps">
 
    <img src="contenu/logisdesannonces.png" alt="logisdesannonces" class="logisdesannonces" />
    <img src="contenu/logo.png" alt="logo" class="logo" />	
	<a href="http://www.logisdesannonces.fr/accueil.html"><img src="contenu/bouton_accueil.png" alt="accueil" class="accueil" border="0"/></a>
	<a href="php/deconnexion.php"><img src="contenu/deconnexion.png" alt="deconnexion" class="deconnexion" border="0"/></a>
	 


		<div id="fond">
		<table>
		
		<tr>
			<td>
			<div id="mesannonces">
			<a href="mesannonces.php"><img src="contenu/favoris2.png" alt="mesannonces" class="mesannonces"  border="0"/></a>
			<a href="ajoutannonceparticulier.php"><img src="contenu/jajoute2.png" alt="jajoute" class="jajoute" border="0"/></a>
			<a href="particulier/modifierannonce.php"><img src="contenu/modifierannonces2.png" alt="modifierannonces" class="modifierannonces" border="0"/></a>			
			<a href="mesdonnees.php"><img src="contenu/mesdonnees2.png" alt="mesdonnees" class="mesdonnees" border="0"/></a>	
			
			
			<div id="texte"><hr><b>Actions :</b></hr>
			</td>
		</tr>		
		<tr>
				<td>
			<div id="tableauannonces">		
			<b>Bienvenue dans votre Logis:</b>
			<div id="textebienvenue">
				<br /><br />
				Ici vous pourrez ajouter de nouvelle annonces,
				les modifiers ou les supprimer si une transaction à eut lieu.
				Vos annonces seront visible sur notre site pendant 2 mois,puis elle seront supprimer.
				Vous pourrez a nouveau la republier.
				<br /><br />
	          <img src="contenu/cartable.jpg" alt="cartable" class="cartable"  border="1"/></a>
				</td>
		</tr>
		
		</div>
		
		<div id="texte">
		
		

		</div>
		</table>
		</div>
			</div>
			</div>
			</div>
</div>
<?php
include 'php/connect.php';
$numeroannonce=$_GET['numannonce'];
$sql= "SELECT annonces.region, annonces.titreannonce,annonces.typeannonce, annonces.descriptionannonce, annonces.numannonce, annonces.prix, annonces.date, images.miniature, images.id_img, utilisateurs.numutilisateurs, utilisateurs.mailutilisateurs, utilisateurs.telephone
FROM annonces
LEFT JOIN images ON images.numannonce = annonces.numannonce
LEFT JOIN utilisateurs ON utilisateurs.numutilisateurs = annonces.numutilisateurs
WHERE annonces.numannonce = '$numeroannonce'";

$req= mysql_query($sql) or die ('erreur sql §<br />'.$sql.'<br />'.mysql_error());


while($data=mysql_fetch_array($req)) 
  { // ici la boucle qui permet d'effectuer la recherche 
  ?>

<form name="modificationannonce" action="validationmodificationannonce.php" method="POST">	
	<div id="formulaire">	
		
		
		
		
		
		
		<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" value="<?php echo $data['titreannonce'];?>" /><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"><?php echo $data['descriptionannonce'];?></textarea><br />
		<label for="prix">Prix:</label><br />
			<input type="prix" name="prix" id="prix" size="20" value="<?php echo $data['prix'];?>" /><br />	
	
	


</form>



<?php
  }
 mysql_free_result ($req);
mysql_close ();
  ?>
 <?php
} else {
        echo '<br>Vous n\'avez pas les droits pour regarder cette page...<br><br>';
        echo '<a href="index.php">Retour</a>';
} 
?> 
<div id="pied_de_page">
 
 </div>


	
	
</body>
</html>
Sinon a se que je peut comprendre dans mon fichier de session faudrait peut etre que je rajoute
ceci
$_SESSION['numannonce'] = $user['numannonce'];
comme sa sera propre a l'utilisateur non ?
Puis aprés faudrai que je remploie dans mon script de modification de page non ?
session_start();
// tester la présence de la session numutilisateurs
if ( isset( $_SESSION['NUMUTILISATEURS']) ) {
// Recuperation pour la variable 
$NUMUTILISATEURS = $_SESSION['NUMUTILISATEURS'];
$numannonce=$_SESSION['numannonce'];


Re: Cacher URL + ID

Posté : 27 avr. 2010, 20:51
par Dr@ke
Bon j'ai juste survolé très rapidement...

Apparemment l'ID que tu récupères dans l'url n'est pas l'ID de l'utilisateur mais l'ID d'une de ses annonces.
Apparemment aussi, l'ID de l'utilisateur tu le récupères grâce aux sessions.
Si tout ceci est exact:
Tant que l'utilisateur ne puisse pas modifier les annonces d'un autre utilisateur, il n'y a aucun soucis.
Au pire si il est assez tordu pour modifier une autre de ses annonces en modifiant l'url, eh bien si cela l'amuse pourquoi pas :mrgreen: .

Bon si je n'ai pas tout compris ton problème, n'hésites pas à me le dire :wink:

Re: Cacher URL + ID

Posté : 27 avr. 2010, 20:53
par spidercrash
c'est exact mais j'ai fait un test en mettan l'url et j'ai changé ne numéro de l'ID d'une des annonces et ouillle je peut modifier.
Donc il faut absolument que je trouve la solution car je vais utiliser la meme chose pour supprimer l'annonce


Une fois l'utilisateur loggué il peut modifier pas avant

Re: Cacher URL + ID

Posté : 27 avr. 2010, 20:57
par Dr@ke
Oui mais si ton script est bien fait comme j'expliquais, il ne peut modifier qu'une de ses annonces, ou même la supprimer.
Même si il change le numéro de l'annonce, cela ne sera qu'une de ses annonces à lui.

Donc à lui d'assumer ses bêtises ensuite si il supprime une autre de ses annonces.
Car modifier l'url ne se fait pas par hasard, c'est véritablement intentionnel comme manipulation.

Re: Cacher URL + ID

Posté : 27 avr. 2010, 21:02
par spidercrash
mais se que je comprend pas c'est quand je change le numéro mes champs affiche le contenu d'une autre annonce meme si cela ne lui appartient pas :wink:

Re: Cacher URL + ID

Posté : 27 avr. 2010, 21:07
par Dr@ke
Donc le soucis est ailleurs, le soucis est dans la bonne récupération de l'ID utilisateur, ou de son pseudo, ou de son Email...
Tout ceci à partir d'une requête Mysql au moment où il se logue, et ensuite en transmettant et récupérant son ID grâce aux sessions de façon sécurisée...

Ce même ID que tu incluras ensuite dans la requête de modification et/ou de suppression d'une annonce...

Re: Cacher URL + ID

Posté : 27 avr. 2010, 21:15
par spidercrash
pourtant toute ces données personnel et meme ces annonces a lui sont bien transmise.

Est ce pas ma requete ?
$numeroannonce=$_GET['numannonce'];
$sql= "SELECT annonces.region, annonces.titreannonce,annonces.typeannonce, annonces.descriptionannonce, annonces.numannonce, annonces.prix, annonces.date, images.miniature, images.id_img, utilisateurs.numutilisateurs, utilisateurs.mailutilisateurs, utilisateurs.telephone
FROM annonces
LEFT JOIN images ON images.numannonce = annonces.numannonce
LEFT JOIN utilisateurs ON utilisateurs.numutilisateurs = annonces.numutilisateurs
WHERE annonces.numannonce = '$numeroannonce'";

Re: Cacher URL + ID

Posté : 27 avr. 2010, 21:20
par Dr@ke
WHERE annonces.numannonce = '$numeroannonce'";
Le seul WHERE que je vois c'est:
Où le numéro de l'annonce est l'ID annonce
(Ainsi effectivement, tu recherches une annonce, sans préciser un utilisateur en particulier)

Ta requête ne prend pas en compte l'ID utilisateur, le WHERE n'est donc pas complet.

Re: Cacher URL + ID

Posté : 27 avr. 2010, 21:29
par spidercrash
oui effectivement

mais je peut faire
WHERE annonces.numannonce = '$numeroannonce'.'$numutilisateurs'";
?

ou bien
WHERE annonces.numannonce = '$numeroannonce','utilisateurs, nummutilisateurs = '$numutilisateurs'";
?

Re: Cacher URL + ID

Posté : 27 avr. 2010, 21:35
par Dr@ke
WHERE annonces.numannonce = '$numeroannonce' and truc = '$NUMUTILISATEURS'";
Remplace truc par le nom du champ qui contient l'ID de l'utilisateur...

Re: Cacher URL + ID

Posté : 27 avr. 2010, 21:44
par spidercrash
exact cela marche nickel ne pas oublier de preciser le champs de l'id de l'utilisateur pour un controle ;).
merci de ton aide :wink:

Derniére question
dans ma table j'ai un champs qui s'apelle typeannonce qui sont les resultat de bouton ratio

On peut recuperer le resultat et le rafficher dans un bouton ration ?

exemple si dans la base j'ai divers le bouton ratio de diver se coché voit tu se que je veut dire .

car pour mes champs input j'utilise cela : value="<?php echo $data['titreannonce'];?> pour recupere le contenu

En tout cas merci de ton aide