我已使用以下脚本(db_connect.php)成功地使用php连接到sql server 2012:
<?php
$serverName = "192.168.1.248\SQL2012"; //serverName\instanceName
$connectionInfo = array( "Database"=>"TLSS", "UID"=>"sa", "PWD"=>"blablabla");
$connect = sqlsrv_connect( $serverName, $connectionInfo);
if( $connect) {
echo "Database connection established.<br />";
}else{
echo "Connection could not be established.<br />";
die( print_r( sqlsrv_errors(), true));
}
?>
现在,我有一个登录脚本,该脚本在运行时不会引发任何错误,但是当我输入正确的登录凭据时,它不会重定向到正确的页面。登录脚本(login.php)如下:
<?php
require_once 'php_action/db_connect.php';
session_start();
if(isset($_SESSION['userId'])) {
header('location: http://192.168.1.248:8080/booking/generate_tdn.php');
}
$errors = array();
if($_POST) {
$username = $_POST['username'];
$password = $_POST['password'];
if(empty($username) || empty($password)) {
if($username == "") {
$errors[] = "Username is required";
}
if($password == "") {
$errors[] = "Password is required";
}
} else {
$sql = "SELECT * FROM tblLogin WHERE login = '$username'";
$result = sqlsrv_query ($connect , $sql );
//$result = $connect->query($sql); NOt applicable to SQL Server
if(sqlsrv_num_rows ($result ) == 1) {
$password = $password;
// exists
$mainSql = "SELECT * FROM tblLogin WHERE login = '$username' AND passwd = '$password'";
$mainResult = sqlsrv_query($connect, $mainSql);
//$mainResult = $connect->query($mainSql); Not applicable to SQL server
if (sqlsrv_num_rows ($mainResult ) == 1){
//if($mainResult->num_rows == 1) {
$value = sqlsrv_fetch_assoc($mainResult);
$user_id = $value['login'];
// set session
$_SESSION['userId'] = $user_id;
header('location: http://192.168.1.248:8080/booking/generate_tdn.php');
} else{
$errors[] = "Incorrect username/password combination";
} // /else
} else {
$errors[] = "Username does not exist";
} // /else
} // /else not empty username // password
} // /if $_POST
?>
当我运行登录脚本时,它将引发消息“用户名不存在”,这意味着第26-30行上的代码未执行,但未引发任何错误。我想念什么?