我是php和SQL的新手,只是无法弄清楚问题。请注意,这是一个学校项目,因此SQL注入和保存空白密码的漏洞无需担心。
用户填写登录表后,他被重定向到此页面:
[Some html]
<?php
if(isset($_POST['submit']))
{
ConnectSQL();
}
//Retrieve POSTed Login information
$Username = htmlspecialchars($_POST['RegUsername']);
$Email = htmlspecialchars($_POST['RegEmail']);
$Password = htmlspecialchars($_POST['RegPassword']);
function ConnectSQL() {
// SQL Server Extension Sample Code:
// (ConnectionInfo, obviously it's there in the real file)
$conn = sqlsrv_connect($serverName, $connectionInfo);
// PHP Data Objects(PDO) Sample Code:
try {
$conn = new PDO('sqlsrv:server = tcp:xxx.database.windows.net,1433; Database = userdb', 'arechon', '{NotTheRealPassword}');
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Successfully connected to SQL Server and DB";
Register();
}
catch (PDOException $e) {
print('Error connecting to SQL Server.');
die(print_r($e));
}
}
function Register($Username, $Email, $Password) {
$regquery = "INSERT INTO dbo.Users (Username, Email, Password) VALUES ('UsernameTest', 'EmailTest', 'PasswordTest')";
$conn->query($regquery);
echo '<script type="text/javascript">window.open("http://xxx.azurewebsites.net/Login.html", "_self");</script>';
代码似乎总是停在$conn->query($regquery);
并且不会返回任何错误消息。有时它会停止,当我稍微修改代码时(例如,将$conn->query($regquery);
替换为$conn->exec($regquery);
或使用“而不是”),我会收到HTTP500错误。
我在stackoverflow以及其他平台上发现了一些类似的问题,但是没有提供的答案可以解决这个错误。请注意,我使用SQL而不是MySQL(尽管如果您认为可以解决我的问题,那么改变它将不会有很多工作。)