好的做法我们退出PHP

时间:2018-02-05 18:19:04

标签: php

我正在制作一个简单的登录系统,我正在使用退出,但我不确定这是否是正确的退出方式。

<?php

    if(fromLogin()){
        session_start();
        error_reporting(0);

        $username = htmlspecialchars($_POST['username']);
        $password = htmlspecialchars($_POST['password']);

        $mysqli = new mysqli('localhost', 'root', '12345', 'seocom');

        if ($mysqli->connect_errno) {
            echo "connection_error";
            exit;
        }
        $sql = "SELECT username, password FROM login WHERE username = '$username'";
        if (!$result = $mysqli->query($sql)) {
            echo "connection_error";
            exit;  
        }
        if ($result->num_rows === 0 ){
            echo "user_error"; 
            exit;
        }  

        $user_pass = $result->fetch_assoc();
        if($user_pass['username'] == $username && md5($password) == $user_pass['password']){
            $_SESSION['logued'] = true;
            $_SESSION['username'] = $username;
            echo "logued";
        }else{
            echo "user_error"; 
        }
        $result->free();
        $mysqli->close();
    }else{
        header("Location: login.html");
        exit;
    }

    //comprueba si viene de login.html
    function fromLogin(){
        return $_SERVER['HTTP_REFERER'] == "http://".$_SERVER['SERVER_NAME']."/seocom_login/login.html";
    }

这是正确的方法,或者我应该使用嵌套的if和else?我不确定在每个可能的错误上调用exit是否是使用exit函数的好方法。

1 个答案:

答案 0 :(得分:1)

在像你的情况一样的程序代码中,这是不好的做法。因为退出端点确实会增加读取,调试和重构的复杂性。

有时在函数中,你可以使用&#34; return&#34;停止执行功能代码。

P.S。

您可以考虑在逻辑函数上解耦逻辑。这降低了阅读复杂性。或者你可以考虑OOP方法。