Ce site utilise des cookies pour améliorer uniquement votre expérience utilisateur.
Vous pouvez lire à tout moment comment nous utilisons les cookies sur le site.
Bonjour à tous,
J'ai un problème avec le fichier .htaccess
, j'ai vérifié le fichier .htaccess
à l'aide du site https://htaccess.madewithlove.be/#top pour voir s'il y a des erreurs et quand je clique sur le bouton pour tester il y a une erreur qui m'affiche : This rule was not met.
J'ai bien suivi le tutoriel "Supprimer le .php de vos URLs", mais je n'arrive pas à trouver la solution pour régler ce problème.
Merci d'avance pour vos réponse.
J'ai ajouté var_dump
dans mon code et voici ce que m'affiche sur l'écran du navigateur : array(1) { ["id"]=> string(3) "1/1" }
J'ai lu cet article, j'ai ajouté ce code ligne dans la page topic.php
pour régler mon problème :
$get_id_forum = isset($_GET['id_forum']) ? $_GET['id_forum'] : NULL;
$get_id_topic = isset($_GET['id_topic']) ? $_GET['id_topic'] : NULL;
Lorsque je redirige vers la page topic.php
l'erreur undefined index
s'affiche plus sur la page, mais le contenu pour afficher un topic ne s'affiche pas sur cette page. Il n'y a rien qui s'affiche sur la page topic.php
Quand j'efface ce code ligne je n'arrive plus redirigé vers la page topic.php
et je reviens directement sur la page forum.php
<?php
echo $get_id_forum;
echo "<br>";
echo $get_id_topic;
exit;
Je n'arrive pas à comprendre pourquoi je ne peux pas récupérer les paramètres id_forum
et id_topic
, si j'ai réussi à récupérer id lorsque je redirige vers la page sujet.php
.
J'ai ajouté le code que tu m'as conseillé pour voir si j'ai récupéré id_forum
et id_topic
.
Lorsque je redirige vers la page topic.php
il y a une erreur s'affiche :
Notice: Undefined index: id_forum in C:\xampp\htdocs\EDUTECH\topic.php on line 5
Notice: Undefined index: id_topic in C:\xampp\htdocs\EDUTECH\topic.php on line 6
0
0
C'est-à-dire que je n'ai pas récupéré les 2 paramètres
D'accord, si tu as une redirection c'est déjà une bonne chose quand tu vas sur la page.
Cela veut dire que tu peux accéder à la page.
Il faudrait que tu débogues par toi même pour voir ce que tu récupères avec un echo et exit
Exemple :
<?php
$get_id_forum = (int) trim(htmlentities($_GET['id_forum']));
$get_id_topic = (int) trim(htmlentities($_GET['id_topic']));
echo $get_id_forum;
echo "<br>";
echo $get_id_topic;
exit;
Dans la page topic.php
j'ai ajouté le code qui permet de récupérer 2 paramètres mais je n'arrive pas toujours à redirige vers la page topic.php
:
$get_id_forum = (int) trim(htmlentities($_GET['id_forum']));
$get_id_topic = (int) trim(htmlentities($_GET['id_topic']));
Le code que j'ai mis dans le commentaire précèdent c'était le code de la page sujet.php
c'est pour ça j'ai mis cette ligne code
$get_id = (int) trim(htmlentities($_GET['id']));
pour récupérer l'id de la catégorie lorsque je me redirige vers la page sujet.php
C'est normal... dans ton fichier .htaccess
, dans ton code, tu as mis ceci :
RewriteRule ^topic/([0-9]+)/([0-9]+)$ topic?id_forum=$1&id_topic=$2 [L]
Du coup tu attends 1 ou 2 paramètres dans ta page topic.php
.
Pour les récupérer il faut faire cela :
$get_id_forum = $_GET['id_forum'];
$get_id_topic = $_GET['id_topic'];
Et non :
$get_id = $_GET['id'];
Pourquoi ?
Car tu as nommé tes 2 paramètres dans ton fichier .htaccess
. Donc il faut utiliser les noms que tu as données pour récupérer ces informations 🙂
Lorsque je clique sur le lien pour rediriger vers la page topic.php
, je reviens sur la page forum.php
.
Je pense que j'ai mis un mauvais lien pour rediriger vers la page topic.php
:
<?php
session_start();
include('connexionDB.php');
$get_id = (int) trim(htmlentities($_GET['id'])); // On récupère l'id de la catégorie
if(!isset($_SESSION['id'])){
header('Location: connexion.php');
exit;
}
if(empty($get_id)){ // On vérifie qu'on a bien un id sinon on redirige vers la page forum
header('Location: forum.php');
exit;
}
$afficher_profil = $DB->query("SELECT *
FROM user
WHERE id = ?",
array($_SESSION['id']));
$afficher_profil = $afficher_profil->fetch();
$req = $DB->query("SELECT *
FROM topic T
WHERE id_forum = ?
ORDER BY date_creation DESC",
array($get_id));
$req = $req->fetchAll();
?>
>
<!DOCTYPE html>
<html>
<head>
<title>Sujet</title>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="sujet-2.css">
<link rel="stylesheet" href="css/bootstrap.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@500&display=swap" rel="stylesheet">
</head>
<body>
<div class="text-center">
<h6 class="under-title">Sujet</h6>
</div>
<div class="container">
<div class="row">
<div class="col-0 col-sm-0 col-md-0 col-lg-0"></div>
<div class="col-12 col-sm-12 col-md-12 col-lg-12">
<div class="table-responsive">
<table class="table table-striped">
<tr>
<th>ID</th>
<th>Titre</th>
<th>Date</th>
<!--th>Par</th>-->
</tr>
<?php
foreach($req as $r){
?>
<tr>
<td><?= $r['id'] ?></td>
<td><a href="topic.php?id=<?= $get_id?>/<?= $r['id']?>"><?= $r['titre'] ?></a></td>
<td><?= $r['date_creation'] ?></td>
<!--td><?= $r['prenom'] ?></td>-->
</tr>
<?php
}
?>
</table>
</div>
</div>
</div>
</div>
<script src="https://code.jquery.com/jquery-3.4.1.slim.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js"></script>
<script src="js/bootstrap.min.js"></script>
</body>