probleme de transmission de valeurs

debidebo
Invité n'ayant pas de compte PHPfrance

31 mai 2005, 15:49

bonjour,

je n'ai pas vraiment l'habitude des forums mais j'ai besoin d'aide.
J'ai réalisé un formulaire de recherche qui contient un champ texte et un bouton rechercher.
ainsi, l'utilisateur insere le mot clé à l'interieur du champ texte.
une fois le bouton valider la page de resultat correspondant au mot clé du champ texte est affichée.
la difficulté est que j'utilise une fonction javascript qui me reecrit l'url dans la barre d'adresse.
je vais vous donner un exemple:

mot clé= avion

je clique sur valider et j'obtiens la page de resultat concerant "avion".
son url est la suivante www.monsite.fr/avion.htm

grace a mon .htacces, le serveur qui ne connait pas la page avion.htm mais rechercher=keywor?avion.php, tout en m'affichant l'url sous la forme motclé.htm m'affiche la bonne page.

le probleme que je rencontre est lorsque le mot clé contient des espaces ou des ponctuations.

ex! motclé=un,deux,trois

j'ai donc créé une fonction javascript qui me remplace les , par des a

la page chargée lors de la validation est donc unadeuxatroisa.htm

le probleme est que le mot clé transmis est unadeuxatrois

ce mot clé n'existe pas!!! et j'ai besoin de recuperer un,deux,trois.

resumé:
l'url obtenue est celle desirée: unadeuxatrois.htm
par contre je n'arrive pas a recuperer la valeur initiale du mot clé.
j'espere que vous pourrez m'aider.
je vous remercie par avance.

deborah

je vous envoie le code:

<HTML>
<HEAD>
<TITLE>Moteur de recherche Webformance Search</TITLE>
</HEAD>
<BODY>
<CENTER>
<FORM ACTION="rechercheUNICODE.php" METHOD="GET" NAME="pageresult">
<br>
<br>
<br>
<INPUT TYPE="text" NAME="keyword">
<SCRIPT language="javascript">

function recupKeyword(){
return document.pageresult.keyword.value;
}

function remplace(expr) {
a1=",";
a2=":";
a3="?";
a4="'";
a5=" ";

b="a";

/***********************premier separateur*********************/
var i=0;
while (i!=-1) {
i=expr.indexOf(a1,i);
if (i>=0) {
expr=expr.substring(0,i)+b+expr.substring(i+a1.length);
i+=b.length;
}
}
/***********************deuxieme separateur*********************/
var j=0;
while (j!=-1) {
j=expr.indexOf(a2,j);
if (j>=0) {
expr=expr.substring(0,j)+b+expr.substring(j+a2.length);
j+=b.length;
}
}
/***********************3 separateur*********************/
var k=0;
while (k!=-1) {
k=expr.indexOf(a3,k);
if (k>=0) {
expr=expr.substring(0,k)+b+expr.substring(k+a3.length);
k+=b.length;
}
}
/***********************4 separateur*********************/
var l=0;
while (l!=-1) {
l=expr.indexOf(a4,k);
if (l>=0) {
expr=expr.substring(0,l)+b+expr.substring(l+a4.length);
l+=b.length;
}
}
/***********************5 separateur*********************/
var m=0;
while (m!=-1) {
m=expr.indexOf(a5,m);
if (m>=0) {
expr=expr.substring(0,m)+b+expr.substring(m+a5.length);
m+=b.length;
}
}
return expr;
}

function creerURL()
{

expr=document.pageresult.keyword.value;
expr2=remplace(expr);
alert(expr2);

var urlreecrite;
//avant la reecriture durl
//urlreecrite = "http://127.0.0.1/searchpro_fr/"+ document.pageresult.keyword.value + ".htm";
urlreecrite = "http://127.0.0.1/searchpro_fr/"+ expr2 + ".htm";
window.location = urlreecrite;

//expression=recupKeyword();
//alert(expression);
}

</SCRIPT>
<!--<INPUT TYPE="button" onclick=creerURL() VALUE="Search">-->
<INPUT TYPE="submit" VALUE="Search">
</FORM>
</CENTER>
<BR><BR><BR>
</DIV>
</BODY>
</HTML>


mercii ;-)

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

01 juin 2005, 22:40

htacces manipule des expressions régulières (chaînes de caractères incomplètes), à mon avis, c'est dans ton htaccess que tu dois définir que tu veux rechercher=keywor?avion&bateau.php au lieu de avionabateau.

De plus le choix du caractère 'a' est une mauvaise idée, prends plutôt %20 pour les espaces ou encore & qui permet de passer plusieurs paramètres en GET dans l'URL.
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.