티스토리 뷰

간단한 수정이 필요합니다.

class Functions{
public static function login($email,$password){
    $response['error'] = false;
        $response['errortxt'] = "";
            $email = $_GET['email'];
                $password = $_GET['password'];
                    if(isset($_GET['submit']) AND isset($email) AND isset($password)){
                            $password = md5($password);
                                    $sql = "SELECT * FROM users WHERE email='$email' AND password='$password'";
                                            $result = $conn->query($sql);
                                                    if ($result->num_rows > 0) {
                                                                $row = $result->fetch_assoc();
                                                                            $_SESSION['nume'] = $row["name"];
                                                                                        $_SESSION['uid'] = $row["id"];
                                                                                                    $_SESSION['admin'] = $row["admin"];
                                                                                                                $_SESSION['email'] = $row["email"];
                                                                                                                            $_SESSION['points'] = $row["points"];
                                                                                                                                    }else{
                                                                                                                                                $response['error'] = true;
                                                                                                                                                            $response['errortxt'] = "Invalid Login Credentials";
                                                                                                                                                                    }
                                                                                                                                                                        }
                                                                                                                                                                            return $response;
                                                                                                                                                                            }
                                                                                                                                                                            }
                                                                                                                                                                            

다음과 같이 호출해야합니다.

$fnCallStatus = Function::login($email,$password); //Now you have the response;
if($fnCallStatus['error']) //we have an error
{
    echo $fnCallStatus['errortxt']; //we print the message
    }
    
-------------------

안녕하세요, 좋은 코딩 원칙과 좋은 취향이 없기 때문에 코드를 약간 수정했습니다 (초 글로벌 $ _GET 변수를 호출하면 함수 매개 변수에 다른 것을 배치하더라도 요청 후에 항상 무언가를 얻을 수 있습니다).

class Functions{

    public static function login($email,$password)
        {
                $error['is'] = true;
                
                        $email = htmlspecialchars($email);
                                $password = md5(htmlspecialchars($password));
                                
                                        if(!empty($email) AND !empty($password))
                                                {
                                                            $sql = "SELECT * FROM users WHERE email='$email' AND password='$password'";
                                                                        $result = $conn->query($sql);
                                                                                    if ($result->num_rows > 0)
                                                                                                {
                                                                                                                $row = $result->fetch_assoc();
                                                                                                                                $_SESSION['nume'] = $row["name"];
                                                                                                                                                $_SESSION['uid'] = $row["id"];
                                                                                                                                                                $_SESSION['admin'] = $row["admin"];
                                                                                                                                                                                $_SESSION['email'] = $row["email"];
                                                                                                                                                                                                $_SESSION['points'] = $row["points"];
                                                                                                                                                                                                            } else {
                                                                                                                                                                                                                            $error['mismatch'] = "Email or password does not match.";
                                                                                                                                                                                                                                            return $error;
                                                                                                                                                                                                                                                        }
                                                                                                                                                                                                                                                                } else {
                                                                                                                                                                                                                                                                            $error['empty'] = "Please fill all login fields. Thank you";
                                                                                                                                                                                                                                                                                        return $error;
                                                                                                                                                                                                                                                                                                }
                                                                                                                                                                                                                                                                                                    }
                                                                                                                                                                                                                                                                                                    }
                                                                                                                                                                                                                                                                                                    
                                                                                                                                                                                                                                                                                                    $error = Function::login($_GET['email'],$_GET['password']);
                                                                                                                                                                                                                                                                                                    
                                                                                                                                                                                                                                                                                                    if($error['is'])
                                                                                                                                                                                                                                                                                                    {
                                                                                                                                                                                                                                                                                                        if ($error['mismatch']) {
                                                                                                                                                                                                                                                                                                                echo $error['mismatch'];
                                                                                                                                                                                                                                                                                                                    } elseif ($error['empty']) {
                                                                                                                                                                                                                                                                                                                            echo $error['empty']
                                                                                                                                                                                                                                                                                                                                }
                                                                                                                                                                                                                                                                                                                                }
                                                                                                                                                                                                                                                                                                                                

함수는 발생하지 않았음에도 불구하고 항상 $ error를 반환합니다. 나는 그것을 수정하고 쿼리 케이스가 아닌 경우에만 오류를 반환합니다.

함수는 배열을 반환 할 수 있습니다. 따라서 다른 텍스트로 여러 필드를 설정해야하는 경우 원하는 것을 배열에 배치 할 수 있습니다. 이 솔루션은 더 buletproof입니다.



출처
https://stackoverflow.com/questions/39920002
댓글
공지사항
Total
Today
Yesterday
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31