PHP if语句没有正确响应

时间:2014-07-14 19:38:52

标签: php mysql if-statement

我遇到了PHP if语句的问题,我认为这很容易,但我无法弄明白。

因此,当我点击第一个网页上的链接标记时,我将转到" editalbum.php"连同数据。但是,如果我想在if语句中使用albumgenre_dnb值,则它不起作用(有关if语句,请参阅第2部分)。此外,我确信这些值正在显示在URL中,即:

  

(/解密%20Recordings / PHP /定制/专辑/改变/ editalbum.php IDS = 1%20安培;名称= NFS%20安培; RELEASEDATE = 18 /一千九百九十三分之一十%20安培;%20artists = SIN%20wave, %20Nerexo%20安培;缩略图= Testpath / THM%20安培;旗帜= testpahtbanner / THM%20&安培;的 albumgenre_dnb = DNB %20安培; albumgenre_dubstep = DUBSTEP%20安培; albumgenre_EDM = EDM%20安培; albumgenre_trap = TRAP% 20安培;%20albumgenre_chill = CHILL%20安培; mediafirelinks = / nerexoawesome%20安培; dropboxlinks = / test.com /保管箱)

事实上,对于当前的if语句,它应该回应" Drum和Bass"但由于某种原因,它并没有。

除此之外,如果我回应我所做的变量,我得到了#B; DNB"所以问题出在if语句......

非常感谢你的帮助!

第1部分(链接标记)

<a href='editalbum.php?
ids=$id &
names=$name &
releasedate=$releasedate & 
artists=$artists &
thumbnail=$thumbnail &
banner=$banner &
albumgenre_dnb=$albumgenre_dnb &
albumgenre_dubstep=$albumgenre_dubstep &
albumgenre_EDM=$albumgenre_EDM &
albumgenre_trap=$albumgenre_trap & 
albumgenre_chill=$albumgenre_chill &
mediafirelinks=$mediafire &
dropboxlinks=$dropbox'>$id
</a>

第2部分(如果声明)

<?php 

    $dnb = $_REQUEST ['albumgenre_dnb'];

    if ($dnb != "") {
        echo "Drum and bass";
    }

    else {}

?>

2 个答案:

答案 0 :(得分:0)

$dnb = $_REQUEST ['albumgenre_dnb'];

if (strlen($dnb)>0) {
    echo "Drum and bass";
}

else {}

您也可以将$ dnb分配给$ _GET

$dnb = $_GET ['albumgenre_dnb'];

注意:如果你的第2部分在你喜欢的页面中,你应该控制它的设置:

if(isset($_GET ['albumgenre_dnb'])){
    $dnb = $_REQUEST ['albumgenre_dnb'];

    if (strlen($dnb)>0) {
        echo "Drum and bass";
    }

    else {}

}

答案 1 :(得分:0)

该值包含空格:

albumgenre_dnb=DNB%20

%20表示空格。那是因为你在&符号之前有空格。所以参数的值是DNB<space>。对于空值,它只是空格而不是完全空的字符串,因此如果$dnb != ''为空,$albumgenre_dnb将始终返回true。

现在,这与您的示例并不匹配,因为您测试了not empty字符串,因此您应始终在输出中获取文本“Drum and bass”。可能是你在你的例子中犯了错误吗?