我有一个网站,我需要用户才能登录。它目前与公司的实际网站位于不同的服务器上。我想有一个登录表单,用于检查同一服务器上多个数据库中的用户名和密码。
继承人的设置。
1数据库有两个不同的表,我需要检查用户名和密码。 另一个数据库有一个我需要检查的表。
我将在第一个数据库中有一个表的复选框。所以表单将有3个字段。 (用户名,密码和"我是记者"复选框)
我认为它与UNION
sql命令有关。
我不知道很多关于sql但我正在努力学习,因为我去了...
这是迄今为止的代码..此外,我希望有人能告诉我这些信息是否会安全传递。
<?php
session_start(); // Starting Session
$error=''; // Variable To Store Error Message
if (isset($_POST['submit'])) {
if (empty($_POST['uname']) || empty($_POST['pswd'])) {
$error = "Username or Password is invalid";
}
else
{
// Define $username and $password
$uname=$_POST['uname'];
$pswd=$_POST['pswd'];
// Establishing Connection with Server by passing server_name, user_id and password as a parameter
$con = mysql_connect("10.0.0.3", "webaccess", "ccrweb");
// To protect MySQL injection for Security purpose
$username = stripslashes($username);
$password = stripslashes($password);
$username = mysql_real_escape_string($username);
$password = mysql_real_escape_string($password);
// Selecting Database
$db = mysql_select_db("company", $connection);
// SQL query to fetch information of registerd users and finds user match.
$query = mysql_query("select * from dbo.contacts where WebPwd='$password' AND WebAcctName='$username'", $connection);
$rows = mysql_num_rows($query);
if ($rows == 1) {
$_SESSION['login_user']=$username; // Initializing Session
header("location: "); // Redirecting To Other Page
} else {
$error = "Username or Password is invalid";
}
mysql_close($connection); // Closing Connection
}
}
?>
这还不完整,我还在研究,但我也想尽快做到这一点。
任何帮助将不胜感激!
答案 0 :(得分:0)
您似乎在以后声明了一个名称,然后是另一个连接对象名称。
$con = mysql_connect("10.0.0.3", "webaccess", "ccrweb");
$db = mysql_select_db("company", $connection);
我相信后者应该使用相同的名称$con
,也应该使用mysql_close($con);
答案 1 :(得分:0)
首先,您应该使用mysqli_或PDO API而不是mysql语句
如果您需要使用mysql,请执行以下操作:
$QueryReporter = mysql_query("SELECT * FROM $ReporterTable WHERE Username = '$Username' AND Password = '$Password'");
$QueryOthers = mysql_query("SELECT * FROM $UserTable WHERE Username ='$Username' AND Password = '$Password'");
if(mysql_num_rows($QueryReporter)==1){
//Its a reporter
}
else if(mysql_num_rows($QueryOthers)==1){
//Its not a reporter, but a user
}
else{
//Its no user or reporter, show error :)
}
编辑:
如果您正在考虑两个不同的DB服务器,可以使用一个函数,然后在完整查询后关闭连接并返回结果:
function CheckIfReporter($Username, $Password){
//DATABASE CONNECTION TO REPORTER DB
$Query = mysql_query("SELECT * FROM MyTable WHERE Username = '$Username' AND Password = '$Password'");
if(mysql_num_rows($Query)==1){
return TRUE;
}
//Else, no result:
else{
return FALSE;
}
//Close mysqlconnection:
mysql_close();
}
现在,为用户检查制作类似的功能,
if(CheckIfReporter($UsernameInput, $PasswordInput)==TRUE){
//Its a reporter
}
else if(CheckIfUser($UsernameInput, $PasswordInput)==TRUE){
//Its a user
}
else{
//Its none
}