Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 28-03-2007 12:06:55

ami
Membre
Lieu: Nantes
Date d'inscription: 28-03-2007
Messages: 45
Site web

[Débutant] Comment rediriger vers une page quand une action inconnu

Je ne trouve pas d'exemple qui explique comment rediriger l'url qui contient un controlleur ou une action inconnu

exemple monsite.fr/controlleurinconnu --> rediriger vers page xx
exemple monsite.fr/index/actioninconnu --> rediriger vers page xx

Merci
Alban

Dernière modification par ami (28-03-2007 12:07:17)

Hors ligne

 

#2 28-03-2007 12:17:45

philippe
Administrateur
Lieu: Grenoble
Date d'inscription: 01-03-2007
Messages: 1624

Re: [Débutant] Comment rediriger vers une page quand une action inconnu

Bonjour,

Si ton action n'existe pas, tu peux ajouter dans ton controller un fonction __call. Ici elle redirige vers ton indexAction :

Code:

    public function __call($method, $args) {
        $this->_forward("index");
    }

Si ton controller n'existe pas, tu peux intercepter l'exception renvoyée par ton dispatch

Code:

try {
    $controller->dispatch();
}
catch (Zend_Controller_Dispatcher_Exception $e) {
    header("Location: /")
}

Cordialement, Philippe


twitter : @plv ; kitpages.fr : Création de sites internet à Grenoble et Paris

Hors ligne

 

#3 28-03-2007 12:46:58

rod
Administrateur
Lieu: Tours
Date d'inscription: 01-03-2007
Messages: 97
Site web

Re: [Débutant] Comment rediriger vers une page quand une action inconnu

Pour des questions de référencement il peut être intéressant dans le cas d'un controlleur ou d'une action qui n'existe pas d'ajouter dans les entêtes HTTP le code signalant une erreur 404.

Hors ligne

 

#4 28-03-2007 12:48:26

ami
Membre
Lieu: Nantes
Date d'inscription: 28-03-2007
Messages: 45
Site web

Re: [Débutant] Comment rediriger vers une page quand une action inconnu

Merci pour la détection d'action inconnu (j'ai testé et ça fonctionne très bien)
Mais a propos du controlleur inconnu (dans le fichier index.php), il faut ajouter ';' sinon erreur php.

Code:

header("Location: /");

et ca fonctionne

Il y a t'il moyen de connaitre le nom du répertoire où se trouve index.php ( et corriger header ) ?
header("Location: /".monrepertoire_ou_se_trouve_index_php);

Merci
Alban

Hors ligne

 

#5 28-03-2007 13:23:37

okworld
Nouveau membre
Date d'inscription: 28-03-2007
Messages: 6

Re: [Débutant] Comment rediriger vers une page quand une action inconnu

pour avoir l'adresse de base tu peux utiliser

Code:

$front->getBaseUrl();

Hors ligne

 

#6 28-03-2007 14:03:36

ami
Membre
Lieu: Nantes
Date d'inscription: 28-03-2007
Messages: 45
Site web

Re: [Débutant] Comment rediriger vers une page quand une action inconnu

okworld :: $frontController->getBaseUrl(); retourne rien !
rod :: Comment indiquer une erreur 404 ?
Alban

Hors ligne

 

#7 28-03-2007 14:35:30

philippe
Administrateur
Lieu: Grenoble
Date d'inscription: 01-03-2007
Messages: 1624

Re: [Débutant] Comment rediriger vers une page quand une action inconnu

Pour l'erreur 404, il faut mettre dans ton script un truc du genre (avant d'envoyer quoique ce soit vers le navigateur) :

Code:

header("Status: 404 Not Found", false, 404);

twitter : @plv ; kitpages.fr : Création de sites internet à Grenoble et Paris

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages