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

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
Utilisateur anonyme
 
Ou la !
Tu me pose une colle !
Que veux tu que je fasse avec les echo ?

a+ merci d'avance ;)
0
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
Utilisateur anonyme
 
Merci je test !
0
Utilisateur anonyme
 
Non ça ne marche toujours pas :'(
0
okuni Messages postés 1325 Statut Membre 126
 
qu'est ce que retourne les variables ?
donne moi ce que donne les echo.
0
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
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
Utilisateur anonyme
 
Petite rectification !

Ça n'affiche pas la news sur office car c'est l'id de la news sur l'ipad ! ;)
0
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
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
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
Utilisateur anonyme
 
ok !
Je test
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
 
C'est bon ça marche !
0
Utilisateur anonyme
 
Si c'est pas bon ça affiche redirection
0
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
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
LelLex Messages postés 1753 Statut Membre 112
 
Tu peux le faire avec htaccess.
Lien : https://www.grafikart.fr/tutoriels/url-rewriting-71 ( C'est vers la fin de la video ! )
0
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
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
Utilisateur anonyme
 
L'url rewrting marche très bien chez moi ;) mais pas ça :S
0
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
Utilisateur anonyme
 
Oui j'ai déjà essayer ! :/
0
LelLex Messages postés 1753 Statut Membre 112
 
La concaténation marche si c'est entre <?php // ici ?> !?
0
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
LelLex Messages postés 1753 Statut Membre 112
 
Je parle de ça :
 'location:news-'.$news1['url'].'-'.$news1['id'].'.html'
0
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