Problème redirection si c'est une mauvaise ur

Utilisateur anonyme -  
okuni Messages postés 1325 Statut Membre -
Salut tous les monde !
Je m'adresse à vous car j'ai un petit soucis ! Avec mon code php et l'url rewriting !
Alors voilà : J'ai fais des url comme ça : news-le-titre-de-la-news-1.html mais si je tape news-le-tietr-de-la-news-1.html C'est pareil alors j'ai trouvé un code que j'ai adapter a mon site :

<?php
$id_news = $_GET['id_news'];
$news = mysql_query("SELECT * FROM CMS_news WHERE id = '".$id_news."'")or die(mysql_error());
$news1 = mysql_fetch_assoc($news);
if($news1["url"]!=$_GET["url"]){
		header("location: ./news-".$news1["url"]."-".$news1["id"].".html");
} 
?>


Mais ça ne redirige pas si c'est pas la bonne url o_O

J'implore votre aide.
Cordialement,
Alexandre

9 réponses

  1. okuni Messages postés 1325 Statut Membre 126
     
    fait des echo pour voir les valeurs des 2 varaibles.

    une question, comment fait tu pour différencier news, le-titre-de-la-news et 1 ?
    puisque c'est le - qui sépare tout. Tu utilise quoi comme regex ?
    0
    1. Utilisateur anonyme
       
      Ou la !
      Tu me pose une colle !
      Que veux tu que je fasse avec les echo ?

      a+ merci d'avance ;)
      0
    2. okuni Messages postés 1325 Statut Membre 126
       
      Par exemple comme ceci :
      <?php
      $id_news = $_GET['id_news'];
      $news = mysql_query("SELECT * FROM CMS_news WHERE id = '".$id_news."'")or die(mysql_error());
      $news1 = mysql_fetch_assoc($news);

      echo '$news1["url"] : '.$news1["url"].'<br/>';
      echo '$_GET["url"] : '.$_GET["url"].'<br/>';
      if($news1["url"]!=$_GET["url"]){
      header("location: ./news-".$news1["url"]."-".$news1["id"].".html");
      }
      ?>
      tu verras tous de suite quels sont les valeurs de tes variables.
      0
    3. Utilisateur anonyme
       
      Merci je test !
      0
    4. Utilisateur anonyme
       
      Non ça ne marche toujours pas :'(
      0
    5. okuni Messages postés 1325 Statut Membre 126
       
      qu'est ce que retourne les variables ?
      donne moi ce que donne les echo.
      0
  2. okuni Messages postés 1325 Statut Membre 126
     
    Si tu ne réponds pas à mes questions, j'aurai encore plus dur à t'aider ;)

    quand tu dis "Sinon rien" à ton message précédent, ça veux dire quoi ?

    Je suppose que si je tape cette adresse dans la barre d'adresse cela fonctionne ?
    news-microsoft-rend-office-gratuit-sur-internet -1.html

    le ./ devant ton adresse dans le Location, c'est indispensable ?
    0
    1. Utilisateur anonyme
       
      Quand je dis sinon rien c'est que sinon rien ne s'affiche .

      Si tu tape ça non car après internet t'as un espace donc c'est not found Si tu enlève l'espace et que tu recolle le -1 oui ça marche.

      Et pour finir le ./ n'est pas indispensable mais j'ai essayer tous les petit truc possibles ! lol
      0
    2. Utilisateur anonyme
       
      Petite rectification !

      Ça n'affiche pas la news sur office car c'est l'id de la news sur l'ipad ! ;)
      0
    3. okuni Messages postés 1325 Statut Membre 126
       
      Donc, il y a un moment où tes echo n'affiche rien ?
      Il est là le problème.
      0
    4. Utilisateur anonyme
       
      Ah ! si j'avais pas vue ! Ils affichent ça :

      $news1["url"] : microsoft-rend-office-gratuit-sur-internet
      $_GET["url"] : microsoft-rend-office-gratuit-sur-internet


      Donc pas de problème ?
      Je comprends pas que ça marche pas !
      0
  3. okuni Messages postés 1325 Statut Membre 126
     
    effectivement c'est bizarre.
    essaye ceci :
    if($news1["url"]!=$_GET["url"]){
    echo 'Redirection';
    }
    else{
    echo 'Pas de redirection';
    }

    si les url sont différents, il affichera Redirection. Si c'est le cas, c'est ton header Location qui déconne. sinon, il y a un soucis ^^"
    0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. Utilisateur anonyme
     
    C'est bon ça marche !
    0
    1. Utilisateur anonyme
       
      Si c'est pas bon ça affiche redirection
      0
    2. okuni Messages postés 1325 Statut Membre 126
       
      donc c'est ton header qui est foireux. bizarre car alors il devrait mettre une erreur.
      essaye ceci :
      header('location:news-'.$news1['url'].'-'.$news1['id'].'.html');
      0
  6. Utilisateur anonyme
     
    Il y a bien une redirection mais l'adresse ne change pas !

    Je m'explique : Je vais sur le page (bonne url ) j'enlève une lettre je charge la page puis elle se recharge mais ne change pas la lettre manquante :'(

    On y est presque !
    mdr
    0
  7. Utilisateur anonyme
     
    Dejà regarder c'est avec ça que j'ai trouvé le bout de code !

    Mais ce bout de code na marche pas ! :/

    Merci quand même ;)
    0
    1. LelLex Messages postés 1753 Statut Membre 112
       
      Si c'est le méthode de l'URL-Rewriting qui ne marche pas, c'est parce qu'il faut peut être l'activer. Même si généralement c'est activer.

      Pour moi, ça marche !
      0
    2. Utilisateur anonyme
       
      L'url rewrting marche très bien chez moi ;) mais pas ça :S
      0
    3. okuni Messages postés 1325 Statut Membre 126
       
      tu as essayé ceci :
      header('location:news-'.$news1['url'].'-'.$news1['id'].'.html');

      ça ne fonctionne toujours pas ?

      J'avoue que je ne comprend pas. Il devrait au moins y avoir une erreur s'il n'y a pas de redirection.
      0
    4. Utilisateur anonyme
       
      Oui j'ai déjà essayer ! :/
      0
  8. LelLex Messages postés 1753 Statut Membre 112
     
    La concaténation marche si c'est entre <?php // ici ?> !?
    0
    1. okuni Messages postés 1325 Statut Membre 126
       
      Je ne comprend pas ce que tu veux dire. pourquoi utiliser la concaténation dans un commentaire ?
      0
    2. LelLex Messages postés 1753 Statut Membre 112
       
      Je parle de ça :
       'location:news-'.$news1['url'].'-'.$news1['id'].'.html'
      0
    3. okuni Messages postés 1325 Statut Membre 126
       
      c'est comme ça que je fais sur mon site, j'ai simplement changé les variables donc oui ça fonctionne.
      0