PHP si l'URL correspond à ce puis effectuer une action
J'ai donc une page de titre qui fait partie d'un template Magento; je voudrais qu'il affiche à l'1 de 2 options, en fonction de l'URL. Si l'URL est l'option 1, d'affichage de titre 1. Si l'URL est autre chose, d'affichage de titre 2. C'est ce que je suis venu avec, mais c'est faire ma page crash:
<div class="page-title">
<h1><?php
$host = parse_url($domain, PHP_URL_HOST);
if($host == 'http://domain.com/customer/account/create/?student=1') {
echo $this->__('Create an account if you are a Post Graduate Endodontic Resident and receive our resident pricing. Please fill in all required fields. Thank you!')
}
else
{
echo $this->__('Create an Account')
}
?></h1>
</div>
Quelqu'un a des idées?
EDIT: Donc ça devrait ressembler à ça?
$host = $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
if($host == 'http://domain.com/customer/account/create/?student=1')
Que signifie "faire ma page crash"? Avez-vous revieve un message d'erreur? Plus loin: Où avez-vous définir la variable $nom de domaine?
Le tout avant de cette partie du chargement de la page, puis il s'arrête. Pas de message d'erreur
J'ai reçu $de domaine à partir de ce thread: stackoverflow.com/questions/1122261/...
Le tout avant de cette partie du chargement de la page, puis il s'arrête. Pas de message d'erreur
J'ai reçu $de domaine à partir de ce thread: stackoverflow.com/questions/1122261/...
OriginalL'auteur miles | 2012-03-01
Vous devez vous connecter pour publier un commentaire.
Vous êtes à la recherche pour l'URL de la page qui est actuellement sur? Vous utilisez parse_url le mauvais sens; c'est si vous voulez seulement obtenir l'hôte ou de domaine, c'est à dire uniquement "dev.obtura.com". Il semble que vous voulez plus que cela. En outre, vous n'êtes jamais réglage de la
$domain
variable, de sorteparse_url()
ne sais pas quoi faire avec elle. Donc, comme il est maintenant, votreif
instruction renverra toujours "Créer un compte".Au lieu de cela, définir
$host
avec $_SERVER variables:$host = $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
Vous aurez également besoin d'enlever le "http://" de votre check -
$host
ne contiendra tout ce qui est après "http://"Comme Aron Cederholm suggéré, vous avez besoin d'ajouter des points-virgules (
;
) à la fin de votre écho des déclarations.Ainsi, votre code PHP doit ressembler à ceci:
Édité ma réponse pour contenir vos observations, pour d'autres à venir pour voir la réponse.
OriginalL'auteur Luke Shaheen
Je ne suis pas sûr que vous êtes aller chercher le domaine de droit. Je ne comprends pas vraiment parse_url beaucoup, et vous n'avez pas de nous montrer ce que
$domain
est défini comme.Normalement si je veux obtenir le nom de domaine je voudrais faire cela:
$host = $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI']
Puis le reste de votre code.Que si, d'autre déclaration semble légitime pour moi, donc je voudrais essayer le dessus et voir comment ça se passe. 😉
Edit: Oups, Jean me battre pour elle. 🙂
OriginalL'auteur Jack
Vous devez ajouter des points-virgules pour vos déclarations à l'intérieur de votre if-else.
Essayez en écho à $host à voir pour votre auto, pourquoi il n'a pas d'égal à votre url souhaitée.
Avez-vous essayer de définir $host comme je l'ai suggéré?
Comme ceci: if ($host == '...') { echo 'Succès: ', $host, PHP_EOL; echo $this->__('...'); } else { echo " Erreur: ', $host, PHP_EOL; echo $this->__("Créer un Compte");}
Ah ha! J'ai juste eu à se débarrasser de la
http://
dans leif
déclaration.OriginalL'auteur Aron Cederholm