Bonjour à vous,
je viens vers vous car je ne trouve pas du tout mon erreur.
J'ai suivi à la lettre le tutu sur Slim Framework, mais quand je clique sur : contact le route associer doit me rediriger sur la page d'accueil, mais rien... je reste sur cette page contact.

Du coup j'ai fait un test avec un autre redirect, encore pareil.
Par contre quand je supprime :

$app->render('header.php', compact('app'));
$app->render('menu.php', compact('app'));
$app->render('footer.php', compact('app'));

là ça fonctionne.

Je dois faire quoi là????
Je vous met le code ci dessous de mon index.php

<?php
//slim framework example from http://scottnelle.com/
require 'class/Slim/Slim.php';
session_start();
\Slim\Slim::registerAutoloader();
// Set the current mode
$app = new \Slim\Slim(array(
    'templates.path' => 'templates'
));
$app->get('/', function () use ($app) {
    $app->render('homepage.php', compact('app'));
})->name('root');
$app->get('/contact', function () use ($app) {
    // $app->render('contact.php', compact('app'));
    $app->flash("success", "bravo c'est bon");
    $app->redirect($app->urlFor('root'));
})->name('contact');
/**
 * LANCER L'APPLICATION 
 */
$app->render('header.php', compact('app'));
$app->render('menu.php', compact('app'));
$app->run();
$app->render('footer.php', compact('app'));

Merci à vous pour votre aide.
Cordialement.

1 réponse


Bonjour,

je ne connais absolument pas le framework, je vais peut être dire une bêtise mais:

Le redirect envoi surement un header Location.

Or toute modification du header (donc y compris un session_start, un "redirect" etc.. ) doit se faire avant l'affichage du moindre élément dans la page.

En faite, (alors je ne sais pas si sur tous les serveurs c'est pareil, si c'est configurable etc.. je laisse la place aux connaisseurs) la réponse de la requête du navigateur est construite petit à petit et envoyée par paquet au navigateur.
Si des éléments sont affichés avant un redirect .. Une partie de la réponse est surement déjà partie, cela va être dure d'en modifier le header..

Je ne sais pas si c'est la raison du problème que tu rencontres mais le comportement que tu décris est cohérent avec cette explication.

Cordialement

Antho