为什么我的php“else”同时显示?

时间:2017-04-26 17:11:20

标签: php

我有这个PHP代码,用于确定用户是否已经投票。

$row_content['Vote_Who']包含之前已投票的所有用户的列表,格式为“User_1 User_2 User_3”

$_SESSION['Username']是登录用户的当前用户名。是的,这是有效的,因为我已经在页面的其他位置调用了它。

<?php if(strpos($row_content['Vote_Who'], $_SESSION['Username']) !== false){?>
    <input type="button" value="Thanks for voting!">
<?php }
else{ ?>
    <input type="submit" value="<?php echo $row_content['Votes']?>: Vote Up! ▲" width="75px">
    <input type="hidden" name="MM_update" value="vote">
<?php } ?>

但是当我在网络浏览器中看到结果时,两个按钮都会立即显示。

我该如何解决?

提前致谢。

更新:证明两个按钮同时显示的图像
enter image description here

更新: 完整代码部分:

<?php
    if ($totalRows_content > 0){
        do {?>
            <table width="100%">
                <tr>
                    <td width="75px" height="75px" align="right">
                        <img src="<?php echo $row_content['User_Pic']?>" width="50px" height="50px">
                        <br />
                        <?php echo $row_content['Author']?>
                    </td>
                    <td colspan="2">
                        <h2>
                            <?php echo $row_content['Title']?>
                        </h2>
                    </td>
                </tr>
                <tr>
                    <td>
                    </td>
                    <td style="vertical-align:top">
                        <h3>
                            <?php echo $row_content['Content']?>
                            <br />
                            <br />
                        </h3>
                    </td>
                    <td width="150px" style="vertical-align:top">
                        <img src="<?php echo $row_content['Picture']?>" style="max-width:150px; max-height:100px">
                        <h3>
                            <?php echo $row_content['Published']?>
                        </h3>
                        <br />
                        <?php if(isset ($_SESSION['Username'])){?>
                            <form method="POST" action="<?php echo $editFormAction; ?>" name="vote">
                                <input type="text" hidden="hidden" name="ID" value="<?php echo $row_content['ID']?>">
                                <input type="text" hidden="hidden" name="votes_up" value="<?php echo ($row_content['Votes'] + 1)?>">
                                <?php if(strpos($row_content['Vote_Who'], $_SESSION['Username']) !== false){?>
                                    <input type="button" value="Thanks for voting!">
                                <?php }
                                else{ ?>
                                    <input type="submit" value="<?php echo $row_content['Votes']?>: Vote Up! ▲" width="75px">
                                    <input type="hidden" name="MM_update" value="vote">
                                <?php } ?>
                            </form>
                            <a href="comments.php?ID=<?php echo $row_content['ID']?>">
                                <input type="button" value="See Comments">
                            </a>
                        <?php } 
                        else{?>
                            <?php echo $row_content['Votes']?> Votes - You must be signed in to vote
                        <?php }?>
                    </td>
                </tr>
            </table>
        <?php }while ($row_content = mysql_fetch_assoc($content));}
        else{?>
            there is nothing
        <?php }
        ?>

1 个答案:

答案 0 :(得分:0)

问题在于我使用了

的操作符
!==

当我应该使用的是

!=

示例:

strpos($row_content['Vote_Who'], $_SESSION['Username']) != false

感谢所有为此问题提供帮助的人。