IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Moteur de recherche, affichage par page et url rewriting


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 5
    Points : 7
    Points
    7
    Par défaut Moteur de recherche, affichage par page et url rewriting
    Je suis en train de concevoir un site d'annonces en PHP/MySQL. J'ai donc une page qui contient un moteur de recherche multicritères: par exemple l'utilisateur choisit les critères suivants : location, appartement, paris. A partir de ça, j'envoie les données du formulaire en POST sur la même page (c'est-à-dire le formulaire et le traitement des données une fois envoyées ne font qu'une seule page web) et je constitue une requête MySQL dynamique genre select * from matable where choix='".$choix."' and typebien='".$typebien."' etc... précision : $choix = $_POST['choix'].

    Jusque là pas de problème mais ça se complique car là dessus j'ai un affichage des résultats page par page. J'ai bien la première page mais pour la seconde les données en post ne sont pas renvoyées sur la page (la page considère donc que le formulaire n'a pas été envoyé une première fois et réaffiche celui-ci au lieu d'afficher la seconde page de résultats).

    Quelle est donc la bonne méthode ? Passer les variables par l'url mais comment faire pour les accents ou les apostrophes ? Enconder l'url ne me satisfait pas trop car je voudrais obtenir des url 'propres' avec l'url rewriting du genre www.monsite.com/location-appartement-paris.htm
    comme on en voit de plus en plus sur certains sites afin d'obtenir un référencement optimal.

  2. #2
    Membre du Club
    Inscrit en
    Février 2006
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 60
    Points : 53
    Points
    53
    Par défaut
    tu pourais faire en sorte que le lien vers page 2 soit un submit en javascript
    comme ca sa enverait ton formulaire en post le seul petit hic c'est si le javascript est deactivé

  3. #3
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Salut

    Un lien href ne peut pas (sans javascript) envoyer de données avec la méthode POST (la méthode classique pour les formulaires), seulement en GET (méthode classique pour les liens).

    Habituellement, pour transmettre des paramètres de page en page, il y a deux solutions :
    • envoyer tes données POST dans des paramètres GET, ce qui peut rebuter à la lecture de l'URL
    • sauvegarder tes données POST dans une session et utiliser ainsi ta session dans toutes les pages (plus pratique mais, du coup, rien n'est affiché dans l'URL)

    Concernant l'URL Rewriting, es-tu certain que tu souhaites référencer les résultats de recherche ? Je ne le pense pas car, normalement, il devrait être possible d'accéder à toutes tes annonces sans avoir besoin de les rechercher.
    Ainsi, pas de souci pour l'URL Rewriting. De toute manière, pour réécrire tes liens, tu devras supprimer tous les accents, ce qui t'empêchera +/- d'utiliser les URLs réécrites pour la recherche.

    Pour résumer, je te recommande d'utiliser les sessions :
    http://cyberzoide.developpez.com/php4/faqsession/
    http://beaussier.developpez.com/articles/php/session/
    http://julp.developpez.com/php/les-sessions/

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 5
    Points : 7
    Points
    7
    Par défaut Précision pour réécriture de l'url
    Merci pour cet éclairage Kirkis. En fait je ne souhaite pas réécrire spécialement l'url de la recherche mais bien l'url de la page qui affichera le détail d'une annonce. Là encore je sèche même si j'ai une petite idée sur l'algo : doubler les paramètres POST pour en obtenir une version sans accents ni espaces, passer ceux-ci en get dans le lien (et ensuite réécrire le lien avec l'url rewriting), ce qui me donnerait un truc du genre monsite.com/location-appartement-paris-123.htm ou 123 est l'index de l'annonce. En fait il n'y a que l'index qui est utile à récupérer, les autres paramètres sont juste là pour le référencement. Est-ce bien ça ?

  5. #5
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Non

    Je crois que tu confonds les résultats d'un formulaire avec la page de détails d'un appartement.

    Lorsque tu recherches des appartements, tu débarqueras toujours sur la même page qui n'aura certainement pas de paramètres GET, uniquement des paramètres POST invisibles depuis l'URL. En effet, il n'est pas nécessaire d'afficher ces paramètres, dans la mesure où ils sont issus d'une requête utilisateur et, à ce titre, ne méritent pas d'être référencés.

    Après une recherche, tu obtiens donc la page recherche.php.
    Dans cette page, tu n'as plus des formulaires de recherche mais des liens href vers appartement.php, chacun d'eux contenant des paramètres GET. Ce sont ces liens href (et non la page de destination du formulaire) que tu peux (dois) réécrire.

    Pour résumer : ne réécris pas recherche.php mais réécris appartement.php

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Je suis exactement dans le meme cas précis que celui la même principe et même sujet, j'ai bien reussi a faire l'url rewriting sur toutes mes pages (que j'ai passer en html) et aussi reussi a le faire sur chaque annonces avec un maximim de critères,
    La ou ça se corse comme dit précédement c'est la page de résultat concernant les listes des annonces,c'est au niveau des numéro de page ainsi que des lien pour realiser un tri par date ou par prix.... que ça devien difficile...
    Donc apparement tu préconises de ne pas réécrire cette page???
    Ca pose pa de probleme pour le referencement??
    ça aurai été pas mal de referencer les listes de biens selon certains critere...
    Apparement la seule solution serai de le faire a la main avec une combinaison de requete digne du LOTO.. lol
    Merci de me guider vers la bonne solution...

Discussions similaires

  1. [MySQL] Défaut dans (moteur de recherche avec affichage par page)!
    Par booraq dans le forum PHP & Base de données
    Réponses: 17
    Dernier message: 13/12/2013, 12h10
  2. [FPDF] Affichage par page
    Par kagura dans le forum Bibliothèques et frameworks
    Réponses: 7
    Dernier message: 16/05/2006, 12h33
  3. [MySQL] Problème d'affichage par page
    Par nal dans le forum PHP & Base de données
    Réponses: 23
    Dernier message: 29/04/2006, 14h00
  4. [MySQL] Affichage par page page : pages blanches à la fin
    Par carelha dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 11/04/2006, 13h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo