我正在制作一个简单的登录系统,我正在使用退出,但我不确定这是否是正确的退出方式。
<?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函数的好方法。
答案 0 :(得分:1)
在像你的情况一样的程序代码中,这是不好的做法。因为退出端点确实会增加读取,调试和重构的复杂性。
有时在函数中,你可以使用&#34; return&#34;停止执行功能代码。
P.S。
您可以考虑在逻辑函数上解耦逻辑。这降低了阅读复杂性。或者你可以考虑OOP方法。