[PHP] RewriteRule

okuni Messages postés 1325 Statut Membre -  
okuni Messages postés 1325 Statut Membre -
Bonjour,
j'utilise le système d'url rewritting sur mon site mais je viens de rencontrer un problème.
J'ai mis le code suivant dans mon htaccess :
RewriteRule ^(series)-([a-z_0-9]+)-([a-zA-Z0-9]+)\.html$ index.php?section=$1&page=$2&serie=$3

mais lorsque j'écris dans l'url : http://www.monsite.com/sites-liste-test.html
donc la valeur test pour $3
j'obtiens une erreur (erreur php et non apache)
alors que si j'écris 2 ou test2, le script fonctionne.

En plaçant des echos un peu partout, j'ai remarqué que si j'écris test, ma variable $_GET['serie'] est vide.

Pouvez-vous m'aider?
--
L'amour, c'est comme les spaghettis; quand c'est mou, c'est cuit. (proverbe belge)

7 réponses

  1. Luan1604 Messages postés 141 Statut Membre 4
     
    Bonsoir,

    Serait-il possible d'avoir un la portion de code qui pourrait poser problème ?

    Merci.
    0
  2. okuni Messages postés 1325 Statut Membre 126
     
    if (isset($_POST['serie']) or isset($_GET['serie']))
    	{
    		if (isset($_GET['serie']))
    		{
    			$serie = $_GET['serie'];
    		}
    		else
    		{
    			$serie = $_POST['serie'];
    		}
    }

    voilà, je ne met pas le reste vu le problème réside dans le $_GET['serie'].
    Pour info, mon formulaire avec le $_POST['serie'] fonctionne parfaitement.
    0
  3. Luan1604 Messages postés 141 Statut Membre 4
     
    Je ne suis pas sûr mais pourquoi ne pas essayer ceci

    if (isset($_POST['serie']) or isset($_GET['serie']))
    	{
    		if (isset($_GET['serie']))
    		{
    			$serie = $_GET['serie'];
    		}
    		elseif(isset($_POST['serie']))
    		{
    			$serie = $_POST['serie'];
    		}
    }
    
    0
  4. okuni Messages postés 1325 Statut Membre 126
     
    Le elseif est inutile car je test les variables avant.
    Et si elles sont tous les 2 vides, $serie sera vide mais ça ne pause aucun problème par la suite.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Luan1604 Messages postés 141 Statut Membre 4
     
    Bonsoir,

    Alors je vais vous embêter encore plus, est-ce possible d'avoir une plus grosse portion du code ? J'ai du mal à m'imaginer :S
    0
  7. okuni Messages postés 1325 Statut Membre 126
     
    Comme tu veux mais le problème viens directement du GET['serie'] qui est vide.
    <?php
    	//formulaire pour une recherche.
    	?>
    	<p><form action="series-liste.html" method="post">
    		<label for="serie">Rechercher une série : </label><input type="text" name="serie" id="serie" value="<?php
    		if (!empty($_GET['serie']))
    		{
    			echo $_GET['serie'];
    		}
    		else
    		{
    			echo $_POST['serie'];
    		}
    		?>" class="galerieBtn" />
    		<input type="submit" name="rechercher" value="Rechercher" class="galerieBtn" />
    
    //Si formulaire rempli alors on recherche like $_POST['serie']
    	if (isset($_POST['serie']) or isset($_GET['serie']))
    	{
    		if (isset($_GET['serie']))
    		{
    			$serie = $_GET['serie'];
    		}
    		else
    		{
    			$serie = $_POST['serie'];
    		}
    		
    		//recherche pour les séries
    		$result_serie = mysql_query("SELECT id,serie,creation FROM raynal_video_serie WHERE serie LIKE '%$serie%' and type='1' ORDER BY serie ASC");
    		//recherche pour les mangas
    		$result_manga = mysql_query("SELECT id,serie,creation FROM raynal_video_serie WHERE serie LIKE '%$serie%' and type='2' ORDER BY serie ASC");
    	}
    	else
    	{
    		$result_serie = mysql_query("SELECT id,serie,creation FROM raynal_video_serie WHERE type='1' ORDER BY serie ASC");
    		$result_manga = mysql_query("SELECT id,serie,creation FROM raynal_video_serie WHERE type='2' ORDER BY serie ASC");
    	}


    voila, tu as tous maintenant.
    le début est donc le formulaire d'où provient $_POST['serie']
    0
  8. okuni Messages postés 1325 Statut Membre 126
     
    Personne n'a de solution ?
    0