2010-04-22 6 views
1

Ok, que j'ai une avec l'url: URL.com/checkout/completed, comment puis-je une configuration instruction if pour effectuer:comment puis-je déterminer le chemin d'un site utilisant php/smarty?

<if "This page has url of checkout/completed"> 

No Content 

<else> 

Content 

</if> 

Est-il possible? Un moyen simple, mon php/smarty-fu manque .. Beaucoup.

EDIT:

{if $smarty.server.REDIRECT_URL eq 'http://www.euroworker.no/checkout/completed'} 
&nbsp; 
{else} 
<div id="scrollwrap"> 
    <div class="scrollFieldContent"> 

Scrolled content 
     </div> 

<div class="probetalings">Velg betalingsmåte</div> 

{include file="/choosePaymentMethod.tpl"} 
</div> 

{/if} 

Merci.

Répondre

2

Jetez un oeil à $_SERVER['REQUEST_URI']; et $_SERVER['REDIRECT_URL'];

if($_SERVER['REDIRECT_URL'] == 'checkout/completed') { 
    echo 'Some content'; 
} 

dans Smarty:

{if $smarty.server.REDIRECT_URL eq 'checkout/completed'} 
Some content 
{/if} 

Si vous n'avez pas ensemble REDIRECT_URL et utilisez REQUEST_URI, vous pouvez utiliser strstr au lieu de typique comparaison dans le cas où vous voulez juste faire correspondre cette URI tout en ignorant tous les paramètres supplémentaires qui pourraient être envoyés, ou aller avec SCRIPT_NAME comme @Pekka suggéré:

if(strstr($_SERVER['REQUEST_URI'], 'checkout/completed')) { 
    echo 'Some content'; 
} 

EDIT: Essayez:

{if $smarty.server.REQUEST_URI eq '/checkout/completed'} 
+0

Une réponse parfaitement bien, mais pourquoi 'REDIRECT_URL'? Il n'est pas défini lorsque j'appelle un script PHP dans ma configuration WAMP. Cela ne s'applique-t-il pas seulement lorsqu'il y a une redirection quelconque? –

+0

@Pekka - ma configuration l'a pour une raison quelconque. J'ai jeté 'REQUEST_URI' en plus si OP n'a pas' REDIRECT_URL'. Peut-être faire avec mod_rewrite et ma configuration ZF. – karim79

+0

@karim Je vois. Notez cependant que 'REQUEST_URI' contiendra tous les paramètres GET passés:'/checkout/completed? A = b & c = d & e = f' vous devrez en tenir compte lors de la comparaison. –

2

Je préférerais SCRIPT_NAME qui renverra le chemin de la demande complète, mais pas la chaîne de requête comme REQUEST_URI fait.

if ($_SERVER["SCRIPT_NAME"] == "/checkout/completed") 
...... 
+0

Ne comprends pas ce que vous entendez par nom de script Dois-je attacher un autre script à ceci? – Kyle

+0

@Kyle désolé, non, c'est à propos de la variable '$ _SERVER' à utiliser.Ces variables sont prédéfinies par le Serveur Web, disponible dans chaque script via le tableau '$ _SERVER'. 'SCRIPT_NAME' est l'un d'entre eux.Il y a plusieurs variables très similaires mais elles se comportent différemment selon les circonstances (et parfois, les configurations du serveur). ..) 'condition comme cité ci-dessus –

+0

Merci pour l'explication, je devrais rentrer à la maison et apprendre PHP plus +1 – Kyle