为什么此代码在回显之前返回换行符


Why is this code returning a line break before the echo?

所以我有这个我正在使用的登录 php 脚本,它在一台服务器上工作正常(返回"成功"||"无效登录"),然后这个服务器中断,因为它返回换行符,然后返回"成功"或"无效登录"

我的猜测是 php.ini 设置。我只是不确定是哪一个。

<?php
include("../config.php");
include("../connect.php");
$adminCheck = mysql_query("SELECT * FROM admins WHERE username = '" . mysql_real_escape_string($_POST['username']) . "' AND password = '" .  mysql_real_escape_string($_POST['password']) . "'");
if (mysql_num_rows($adminCheck) == 1)
{
    $result = mysql_fetch_array($adminCheck);
    $_SESSION['user']['level']    = "admin";
    $_SESSION['user']['userid']   = $result['id'];
    $_SESSION['user']['username'] = $result['username'];
    echo "success"; 
}
else
{
    $clientCheck = mysql_query("SELECT * FROM clients WHERE username = '" . mysql_real_escape_string($_POST['username']) . "' AND password = '" .  mysql_real_escape_string($_POST['password']) . "'");
    if (mysql_num_rows($clientCheck) == 1)
    {
        $result = mysql_fetch_array($clientCheck);
        $_SESSION['user']['level']      = "client";
        $_SESSION['user']['userid']     = $result['id'];
        $_SESSION['user']['username']   = $result['username'];
        $_SESSION['user']['client']     = $result['client'];
        echo "success";
    }
    else
    {
        echo "invalid login";   
    }
}
?>

我敢打赌,连接.php或配置.php在其<?php ?>部分之前或之后包含一个'(或''r')的可乐。

这很可能是由于您的包含。您发布的代码没有理由拥有,并且我知道没有 php.ini 设置来添加此类代码。

发布您的配置并连接(隐藏用户名/pw),以便我们进一步提供帮助。

显示的代码不指示出现换行符。

附带说明一下,由于您只从布尔值中输出一个值,因此您可以初始化一个变量来保存响应,然后只回显响应一次:

<?php
include("../config.php");
include("../connect.php");
$response = 'success';
$adminCheck = mysql_query("SELECT * FROM admins WHERE username = '" . mysql_real_escape_string($_POST['username']) . "' AND password = '" .  mysql_real_escape_string($_POST['password']) . "'");
if (mysql_num_rows($adminCheck) == 1)
{
    $result = mysql_fetch_array($adminCheck);
    $_SESSION['user']['level']    = "admin";
    $_SESSION['user']['userid']   = $result['id'];
    $_SESSION['user']['username'] = $result['username'];
}
else
{
    $clientCheck = mysql_query("SELECT * FROM clients WHERE username = '" . mysql_real_escape_string($_POST['username']) . "' AND password = '" .  mysql_real_escape_string($_POST['password']) . "'");
    if (mysql_num_rows($clientCheck) == 1)
    {
        $result = mysql_fetch_array($clientCheck);
        $_SESSION['user']['level']      = "client";
        $_SESSION['user']['userid']     = $result['id'];
        $_SESSION['user']['username']   = $result['username'];
        $_SESSION['user']['client']     = $result['client'];
    }
    else
    {
        $response = "invalid login";   
    }
}
echo $response;
?>