URL REWRITING

Fermé
jolefou - 26 nov. 2007 à 23:09
 jolefou - 27 nov. 2007 à 08:25
Bonjour,

J'ai lu des tutos sur l'url rewriting que j'ai bel et bien réussi à mettre en place...

Il s'agit en fait d'un url rewriting pour mon systeme de pagination de ma page loteriesTESTOK2.php (page de test pour le moment).

Je vais de suite donner mon code :


Fichier HTACCESS :

Options +FollowSymlinks
RewriteEngine on
RewriteRule ^loteriesTESTOK2-([0-9]+)\.html$ /loteriesTESTOK2.php?limite=$1 [QSA,L]


L'url rewriting fonctionne bien car ma page :

http://ww1.mapage.com/loteriesTESTOK2.php?limite=$1


devient

http://ww1.mapage.com/loteriesTESTOK2-1.html


Je souhaiterai en fait faire en sorte que l'url réécrite contienne le titre de mon jeu concours...

Supposons que j'ai sur ma page, le jeu concours ebuyclub avec son descriptif. Le titre "Jeu concours ebuyclub" est présent dans ma base de données et la variable qui contient cette valeur est $titreConcours.

Je souhaiterai que l'url rewriting prenne en considération cette variable...et me réécrive donc l'adresse sous cette forme :

http://ww1.mapage.com/loteriesTESTOK2-Jeu-concours-ebuyclub-1.html


J'ai chercher sur pas mal de site mais j ai trouvé nul part une explication qui montre comment intégrer une variable...pourtant dans la plupart des forum maintenant il y a cette technique utilisée...

Pourriez vous me dire comment faire, ou me donner un lien d'un tutoriel si vous en avez un...

Merci

2 réponses

Bonsoir
En fait, j'arrive pas à intégrer la requête...

Dans mon .HTACCESS j'ai donc :

Options +FollowSymlinks
     RewriteEngine on
     RewriteRule ^loteriesTESTOK2-([0-9]+)-([a-zA-Z0-9-]+)\.html$ /loteriesTESTOK2.php?limite=$1 [QSA,L]


Puis dans ma page, j'ai un systeme de pagination....Voici une partie du script:

				<?php 
include ('dbconnect.php'); 

session_start(); 

$pseudo = $_SESSION['pseudo'];  

 // on va afficher 5 résultats par page.
$nombre = 4; 

// si on arrive sur la page pour la première fois limite = 0
if (!isset($limite)) $limite = 0;  
    
$page = loteriesTESTOK2;

$select = 'SELECT count(idccargent) FROM listeconcoursArgent';

$result = mysql_query($select,$db) or die ('Erreur : '.mysql_error() );

$row = mysql_fetch_row($result);

$total = $row[0];

// on crée la requete SQL
$sql = 'SELECT idccargent, lienconcoursargent, jeuxconcoursargent, plusinfo, nomconcoursargent FROM listeconcoursArgent WHERE idccargent NOT IN (SELECT idcampconfirmer FROM confirmeconcoursargent WHERE pseudo="'.$pseudo.'" GROUP BY idcampconfirmer) ORDER BY typeconcours DESC LIMIT '.$limite.','.$nombre; 

// on envoie la requête

$req = mysql_query($sql,$db) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); 

$limitesuivante = $limite + $nombre;
$limiteprecedente = $limite - $nombre;
$titreconcours=mysql_query('SELECT nomconcoursargent FROM listeconcoursArgent ORDER BY RAND()');

if (!$req)
{
	echo 'query = '.$sql."\n";
	echo 'mysql_errno = '.mysql_errno($link)."\n";
	echo 'mysql_error = '.mysql_error($link)."\n";	
	exit;
} 

if (mysql_num_rows($req) > 0 & session_is_registered('id')==true) 
{

	// on fait une boucle qui va faire un tour pour chaque enregistrement
	while($data = mysql_fetch_array($req)) 
    	{	
        	echo '<table width="534" height="31" border="0">
                <tr>
                  <td width="410" height="25" bordercolor="#044A74" bgcolor="#025384">'.$data['nomconcoursargent'].'</td>
                  <td width="107" bordercolor="#044A74" bgcolor="#025384"><div align="center">'.$data['plusinfo'].'</div></td>
                </tr>
              </table>
			  <table width="534" border="0">
                <tr>
                  <td width="155" height="83" bordercolor="#044A74" bgcolor="#025384">Lots mis en jeu : </td>
                  <td width="354" bordercolor="#044A74" bgcolor="#025384">'.$data['jeuxconcoursargent'].'</td>
                </tr>
              </table>			  
			  <table width="534" border="0">
                <tr>
                  <td width="522" bordercolor="#044A74" bgcolor="#025384"><div align="center">'.$data['lienconcoursargent'].'</div></td>
                </tr>
              </table>
			    <table width="534" border="0">
                  <tr>
                    <td bordercolor="#044A74" bgcolor="#025384"><div align="center"><form action="TESTSUP.php" 	method="post">
		<input name="idccargent" type="hidden" value="'.$data['idccargent'].'">
		<input name="pseudo" type="hidden" value="'.$pseudo.'">
		<input type="submit" class="fondblanc" value="Effacer de mon compte">
		 </form></div></td>
                  </tr>
                </table><br><br>';
				
}   
echo '<table width="530" border="0"><tr>';
if($limite != 0) {
echo '<td width="215" bordercolor="#044A74" bgcolor="#025384"><div align="center"><a href="'.$page.'-'.$limiteprecedente.'-'.$titreconcours.'.html">Page précédente</a></div></td>';
}
if($limitesuivante < $total)
{
echo '<td width="215" bordercolor="#044A74" bgcolor="#025384"><div align="center"><a href="'.$page.'-'.$limitesuivante.'-'.$titreconcours.'.html">Page Suivante</a></div></td>';
} echo '</tr></table>';
}

...etc...  ?>


Je pense que le probleme doit venir de la :

<? $titreconcours=mysql_query('SELECT nomconcoursargent FROM listeconcoursArgent ORDER BY RAND()');
 ?>


et

<? echo '<table width="530" border="0"><tr>';
if($limite != 0) {
echo '<td width="215" bordercolor="#044A74" bgcolor="#025384"><div align="center"><a href="'.$page.'-'.$limiteprecedente.'-'.$titreconcours.'.html">Page précédente</a></div></td>';
}
if($limitesuivante < $total)
{
echo '<td width="215" bordercolor="#044A74" bgcolor="#025384"><div align="center"><a href="'.$page.'-'.$limitesuivante.'-'.$titreconcours.'.html">Page Suivante</a></div></td>';
} echo '</tr></table>';
} ?>


Mais je ne vois pas comment faire autrement... o_O

Lorsque je clique sur le lien suivant en bas de page, le lien est sous la forme :

https://www.pagesjaunes.fr/ id #11.html

Le titre n'est donc pas transmis...

Aidez moi svp !

Merci
0
Bonjour,

Je pense que c est parce que je n ai pas extrait les données non?

Je viens de faire :

<? $requeteconcours=mysql_query('SELECT nomconcoursargent FROM listeconcoursArgent ORDER BY RAND()');
$titreconcours = mysql_fetch_array($requeteconcours); ?>


Mais cela n affiche pas le titre du concours...mais pour toutes les pages 'array' : https://www.pagesjaunes.fr/

J ai cherché un peu partout mais je n ai pas trouvé d exemple pour extraire des données sans les insérer dans un tableau...comment faire? ..ou le probleme se trouverai ailleurs?

Merci
-1