0

总而言之,我正在开展一个项目,其中包括。

MSSQL 服务器 2008,国际空间站 7,PHP

我想使用 $_SESSION 但是当我使用它时,它会出现在 ISS7 的日志记录中

PHP Notice:  Undefined index: Username in line 14
PHP Notice:  Undefined index: Afdeling in line 15
PHP Notice:  Undefined index: Mail in line 16

以下是这些错误的脚本:

session_start();
include_once("connect.php");

if (isset($_POST['username'])) {
    $username = $_POST['username'];
    $password = $_POST['password'];
    $tsql = "SELECT id, username, afdeling, mail FROM dbo.login WHERE         username='" . $username . "' AND password='" . $password . "'";
    $res = sqlsrv_query($conn, $tsql);
    $row = sqlsrv_fetch_array($res, SQLSRV_FETCH_ASSOC);
    if ($row) {
        $_SESSION['id'] = $row['id'];
        $_SESSION['username'] = $row['Username'];
        $_SESSION['afdeling'] = $row['Afdeling'];
        $_SESSION['mail'] = $row['Mail'];
        header("Location: calender.php");
    } else {
        echo "login information is incorrect please try again.";
    }
}

页面 connect.php 包含以下内容:

$serverName = "TEST"; //serverName\instanceName
$connectionInfo = array("Database" => "TEST", "UID" => "bla", "PWD" => "bloo");
$conn = sqlsrv_connect($serverName, $connectionInfo);

if ($conn) {
    echo "<span style='color:green;'>Connection established.</span><br />";
} else {
    echo "<span style='color:red;'>Connection could not be established.</span><br />";
    die(print_r(sqlsrv_errors(), true));
}
?>

包含 post 函数的脚本:

echo "<form class='Login' action='TF.php' method='post'></br>
Username: <input type='text' name='username' STYLE='width:200px';/>&nbsp;<br />
Password:&nbsp;  <input type='password' name='password' STYLE='width:200px;'     />&nbsp;<br />
<input class='loginbutton' type='submit' name='submit' value='Log In' />

我该如何解决这些错误?任何帮助是极大的赞赏。

4

2 回答 2

1

print_r($row);在通话后执行一个sqlsrv_fetch_array()检查$row确切包含的内容。

我猜您的数组索引存在区分大小写的问题($row['Username']$row['username']or不同$row['USERNAME'])。

于 2013-06-17T09:22:33.967 回答
0

您的查询中有小写名称,但行中的第一个字母大写:

询问:

SELECT id, username, afdeling, mail 

$行:

$_SESSION['username'] = $row['Username'];
$_SESSION['afdeling'] = $row['Afdeling'];
$_SESSION['mail'] = $row['Mail'];

所以这应该是:

$_SESSION['username'] = $row['username'];
$_SESSION['afdeling'] = $row['afdeling'];
$_SESSION['mail'] = $row['mail'];
于 2013-06-17T09:25:05.060 回答