Problème avec test de variable

WRInaute discret
Bonjour,

j'ai un petit soucis avec un bout de code.

J'ai besoin de tester si une variable contient effectivement une valeur.

Mon bout de code sert à générer une url canonique si besoin (si par exemple un produit est affecté à plusieurs catégories)

Voici le morceau de code:

Code:
$canonicalurl = strip_tags( $db_product->f("tag"));
	$canonical = '<link rel="canonical" href="' . $canonicalurl . '" />';
	$mainframe->addCustomHeadTag( $canonical );

Ce que je voudrais faire c'est n'afficher

Code:
$mainframe->addCustomHeadTag( $canonical );
[/code]

UNIQUEMENT si tag contient une adresse (si l'enregistrement n'est donc pas nul).

Quelqu'un pourrait il me venir en aide ?
Merci,
 
WRInaute discret
OK // CODE CORRECT ?? Re: Problème avec test de variable

Bonsoir,

Bon finalement j'ai fait comme ça et ca marche.

Par contre je ne suis pas sûre de la qualité du code.

Vous en pensez quoi ?

Code:
$canonicalurl = strip_tags( $db_product->f("tag")); 
	$canonical = '<link rel="canonical" href="' . $canonicalurl . '" />';
	if ($canonicalurl==NULL)
	{echo "";
	}
	else
	{echo $mainframe->addCustomHeadTag( $canonical );}

Lorsque le champ tag contient quelque chose (en l'occurence une adresse xxxx.html", le champ s'affiche bien. Lorsque le champ tag est vide, rien ne s'affiche.

Est ce que tout est propre au niveau du code ?

Merci d'avance,
Nathalie
 
WRInaute accro
Pourquoi ne pas tout simplement faire

Code:
$canonicalurl = strip_tags( $db_product->f("tag"));
   $canonical = '<link rel="canonical" href="' . $canonicalurl . '" />';
   if ($canonicalurl !== NULL)
   {echo $mainframe -> addCustomHeadTag( $canonical );}

Parce que je vois mal à quoi il sert ton echo "".
 
WRInaute discret
Bonsoir, merci beaucoup.

Je vais être honnête, moi non plus je vois pas trop parceque je ne suis pas une acharnée du php, ce n'est pas vraiment ma tasse de thé.

J'essaie de faire comme je peux avec les "moyens du bord", et les miens sont pas géniaux en php.

J'ai donc testé avec ton code et ca ne marche pas.

Même si mon champ "tag" est vide, je me retrouve dans le head de ma page avec ceci

<link rel"canonical" href="" />

Donc c'est INCORRECT, tandis qu'avec mon code lorsque "tag" ne contient rien, il n'affiche rien.

Pourquoi ?

Bon week end.
Nathalie
 
WRInaute discret
En fait ton code marche mais seulement avec un seul égal ( != )

donc

$canonicalurl = strip_tags( $db_product->f("tag"));
$canonical = '<link rel="canonical" href="' . $canonicalurl . '" />';
if ($canonicalurl != NULL)
{echo $mainframe -> addCustomHeadTag( $canonical );}

Pourquoi pas avec les 2 ?
 
Discussions similaires
Haut