- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在尝试将使用 mysql 的 php 登录名(我知道这有点过时)转换为使用 sqlsrv。这只是一项学习任务,因为我想学习将站点从 mySQL 迁移到 MSSQL。
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
//Start session
session_start();
//Array to store validation errors
$errmsg_arr = array();
//Validation error flag
$errflag = false;
//Connect to mysql server
$serverName = "localhost";
$connectionInfo = array( "Database"=>"dbname", "UID"=>"sa", "PWD"=>"123");
$conn = sqlsrv_connect( $serverName, $connectionInfo );
if( $conn === false ) {
die( print_r( sqlsrv_errors(), true));
}
//Function to sanitize values received from the form. Prevents SQL injection
function clean($str) {
$str = @trim($str);
if(get_magic_quotes_gpc()) {
$str = stripslashes($str);
}
return $str;
}
//Sanitize the POST values
$login = clean($_POST['username']);
$password = clean($_POST['password']);
//Input Validations
if($login == '') {
$errmsg_arr[] = 'Login ID missing';
$errflag = true;
}
if($password == '') {
$errmsg_arr[] = 'Password missing';
$errflag = true;
}
//If there are input validations, redirect back to the login form
if($errflag) {
$_SESSION['ERRMSG_ARR'] = $errmsg_arr;
session_write_close();
header("location: index.php");
exit();
}
//Create query
$qry="SELECT * FROM users WHERE Username='$login' AND Password='".md5($_POST['password'])."'";
$stmt = sqlsrv_query( $conn, $qry );
//Check whether the query was successful or not
if($stmt) {
$row_count = sqlsrv_num_rows( $stmt );
if($row_count == 1) {
//Login Successful
session_regenerate_id();
$member = sqlsrv_fetch_assoc($stmt);
$_SESSION['SESS_MEMBER_ID'] = $member['idUsers'];
$_SESSION['SESS_FIRST_NAME'] = $member['FirstName'];
$_SESSION['SESS_LAST_NAME'] = $member['LastName'];
session_write_close();
header("location: home.php");
exit();
}else {
while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC) ) {
echo $row['FirstName'];
$row_count = sqlsrv_num_rows( $stmt );
echo $row_count;
echo $stmt;
}
//Login failed
//header("location: index.php");
exit();
}
}else {
die("Query failed");
}
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Asset Manager</title>
<link rel="stylesheet" href="assets/main.css">
<link rel="stylesheet" href="assets/login.css">
</head>
<header>
<img src="img/logo.png">
</header>
<ul>
</ul>
<div class="main-content">
<form class="form-login" method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>">
<div class="form-log-in-with-email">
<div class="form-white-background">
<div class="form-title-row">
<h1>Log in</h1>
</div>
<div class="form-row">
<label>
<span>Username</span>
<input type="text" name="username" id="username">
</label>
</div>
<div class="form-row">
<label>
<span>Password</span>
<input type="password" name="password" id="password">
</label>
</div>
<div class="form-row">
<button type="submit" name="Submit" value="Login">Log in</button>
</div>
</div>
</div>
</form>
</div>
</body>
</html>
问题是它一直持续到最后一个。正如您在代码中看到的那样,我一直在进行一些故障排除。我认为问题是行计数不起作用。当我回显行数时,我只显示资源 5。
有什么想法吗?
最佳答案
解决办法是改变
if($stmt) {
$row_count = sqlsrv_num_rows( $stmt );
if($row_count == 1) {
至:
if($stmt) {
$rows = sqlsrv_has_rows( $stmt );
if($rows === true) {
关于php - 尝试将登录名从 mysqli 转换为 sqlsrv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36792477/
我将自定义屏幕与“发件人”和“收件人”电子邮件以及textview字段结合使用,以获取用户的反馈。那么,是否有任何iOS API可以自动填充“发件人”字段? 最佳答案 如果它潜在地存在一个巨大的安全漏
Chrome 会使用登录用户名自动填充网站表单上的一个框,当您提交表单时,它会要求保存登录信息。 我如何强制 Chrome 保留输入字段? 它为了自己的利益而试图变得太聪明。 它会自动填充登录用户名
当我们重装系统,或者是重装数据库之后,当附加数据库之后,发现数据库里面 有用户名,但是在sqlserver里面没有 登陆名 例如 先看 用户名 是有他上次系统的用户名的 现在我们先
首先我会说我的数据库技能很弱,很可能我只是设计错误。 我正在开发一个 Django 1.3 应用程序,它允许客户登录以查看他们“帐户”的各个方面。其中一个模型是“客户”,我在该模型中为“用户名”添加一
在我部署在 Intranet 上的 ASP.NET 应用程序中,我在 Web 服务中使用类似这样的东西来获取当前用户的 Windows 登录名: string user = User.Identity
我已经在这个问题上停留了好几天 - 非常感谢任何帮助。 我有一个调用用 C# 编写的 DLL 的 SQL 触发器。在此函数中,我需要发起触发触发器的 SQL 命令的人员的 Windows 登录名。我是
我正在尝试在我的机器上设置本地 WP 环境。我的 .htaccess 文件(与我的 index.php 文件位于同一文件夹中)如下所示: # BEGIN WordPress RewriteEngin
今天第一次尝试使用 Laravel。当我尝试访问 localhost/project/public 时出现以下错误: InvalidArgumentException Route [login] no
我正在创建非常简单的 ATM 机。我有 MySQL 数据库,其中包含以下列:登录 ID、密码、金钱。我想更改我的方法,该方法可以在开始时验证登录名和密码的正确性(并在此之后执行某些操作)。所以如果登录
我正在创建一个 Windows 服务,让不同的用户通过 RDP 连接到 PC。 我需要知道如何通过某种 WinAPI 或修改注册码或类似方式在 PC 上添加、更改和删除登录凭据(即登录 + 密码)。
我正在 Laravela 中创建一个应用程序,当我尝试访问我的 url 时,例如:http://example.com它返回这个奇怪的错误?这仅在我不访问/login 时发生? InvalidArgu
我正在尝试在我的 laravel vue 应用程序中获取当前用户。每当我尝试获取它时,我都会收到此错误: Symfony\Component\Routing\Exception\RouteNotFou
.htaccess 是一种过滤页面访问的便捷方式,这要归功于基本身份验证。 在这种情况下 Require user chandler monica ross rachel 将授权上述 4 人访问该
我使用多个帐户来管理客户的 iPhone/iPad 应用程序。因此我需要使用不同的登录名连接到iTunes Connect。如何更改 XCode 或 Application Loader 中的登录信息
当我尝试通过以下方式创建 SQL Server 登录时 CREATE LOGIN [ourdomain\SQLAccessGroup] FROM WINDOWS; 我收到此错误 The server
我已经使用 py2exe 创建了我的 python 文件的 exe,并使用特定用户运行此 exe(用于目录访问权限)。现在可执行文件位于不同的登录名中,我如何获取系统的用户名。 getpass.get
我在服务器 A 上有一个 Bash 脚本,它通过 logname 命令找到登录的 SSH 用户,即使它是以 root 运行的使用 sudo。如果我从我的桌面通过 SSH 连接到服务器 A 并运行脚本,
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwar
我使用 Laravel passport 进行身份验证 在路由 api.php 中 Route::get('/todos', function(){ return 'hello'; })->mid
大约一个半月前,我开始学习php,我开始尝试创建自己非常简单的cms,以便学习如何构造与mysql数据库交互的基本crud脚本,等等。 我目前正在为我的cms的私有管理部分建立我的登录表单,通过这样做
我是一名优秀的程序员,十分优秀!