2017-08-14 157 views
-2

我试图在IF和ELSE语句中传递一个URL参数。这是最初的代码看起来像只是链接并没有参数:PHP:在IF和ELSE语句中传递URL参数

<?php 

    if ($row_checklist_finding_final['item_class'] == "Major") 
    { 
     echo '<a href="UserNCR.php">Go to NCR</a>'; 
    } 

    else 
    { 
     echo '<a href="UserOFI.php">Go to OFI</a>'; 
    } 
?> 

通常当我试图通过我用这个代码(这是一个URL参数,而如果和else语句:

<a href="UserNCR.php?item_id=<?php echo $row_checklist_finding_final['item_id']; ?>"> 
    Go to NCR 
</a> 

所以我所做的是,我用我平时把参数在这样的链接方式。 参数名称是item_id等于价值$row_checklist_finding_final['item_id']

<?php 
    if ($row_checklist_finding_final['item_class'] == "Major") 
    { 
     <a href="UserNCR.php?item_id=<?php echo $row_checklist_finding_final['item_id']; ?>">Go to NCR</a> 
    } 

    else 
    { 
     '<a href="UserOFI.php">Go to OFI</a>'; 
    } 
?> 

我还试图消除冗余<?php ?>这样的:

<?php 
    if ($row_checklist_finding_final['item_class'] == "Major") 
    { 
     <a href="UserNCR.php?item_id= echo $row_checklist_finding_final['item_id'];">Go to NCR</a> 
    } 

    else 
    { 
     '<a href="UserOFI.php">Go to OFI</a>'; 
    } 
?> 

但仍存在错误。 我使用了错误的语法吗? 我应该如何在IF和ELSE语句中传递URL参数?

+0

该示例很可能会受到HTML注入/ [跨站点脚本](https://www.owasp.org/index.php/Cross-site_Scripting_(XSS))的攻击,并且在某些情况下可能会生成无效的HTML。请参阅“[如何使用HTML/PHP防止XSS?](https://stackoverflow.com/q/1996122/90527)” – outis

回答

0

更改下面

<?php 
    if ($row_checklist_finding_final['item_class'] == "Major") 
    { 
    echo ' <a href="UserNCR.php?item_id='.$row_checklist_finding_final["item_id"].'">Go to NCR</a>'; 
    } 
    else 
    { 
    echo '<a href="UserOFI.php">Go to OFI</a>'; 
    } 
?> 
0

你这样的代码可以使用。连接运算符将变量连接在一起,例如如https://stackoverflow.com/a/45666738/5233704

建议的另一种方法是为您的字符串使用双引号,因为它们允许包含变量。数组需要用花括号执行此操作时:

<?php 
    if ($row_checklist_finding_final['item_class'] == "Major") 
    { 
     echo "<a href=\"UserNCR.php?item_id={$row_checklist_finding_final['item_id']\">Go to NCR</a>'; 
    } 
    else 
    { 
     echo '<a href="UserOFI.php">Go to OFI</a>'; 
    } 
?> 

请注意,您的字符串内的任何双引号需要用反斜杠转义。