Affichage de requêtes et template

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 requêtes et template

par stallaf » 10 nov. 2007, 21:38

Bonjour,

En fait la solution était très simple : Dans mon formulaire l'action doit être :

Code : Tout sélectionner

iaction="ndex.php?resultat"
.
C'est là que je ne n'avais pas saisi.

Problème résolu, merci.

par stallaf » 07 nov. 2007, 16:23

h0_noMan,

Je te remercie pour ton aide mais je n'y arrive pas.
En voulant aller trop vite j'ai sans doute brulé trop d'étapes en PHP et visiblement, je dois reprendre les choses depuis le début.

Dans tous les cas merci.

par h0_noMan » 05 nov. 2007, 19:08

Il te faut un parametre pour ta page de recherche, un autre pour les news par exemple.
$cat = (isset($_GET['cat']))?$_GET['cat']:'home';  // Si cat n'est pas defini alors => accueil
if($cat=='news')
{
include("./news.html");
}elseif($cat=='recherche'){
include("./recherche.html");
}else{
include("./home.html");
}
Il te faut choisir quoi afficher en fonction d'un parametre dans l'URL.

par Invité » 05 nov. 2007, 18:58

h0_noMan, c'est re-moi,
Le mieux est de creer une fonction dans resultat.php qui affichera les resultats.
Apres dans index.php si (par ex action=affich_resultat) tu recupere les données du formulaire et tu les envoie dans la fonction qui affichera les resultats.
Je veux bien mais là je butte sur la récupération des donnés du formulaire et le renvoi dans la fonction qui affiche les résultats. Voici ma fonction pour l'affichage :

Code : Tout sélectionner

$pageOK = array( 'blabla' => 'dossier/blabla.htm', 'truc' => 'truc.php'); // Je teste que le paramètre d'url existe et qu'il est bien autoris&eacute -- if (( isset($_GET['page'])) && ( isset($pageOK[$_GET['page']] ) ) ) { include($pageOK[$_GET['page']]) ; } // Sinon j'affiche la page d'acceuil -- else { include("accueil.htm") ; }
A ce stade tout ce que j'arrive à faire est d'afficher dans ma page centrale la page d'accueil à laquelle s'ajoute le résultat de la recherche. Or je ne veux que le résultat de la recherche.

par h0_noMan » 05 nov. 2007, 18:01

Avec $_GET['requete'] tu auras le contenu de la variable requete de ton url.

Tiens, un tuto sur $_GET et $_POST
http://www.phpsources.org/tutoriel-get-post.htm

par Invité » 05 nov. 2007, 17:58

Merci pour ta réponse h0_noMan,

J'avais déjà tester la modification de resultats.php pour qu'il contienne tout (ton premier conseil)
mais je me heurte à l'impossibilité d'afficher seulement la page centrale en raison des droits d'affichage
de mon script.
Pour le reste je vais encore essayer selon tes conseils.
Cependant si je comprend bien le fonctionnement du script du moteur il suffirait de récupérer le résultat de la variable requete qui passe par l'url. Mais comment ?

par h0_noMan » 05 nov. 2007, 15:29

L'action de ton formulaire est 'resultat.php'

Si tu veux afficher les resultats dans ta page entiere alors soit:

- tu modifies resultat.php pour qu'il contienne les style et le reste (formulaire,....)
- tu changes l'action de ton formulaire pour index.php et tu effectuera l'appel a resultat.php en fonction de tes conditions (ex: cat=1 ou action=resultat)

Le mieux est de creer une fonction dans resultat.php qui affichera les resultats.
Apres dans index.php si (par ex action=affich_resultat) tu recupere les données du formulaire et tu les envoie dans la fonction qui affichera les resultats.

Je sais pas si je suis compréhensible. :?

Affichage de requêtes et template

par stallaf » 05 nov. 2007, 15:06

Bonjour à tous,

environnement : Windows - EasyPhp (php5)
niveau : débutant en php

Mon problème est le suivant :
J'utilise un moteur interne de recherche en php (sans BDD) et je n'arrive
pas à afficher le résultat dans ma page centrale.
Le site est construit de la manière suivante :
CSS pour la présentation ;
Structure identique pour toute les pages ;
Index.php contient les includes des menus, en-tête, pied... ;
La page centrale dépend donc du css ;
Le formulaire pour la recherche se trouve dans l'include en-tête ;
L'affichage du contenu de la page centrale est soumis a une fonction d'autorisation (array) en php ;
Les chemins sont du type :

Code : Tout sélectionner

index.php?truc=truc&page=machin
L'url de la page de résultats donne :

Code : Tout sélectionner

http://monsite/recherche/resultats.php?requete=machin&Submit=Go
Le résultat de ma recherche s'affiche en remplacement de ma page d'accueil, bien entendu sans appliquer ma feuille de style. L'adresse des pages données en résultat donne le chemin absolu . Ces pages s'affichent donc également sans styles.

Comment afficher dans ma page centrale ? J'y ai passé deux nuits complètes à lire, chercher, tester mais c'est le néant. J'ai le même problème avec tout type de formulaire comme mes sondages par exemple. J'ai surement dépasser mes limites en tant qu'autodidacte ...