用于 SQL Server 登录表单的 PHP 脚本

Posted

技术标签:

【中文标题】用于 SQL Server 登录表单的 PHP 脚本【英文标题】:PHP Script for log in form with SQL Server 【发布时间】:2018-08-05 15:29:20 【问题描述】:

我在本地运行一个网站。我为登录表单创建了一个 php 脚本。

<?php

#starts a new session
session_start();

#includes a database connection
$serverName = "SQLServerNamehere"; //serverName\instanceName
$connectionInfo = array( "Database"=>"DatabaseNameHere", 
"UID"=>"ServerUsernameHere", "PWD"=>"ServerPasswordHere");
$conn = sqlsrv_connect( $serverName, $connectionInfo);

if( $conn ) 
echo "Connection established.<br />";
else
echo "Connection could not be established.<br />";
die( print_r( sqlsrv_errors(), true));

#catches user/password submitted by html form
$email = $_POST['email'];
$password = $_POST['password'];

#checks if the html form is filled
if(empty($_POST['email']) || empty($_POST['password']))
echo "Fill all the fields!";
else

#searches for email and password in the database
$query = "SELECT * FROM [dbo].[Test] WHERE UserEmail(SQL Table 
column)='$email' AND UserPassword(SQL table column)='$password'";
$result = sqlsrv_query($conn, $query);  

#checks if the search was made
if($result === false)
die( print_r( sqlsrv_errors(), true));


#checks if the search brought some row and if it is one only row
if(sqlsrv_has_rows($result) != 1)
echo "Email/password not found";
else

#creates sessions
while($row = sqlsrv_fetch_array($result))
$_SESSION['id'] = $row['id'];
$_SESSION['name'] = $row['name'];
$_SESSION['user'] = $row['user'];
$_SESSION['level'] = $row['level'];

#redirects user
header("Location: homepage.html");



?>

这个文件叫做signin.php

我的 html 登录表单名为 signin.html:

<form class="login-form" action = 'signin.php' method="post">
  <input type="text" placeholder="email"/>
  <input type="password" placeholder="password"/>
  <button>login</button>
</p> -->

</form>

现在,当用户在输入正确的凭据后单击登录按钮时,我希望将用户重定向到主页选项卡,但是当您输入凭据并单击登录按钮时,它只显示 PHP 代码。我对此很陌生,有人可以向我解释我如何使它工作吗?谢谢

【问题讨论】:

创建另一个脚本,并将以下代码放入其中:&lt;?php phpinfo(); ?&gt;。在浏览器中运行它。看到代码了吗?您的服务器处理程序有问题,将代码解析为 PHP。 【参考方案1】:

如果它正在显示 PHP 代码,则您的网络服务器未设置为处理 PHP 文件。

如何做到这一点取决于您的操作系统和网络服务器堆栈,但通常,您需要安装一个 PHP 处理程序,然后向您的网络服务器添加配置,告诉它当一个 PHP 文件的请求进入时,通过将该代码发送到 PHP 应用程序并将其作为呈现的网页返回。

您可以参考 PHP 文档了解更多信息:

http://php.net/manual/en/install.php

【讨论】:

以上是关于用于 SQL Server 登录表单的 PHP 脚本的主要内容,如果未能解决你的问题,请参考以下文章

PHP/SQL 登录表单 - 如何检查数据库中的密码

如果我使用 header() 函数,登录索引表单不适用于 login.php

将php表单信息更新到sql server数据库时出错

PHP / SQL在表单完成时存储当前登录用户的名称

sql注入登录表单错误

MS SQL SERVER、PHP、PDO、ODBC:用户登录失败