Php contrôler l'existance d'une valeur

WRInaute accro
La fonction ci-dessous affiche une description.
Code:
<div class="description">
<? if (@$positions[2]->title) {$strtitle = adsmanager_html::getLangDefinition($positions[2]->title);} ?>
<? echo @$strtitle;

if (isset($fDisplay[3]))

{

	foreach($fDisplay[3] as $field)

	{

		adsmanager_html::showFieldValue($row,$field,$field_values,$email_display,$option,$itemid);

	}

} ?></div>
Je souhaiterai contrôler si la description existe ou pas.
Si elle existe et uniquement si elle existe, j'aimerai afficher une div à la suite de la première div (celle contenant la description).
Je ne vois pas trop comment m'y prendre pour contrôler la condition. Un coup de main serait le bienvenu.

Merci.
 
WRInaute impliqué
Dans ce cas la il faut faire comme ca (ou adapter un peu je ne connais pas le contexte de ton script, le contenu des variables, etc.)

Code:
<? if (@$positions[2]->title) {
$strtitle = adsmanager_html::getLangDefinition($positions[2]->title);
echo '<div class="description">';
echo @$strtitle;
if (isset($fDisplay[3]))
{
   foreach($fDisplay[3] as $field)
   {
      adsmanager_html::showFieldValue($row,$field,$field_values,$email_display,$option,$itemid);
   }
}
echo '</div>';
} ?>

Si c'est pas ca, merci de me donner plus d'infos. c'est toujours interressant de savoir.
 
WRInaute accro
Code:
<div class="description">
<? if (@$positions[2]->title) {
$strtitle = adsmanager_html::getLangDefinition($positions[2]->title);
echo @$strtitle;
if (isset($fDisplay[3]))
{
   foreach($fDisplay[3] as $field)
   {
      adsmanager_html::showFieldValue($row,$field,$field_values,$email_display,$option,$itemid);
   }
}
echo '</div><div à afficher></div>';
} ?>
C'est plutôt comme ceci mais j'ai déjà tenté, sans résultat. La div à afficher est toujours présente que la description existe ou pas.
 
WRInaute impliqué
salva a dit:
C'est plutôt comme ceci mais j'ai déjà tenté, sans résultat. La div à afficher est toujours présente que la description existe ou pas.

est-ce que la description est @$positions[2]->title?
Si le fait que $strtitle soit vide suffit pour determiner qu'il n'y a pas de description tu peux changer et ajouter une condition if ($strtitle != "") { :

Code:
<div class="description">
<? if (@$positions[2]->title) {
$strtitle = adsmanager_html::getLangDefinition($positions[2]->title);
if ($strtitle != "") {
echo @$strtitle;
if (isset($fDisplay[3]))
{
   foreach($fDisplay[3] as $field)
   {
      adsmanager_html::showFieldValue($row,$field,$field_values,$email_display,$option,$itemid);
   }
}
echo '</div><div à afficher></div>';
}
} ?>
 
WRInaute accro
Il suffisait de faire le contrôler sur $row qui contient la description.
Code:
					<? if (@$positions[2]->title) {$strtitle = adsmanager_html::getLangDefinition($positions[2]->title);} ?>
					<? echo @$strtitle;
					if (isset($fDisplay[3]))
					{
						foreach($fDisplay[3] as $field)
						{

							adsmanager_html::showFieldValue($row,$field,$field_values,$email_display,$option,$itemid);	

						}
					}
                                        if ($row != "") {
                                        echo '</div><div à afficher></div>';
                                        }
                                        else 
                                        {
                                        echo '</div>';
                                        }?>

Merci pour ton aide quand même. Elle m'a aidé à réfléchir comme il fallait :)
 
WRInaute accro
Finalement, j'ai redirigé la page en 301 sur la home.
Code:
<? if (@$positions[2]->title) {$strtitle = adsmanager_html::getLangDefinition($positions[2]->title);} ?>
					<? echo @$strtitle;
					if (isset($fDisplay[3]))
					{
						foreach($fDisplay[3] as $field)
						{
						adsmanager_html::showFieldValue($row,$field,$field_values,$email_display,$option,$itemid);	
						}
					}
                                        if ($row != "") {
                                        echo '</div><div à afficher></div>';
                                        }
                                        else 
                                        {
                                        header("HTTP/1.1 301 Moved Permanently");
                                        header("Location: http://www.ndd.tld/");
                                        }?>
Maintenant je souhaiterai que cette redirection affiche sur la home un message indiquant que l'annonce n'existe plus.
J'ai pensé ajouter sur l'index.php une variable contenant le message qui s'afficherait uniquement lors des redirections issues du code ci-dessus (et pas d'autres).

Je ne vois pas comment marquer les redirections qui déclencheraient l'affichage du message.

Edit : tout compte fait, je passe la page en 410.
 
Discussions similaires
Haut