你好,我正在尝试创建一个登录和会话脚本与PHP使用SQL服务器,我无法得到它的工作,它接缝像没有mater什么我放入登录表单,只要它验证它会工作,我不知道代码有什么问题,但是,我刚刚开始使用PHP和SQL服务器,并没有得到知识来找出我的自我的问题,如果soeone可以帮助,这将是很好,如果你知道任何使用sql server和php的优秀教程网站,可以请你分享一下,因为他们没有缝隙可以为他们留下很多好的教程网站。现阶段欢迎任何帮助。我的主要问题是,它不检查数据库中是否存在发布在html表单中的信息。 (我已经采取了JS验证为它不缝nessessary然而,工程)php + sql server登录和会话
的login.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();
}
的index.php
<?php
session_start();
if($_SESSION['valid_user']!=true){
header('Location: error.html');
die();
}
?>
谢谢你们可能会带来的任何帮助
另一方面,您的代码易受SQL注入攻击(http://en.wikipedia.org/wiki/SQL_injection)的影响,将用户输入直接连接到查询中是非常危险的。了解参数化查询以防止这种情况发生。 – Nathan
此外,你的问题并不完全清楚。首先你说“我无法工作”,那么你会说,“只要验证它会起作用,我不会将它放入登录表单中”。究竟,你遇到的问题是什么? – Nathan
它不检查数据库中是否存在用户名和密码,无论我放入什么内容,它都会将我带到登录页面,如果它不存在,它应该带我到错误页面。是的,我打算做一次SQL注入预防,一旦我得到几个脚本上nd运行,我很满意workinb与SQL服务器 – jphillip724