Affichage de résultat sur une page identique pour tous

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Affichage de résultat sur une page identique pour tous

par Ayreon » 09 janv. 2009, 12:41

Merci beaucoup pour votre aide rapide, efficace et précieuse !
C'est réglé !

Bonne journée !

Re: Affichage de résultat sur une page identique pour tous

par zeus » 09 janv. 2009, 12:28

Bonjour,

Dans le code que tu nous montre, "2" est l'id de l'article que tu veux afficher.
Si tu veux faire une seule page qui peut afficher tout les articles de ta base, il faut que tu sois capable de passer cet id à ta page et de le recupérer dans ton code pour pouvoir rendre ta page dynamique.

Prennons un exemple : sur la liste de tes articles, tu as 5 articles, numérotés de 1 à 5.
Tu veux tous les rediriger sur la page http://www.monsite.com/affiche_article.php.
Afin que la page affiche_article.php sache quel article afficher, il faut que tu lui indiques, en passant un paramètre, de cette manière :

Code : Tout sélectionner

http://www.monsite.com/affiche_article.php?id_article=1
De cette manière, tu demandes l'affichage de l'article dont l'id est 1.

Maintenant, dans la page "affiche_page", il faut que tu récupères ce paramètre. Comme le paramètre en question est dans l'URL, il va être disponible à PHP dans la variable $_GET['id_article']
Une fois cet id récupéré, tu peux le passer à ta requête pour que la requête récupère l'article dont l'id est passé en paramètre



ATTENTION : ceci est le principe de base, que j'ai volontairement laissé simple pour que tu puisse comprendre. Or, il faut que tu ajoutes quelques notions de sécurité.
Actuellement, on récupère directement ce qui est dans l'url et on le passe à la requete, sans aucune protection. Cette manière de faire est très dangereuse.
Nous devons donc protéger ce qui viens de l'url pour que si un petit malin tente des choses, que ça ne réussisse pas. Pour cela, il suffit de protéger ta variable avec mysql_real_escape_string()
$id_article = mysql_real_escape_string( $_GET['id_article'] );
$sql="SELECT * FROM biens WHERE id='".$id_article."'";
Le code final ressemblera donc à ça :
 <?php 
		
	$id_article = mysql_real_escape_string( $_GET['id_article'] );
            $sql="SELECT * FROM biens WHERE id='".$id_article."'";
	$resultat = mysql_query($sql) or die ('Erreur '.$sql.' '.mysql_error());	
		
	while ($ligne = mysql_fetch_assoc($resultat)) {
	?>

Affichage de résultat sur une page identique pour tous

par Ayreon » 09 janv. 2009, 11:46

Bonjour !

J'aimerais savoir ce que je dois utiliser si je souhaite que tous les résultats de ma requêtes envoie vers la même page. Pour être plus clair, je souhaite n'avoir qu'une seule page "produit" pour tous.
Mais je ne sais pas comment faire... Pour l'instant j'utilise cette méthode
 <?php 
		
	$sql="SELECT * FROM biens WHERE id='2'";
	$resultat = mysql_query($sql) or die ('Erreur '.$sql.' '.mysql_error());	
		
	while ($ligne = mysql_fetch_assoc($resultat)) {
	?>

Mais ça m'oblige à créer une nouvelle page pour chaque article et de devoir rentrer à chaque fois une URL différente dans ma base de donnée pour chaque produit...
Il doit surement y avoir moyen d'éviter ça n'est-ce pas ?

Enfin si quelqu'un peut m'aiguiller, ça serait très sympa !

Merci d'avance !