gpt4 book ai didi

php + sql server 登录和 session

转载 作者:可可西里 更新时间:2023-11-01 01:04:20 25 4
gpt4 key购买 nike

你好,我正在尝试用 php 创建一个用于 sql server 的登录和 session 脚本,但我无法让它工作,无论我在登录表单中输入什么,只要它验证它可以工作,它就像我输入的一样,我无法弄清楚代码有什么问题,但是,我刚刚开始使用 php 和 sql server 并且还没有获得知识来解决我自己的问题如果 soeone 可以帮助那会很棒,如果你知道任何使用 sql server 和 php 的优秀教程网站,您能否分享一下,因为遗憾的是,对于他们来说,没有那么多优秀的教程网站。在这个阶段非常欢迎任何帮助。我的主要问题是,它不检查以 html 形式发布的信息是否存在于数据库中。 (我已经取出了 js 验证,因为它不需要接缝,但它有效)

登录.html

<form name="log" action="log_action.php" method="post">
Username: <input class="form" type="text" name="uNm"><br />
Password: <input class="form" type="password" name="uPw"><br />
<input name="submit" type="submit" value="Submit">
</form>

log_action.php

session_start();
$serverName = "(local)";
$connectionInfo = array("Database"=>"mydatabase","UID"=>"myusername", "PWD"=>"mypassword");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false){
echo "Error in connection.\n";
die( print_r( sqlsrv_errors(), true));
}
$username = $_REQUEST['uNm'];
$password = $_REQUEST['uPw'];
$tsql = "SELECT * FROM li WHERE uNm='$username' AND uPw='$password'";
$stmt = sqlsrv_query( $conn, $tsql, array(), array( "Scrollable" => SQLSRV_CURSOR_KEYSET ));
if($stmt == true){
$_SESSION['valid_user'] = true;
$_SESSION['uNm'] = $username;
header('Location: index.php');
die();
}else{
header('Location: error.html');
die();
}

索引.php

<?php
session_start();
if($_SESSION['valid_user']!=true){
header('Location: error.html');
die();
}
?>

感谢你们能提供的任何帮助

最佳答案

问题是您从未真正检查过查询结果。

if($stmt == true){

只检查查询是否正确执行 - 它不说明查询返回的结果。

因此,您需要使用 sqlsrv_fetch函数(或相关函数之一)来实际检查查询结果。

在您的特定情况下,只需检查结果集是否包含带有 sqlsrv_has_rows 的行应该足够了。

关于php + sql server 登录和 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14679055/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com