如何解决如果条件内部foreach循环 [英] how to resolve if condition inside foreach loop

查看:131
本文介绍了如何解决如果条件内部foreach循环的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

<?php
$login_info = array('batman'=>'404','superman'=>'502');
$form_usr = "$_POST[usr]";
$form_pass = "$_POST[pass]";
$form_submit = "$_POST[submit]";

if ( isset($form_submit) ) {
    foreach ( $login_info as $user => $pass ) {
        if ($form_usr == $user && $form_pass == $pass) {
            echo "Successfully logged in !"; 
        }
        else {
            echo "bad username or password !";
        }
    }
}?>

我得到错误的用户名或密码! / code>和成功登录!错误的用户名或密码!我该如何解决这个问题?我试图显示成功登录!条件为真时else 用户名或密码错误!

I'm getting bad username or password !bad username or password ! and Successfully logged in !bad username or password ! How can i solve this? I'm trying to show up Successfully logged in ! when condition is true else bad username or password !

以下是截图: https://我.stack.imgur.com / rmTiG.png

推荐答案

您可以完全避免循环,而只需

You can avoid the loop altogether, instead just check your variables exist in the array.

<?php
$login_info = array('batman'=>'404','superman'=>'502');

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    $user = isset($_POST['usr']) ? $_POST['usr'] : null;
    $pass = isset($_POST['pass']) ? $_POST['pass'] : null;

    if (isset($login_info[$user]) && $login_info[$user] == $pass) {
        echo "Successfully logged in !"; 
    } else {
        echo "bad username or password !";
    }
}
?>

这篇关于如何解决如果条件内部foreach循环的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆