fonction url_custom_encode forum php ne fonctionne pas
- Accueil
- Forum
- Programmation
- PHP
- fonction url_custom_encode forum php ne fonctionne pas
Natoune Le 27 mars 2020 à 15:22 (Édité le 27 mars 2020 à 15:35)
Bonjour, je suis actuellement en train de regarder les tutos de PrimFX pour créer un forum (le Tuto #4) mais lorsque je mets la fonction personnalisé (donné par PrimFX) url_custom_encode et que je rafraichis la page, la page reste toute blanche alors qu'en utilisant le urlencode de base de php cela fonctionne...
Voici mon code:
forum_topic.php (pour le php)
<meta charset="utf-8" />
<?php session_start();
include '../include/menunavigation.php';
include 'includes/database.php';
include 'php/functions.php' ;
global $db;
// Récupération des topics
// $topics = $db->query('SELECT * FROM f_topics ORDER BY id DESC');
if(isset($_GET['categorie']) AND !empty($_GET['categorie']))
{
$get_categorie = htmlspecialchars($_GET['categorie']);
$categories = array();
$req_categories = $db->query('SELECT * FROM f_categories');
while ($c = $req_categories->fetch()) {
array_push($categories, array($c['id'], url_custom_encode($c['nom'])));
}
var_dump($categories);
if (in_array($get_categorie, $categories)) {
var_dump("OK");
}
// $id_categorie =
if(isset($_GET['souscategorie']) AND !empty($_GET['souscategorie']))
{
$get_souscategorie = htmlspecialchars($_GET['souscategorie']);
$id_souscat = $db->prepare('SELECT id FROM f_souscategories WHERE nom = ?');
$id_souscat->execute(array($get_souscategorie));
}
$req = "SELECT * FROM f_topics
LEFT JOIN f_topics_categories ON f_topics.id = f_topics_categories.id_topic
LEFT JOIN f_categories ON f_topics_categories.id_categorie = f_categories.id
LEFT JOIN f_souscategories ON f_topics_categories.id_souscategorie = f_souscategories.id
WHERE f_categories.id = ?";
if($get_souscategorie)
{
$req .= " AND f_souscategories.id = ?";
$exec_array = array($id_categorie,$id_souscategorie);
}
else
{
$exec_array = array($id_categorie);
}
$topics = $db->prepare($req);
$topics->execute($exec_array);
}
else
{
?>
<head>
<link rel="stylesheet" href="../include/menunavigation.css" />
</head>
<?php
die('Erreur: Aucune catégorie sélectionné !');
}
require('views/forum_topic.view.php');
?>
forum_topic.view.php (pour le html)
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<link rel="stylesheet" href="css/forum_topic.view.css" />
<link rel="stylesheet" href="../include/menunavigation.css" />
<title>Titre</title>
</head>
<body>
<table cellspacing="0" cellpadding="0" class="forum">
<tr class="header">
<th class="main">Sujet</th>
<th class="sub-info w10">Messages</th>
<th class="sub-info w20">Dernier message</th>
<th class="sub-info w20">Création</th>
</tr>
<?php while($t = $topics->fetch()) { ?>
<tr>
<td class="main">
<h4><a class="sujet" href=""><?= $t['sujet'] ?></a></h4>
</td>
<td class="sub-info">aucun, snif ;(</td>
<td class="sub-info">00.00.0000 à 00h00<br />de admin</td>
<td class="sub-info"><?= $t['date_heure_creation']; ?><br />par Pseudo</td>
</tr>
<?php } ?>
</table>
</body>
</html>
fonctions.php: (Là ou se trouve ma fonction url_custom_encode())
<?php
function url_custom_encode($titre) {
$titre = htmlspecialchars($titre);
$find = array('À', 'Á', 'Â', 'Ã', 'Ä', 'Å', 'Æ', 'Ç', 'È', 'É', 'Ê', 'Ë', 'Ì', 'Í', 'Î', 'Ï', 'Ð', 'Ñ', 'Ò', 'Ó', 'Ô', 'Õ', 'Ö', 'Ø', 'Ù', 'Ú', 'Û', 'Ü', 'Ý', 'ß', 'à', 'á', 'â', 'ã', 'ä', 'å', 'æ', 'ç', 'è', 'é', 'ê', 'ë', 'ì', 'í', 'î', 'ï', 'ñ', 'ò', 'ó', 'ô', 'õ', 'ö', 'ø', 'ù', 'ú', 'û', 'ü', 'ý', 'ÿ', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', 'Œ', 'œ', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', 'Š', 'š', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', 'Ÿ', '?', '?', '?', '?', 'Ž', 'ž', '?', 'ƒ', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?');
$replace = array('A', 'A', 'A', 'A', 'A', 'A', 'AE', 'C', 'E', 'E', 'E', 'E', 'I', 'I', 'I', 'I', 'D', 'N', 'O', 'O', 'O', 'O', 'O', 'O', 'U', 'U', 'U', 'U', 'Y', 's', 'a', 'a', 'a', 'a', 'a', 'a', 'ae', 'c', 'e', 'e', 'e', 'e', 'i', 'i', 'i', 'i', 'n', 'o', 'o', 'o', 'o', 'o', 'o', 'u', 'u', 'u', 'u', 'y', 'y', 'A', 'a', 'A', 'a', 'A', 'a', 'C', 'c', 'C', 'c', 'C', 'c', 'C', 'c', 'D', 'd', 'D', 'd', 'E', 'e', 'E', 'e', 'E', 'e', 'E', 'e', 'E', 'e', 'G', 'g', 'G', 'g', 'G', 'g', 'G', 'g', 'H', 'h', 'H', 'h', 'I', 'i', 'I', 'i', 'I', 'i', 'I', 'i', 'I', 'i', 'IJ', 'ij', 'J', 'j', 'K', 'k', 'L', 'l', 'L', 'l', 'L', 'l', 'L', 'l', 'l', 'l', 'N', 'n', 'N', 'n', 'N', 'n', 'n', 'O', 'o', 'O', 'o', 'O', 'o', 'OE', 'oe', 'R', 'r', 'R', 'r', 'R', 'r', 'S', 's', 'S', 's', 'S', 's', 'S', 's', 'T', 't', 'T', 't', 'T', 't', 'U', 'u', 'U', 'u', 'U', 'u', 'U', 'u', 'U', 'u', 'U', 'u', 'W', 'w', 'Y', 'y', 'Y', 'Z', 'z', 'Z', 'z', 'Z', 'z', 's', 'f', 'O', 'o', 'U', 'u', 'A', 'a', 'I', 'i', 'O', 'o', 'U', 'u', 'U', 'u', 'U', 'u', 'U', 'u', 'U', 'u', 'A', 'a', 'AE', 'ae', 'O', 'o', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?');
$titre = str_replace($find, $replace, $titre);
$titre = strtolower($titre);
$mots = preg_split('/[^A-Z^a-z^0-9]+/', $titre);
$encoded = "";
foreach($mots as $mot) {
if(strlen($mot) >= 3 OR str_replace(['0','1','2','3','4','5','6','7','8','9'], '', $mot) != $mot) {
$encoded .= $mot.'-';
}
}
$encoded = substr($encoded, 0, -1);
return $encoded;
}
?>
Quelques images:
Vous avez une idée ? Merci d'avance ^^
PrimFX Le 10 avril 2020 à 20:06 (Édité le 1 janvier 1970 à 01:00)
Hello @Natoune !
Désolé, il faut croire que ton topic était passé inaperçu 😅 Tu as bien fait de le UP pour ne pas qu'il parte aux oubliettes.
Vu la page blanche qui est affichée, j'ai l'impression qu'il y a une erreur PHP quelque part.
Est-ce que tu pourrais insérer le code suivant tout en haut de ton script PHP ? Il permet d'afficher toutes les erreurs PHP. Tu pourras ensuite rafraîchir ta page et regarder si une erreur plus explicite est affichée ;-)
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
Autre petit conseil pour trouver l'erreur plus facilement : vérifier le code source de la page. Si une erreur PHP survient par exemple dans un attribut HTML, alors l'erreur n'est pas visible directement à l'utilisateur et il faut aller la chercher dans le code source...
Tiens-nous au courant de ce que ça donne avec tout ça !
A+
Boris
PrimFX Le 10 avril 2020 à 20:06 (Édité le 1 janvier 1970 à 01:00)
Hello @Natoune !
Désolé, il faut croire que ton topic était passé inaperçu 😅 Tu as bien fait de le UP pour ne pas qu'il parte aux oubliettes.
Vu la page blanche qui est affichée, j'ai l'impression qu'il y a une erreur PHP quelque part.
Est-ce que tu pourrais insérer le code suivant tout en haut de ton script PHP ? Il permet d'afficher toutes les erreurs PHP. Tu pourras ensuite rafraîchir ta page et regarder si une erreur plus explicite est affichée ;-)
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
Autre petit conseil pour trouver l'erreur plus facilement : vérifier le code source de la page. Si une erreur PHP survient par exemple dans un attribut HTML, alors l'erreur n'est pas visible directement à l'utilisateur et il faut aller la chercher dans le code source...
Tiens-nous au courant de ce que ça donne avec tout ça !
A+
Boris
Natoune Le 11 avril 2020 à 20:14 (Édité le 1 janvier 1970 à 01:00)
Ok, merci de ta réponse 👍, j'ai inclut ces quelques lignes et je me suis aperçut que j'avait appelé le fichier fonctions.php dans le code alors que c'était functions.php dans mon ftp... Une petite erreur toute simple mais merci !
PrimFX Le 11 avril 2020 à 21:15 (Édité le 1 janvier 1970 à 01:00)
De rien ! Haha, ce sont souvent ces erreurs toutes bêtes qui font perdre le plus de temps 😅 Content que tu ais pu résoudre ce problème en tout cas !
idriss-pro Le 18 avril 2020 à 18:27 (Édité le 1 janvier 1970 à 01:00)
@PrimFx merci aussi ça m'as beaucoup aidé
Beaudelaire Le 1 mai 2020 à 10:12 (Édité le 1 janvier 1970 à 01:00)
Bonjour @Natoune. J'aimerais te demander une aide. Au fait, moi aussi j'ai suivi le tuto et j'ai fait exactement comme primfx a fait c'est-à-dire le code de la page forum_topic.php qui affiche les topics . Maintenant mon souci est que j'ai du mal à insérer le code php du formulaire de recherche et celui de la pagination dans le code de la page forum_topic.php. C'est pour permettre aux utilisateurs de faire des recherches de topics et d'avoir plusieurs pages comme l'a fait primfx sur le forum. Si tu as pu le faire pour ton site, peux-tu m'aider pour à avoir le code ? Merci d'avance .