带有isset:Else的PHP If-Else部分不起作用

带有isset:Else的PHP If-Else部分不起作用,php,if-statement,isset,Php,If Statement,Isset,PHP部分在这里所以当我发布它时,else部分根本不起作用(意思是:我设置的文本刚刚消失),而另一半起作用(意思是:我可以分配变量,但不能将其留空)。我整晚都在挣扎…请帮帮我! 这是第二页,如果你需要看第一页的代码,请告诉我 <?php $lovers = $_POST['lovers']; $quote = $_POST['quote']; $color = $_POST['color']; $font = $_POST['font']; $imdblink = $_POST['imdb

PHP部分在这里所以当我发布它时,else部分根本不起作用(意思是:我设置的文本刚刚消失),而另一半起作用(意思是:我可以分配变量,但不能将其留空)。我整晚都在挣扎…请帮帮我! 这是第二页,如果你需要看第一页的代码,请告诉我

<?php
$lovers = $_POST['lovers'];
$quote = $_POST['quote'];
$color = $_POST['color'];
$font = $_POST['font'];
$imdblink = $_POST['imdblink'];
?>

<?php
if (isset($_POST['lovers']))  
    {
$lovers = $_POST['lovers'];
    }else{
        echo "P & M";
     }

if (isset($_POST['quote']))  
     {
        $quote = $_POST['quote'];
     }else{
        echo "I love you.";
     }

  if (isset($_POST['color']))  
     {
        $color = $_POST['color'];
     }else{
        echo "yellow";
     }

  if (isset($_POST['font']))  
     {
        $font = $_POST['font'];
     }else{
        echo "Futura";
     }

  if (isset($_POST['imdblink']))  
     {
        $imdblink = $_POST['imdblink'];
     }else{
        echo "http://www.imdb.com/";
     }
?>

这是HTML部分:这里有什么问题吗?请帮忙

<div class="artGroup slide">
  <div class="artwork"> <img src="../_images/M&P.png">
    <div class="detail">
      <div class="movie01c" style="font-family: <?php echo "{$font}"; ?>; font-size: 20px; color: <?php echo "{$color}";?>;">
     <?php echo "{$quote}";?>
      </div>
      <div class="movie01t"><a href="<?php echo "{$imdblink}";?>">
      <?php echo "{$lovers}";?>
      </a></div>
    </div>
  </div>
</div>


在else部分也使用变量赋值,而不是使用
echo

if (isset($_POST['lovers'])) {
    $lovers = $_POST['lovers'];
}else{
    $lovers = "P & M";
}

你的陈述应该是

if (isset($_POST['lovers']) && ($_POST['lovers'] != ''))
{
    $lovers = $_POST['lovers'];
}
else
{
    $lovers = "P & M";
}

您不希望回显,您希望分配它,然后将它打印到其他PHP脚本中

我认为您正在尝试设置默认值,如果它不在$\u POST数组中。试一试

$color = isset($_POST['color']) ? $_POST['color'] : 'yellow';
如果你从不想要空白颜色,请使用

$color = !empty($_POST['color']) ? $_POST['color'] : 'yellow';
这应该行得通

<?php
$lovers = isset($_POST['lovers']) ? $_POST['lovers'] : "P & M" ;
$quote = isset($_POST['quote'])? $_POST['quote'] : "I Love You";
$color = isset($_POST['color'])? $_POST['color'] : "yellow";
$font = isset($_POST['font']) ? $_POST['font'] : "Futura";
$imdblink = isset($_POST['imdblink'])? $_POST['imdblink']: "http://www.imdb.com/";
?>


您可以用
替换
isset
!空
如果要确保该字段不是。。。空的

三元运算符将使它更加清晰

例如:

$imdblink=((isset($\u POST['imdblink']))?($\u POST['imdblink']):('http://www.imdb.com/'));
此外,您应该定义默认值,并使用变量。 (这里是一个不使用define的示例)


所有isset
$\u post
函数都可能工作,这是因为它不会出现在其他部分。

isset()告诉您变量是否存在。如果您有一个表单(没有显示其html),而有人将该字段留空,则该字段存在但为空。表单提交后表单元素不可能不存在,因此isset()永远不会返回FALSE。所以你想用!空()而不是isset()。

isset
仅当变量未设置或设置为
null
时返回
false
。当变量为
''
(空字符串)时,它将返回
true
,这将是在第一页的该字段中未输入值时得到的值

if (isset($_POST['lovers'])) {
    $lovers = $_POST['lovers'];
}else{
    $lovers = "P & M";
}
您需要使用
empty
使其正常工作,这将返回
true
用于未设置和空vlues。对于非空值,返回值为
false
。你需要在它前面加上
(非操作员)在此处使用它

if
中使用变量赋值,在
else
中使用
echo
。我认为这就是问题的原因。将该
echo
更改为赋值

if (!empty($_POST['lovers']))  
{
    $lovers = $_POST['lovers'];
}else{
    $lovers = "P & M";
}

别忘了

这里有一个想法。首先声明变量和值。如果
$\u POST['lovelers']
不是
null
,请更改变量值:

$lovers = "P & M";
if (isset($_POST['lovers']))
{
    $lovers = $_POST['lovers'];
}
echo $lovers;

“不工作*?!错误?!可能想试试!empty()而不是isset()@tuxtimo:所以假设我应该得到每个变量的“else”设置值,即使我没有每个变量的输入。但是,如果没有输入,就根本没有输出。@Moak:它正在取得进展-至少是所有的“else”“变量的值首先会显示出来,尽管如果没有为每个变量输入,它们仍然不会显示……但是谢谢!很抱歉,您需要显示更多的代码,并解释什么不起作用,但实际上并没有得到任何错误-因此,假设我应该获得每个变量的“else”设置值,即使我没有为每个变量输入。然而,如果没有输入,就根本没有输出——这是一个完全的空白。