我对这个网站不熟悉,请原谅我,如果我做错了什么。我一直在寻找互联网上的解决方案,而且我没有发现任何可以解决我的问题的解决方案。禁用拖放HTML元素时,PHP表单提交无法正常工作
我来这里有一个有趣的问题。这是事情。
我有一个与MySQL一起工作的登录“系统”。现在,登录表单的HTML部分看起来是这样的:
<form id="loginForm" method="POST" action="login.php">
<table>
<tr>
<td>Username:</td>
<td><input type="text" name="username" class="textInput" placeholder="Type here your username"></td>
</tr>
<tr>
<td>Password:</td>
<td><input type="password" name="password" class="textInput" placeholder="Type here your password"></td>
</tr>
<tr>
<td></td>
<td><input type="submit" name="submit" class="Login" value="Log in"></td>
</tr>
<tr>
<td></td>
<td><a ondragstart="return false;" href='register.php'>Don't have an account? Create one!</a></td>
</tr>
</table>
</form>
我在的“a”标签禁用拖动链接,因为我不希望用户能够拖放在他们的链接浏览器,可以通过浏览器访问应用程序,因为这是一个CEF应用程序。 。
现在,当我使用该代码上述禁用拖着我将无法登录 这里的PHP代码:
<?php
$username = mysqli_real_escape_string($conn, $_POST['username']);
$password = mysqli_real_escape_string($conn, $_POST['password']);
if(isset($_POST['submit']))
{
if(empty(trim($_POST['username'])) || empty(trim($_POST['password'])))
{
echo "<script type='text/javascript'>Alert.render('You must provide a valid username and password to log in.', 'Login Process');</script>";
}else{
$sqlCode = "SELECT * FROM members WHERE username='$username'";
$result = $conn->query($sqlCode);
$logincount = mysqli_num_rows($result);
if($logincount > 0)
{
while($row = mysqli_fetch_assoc($result))
{
if($row['isBanned'] == 1)
{
echo "<script type='text/javascript'>Alert.render('This user is banned, thus you cannot log in.', 'Login Process');</script>";
}else{
if($username == $row['username'] && $password == $row['password'])
{
if($row['isAdmin'] == 1)
{
$isAdmin = true;
@$_SESSION['isAdmin'] = $isAdmin;
}
@$_SESSION['username'] = $username;
$userid = $row['user_id'];
@$_SESSION['userid'] = $userid;
header('location:news.php');
}else{
echo "<script type='text/javascript'>Alert.render('Your username or password is incorrect.', 'Login Process');</script>";
}
}
}
}else{
echo "<script type='text/javascript'>Alert.render('We are sorry, but the user does not exist.', 'Login Process');</script>";
}
}
}
mysqli_close($conn);
?>
如果我输入不正确的凭据或不输入任何内容所有,它会显示弹出窗口。一切正常,直到我提供正确的凭据。在这种情况下,它不会让我进来,只是将重新加载页面。我做错了什么?我一直在试图解决这个问题,但它不会工作。在光明的一面,禁用拖动工作的脚本,但它会使登录系统不能。
我是PHP编程的初学者,我希望我不会很害羞。 :)
感谢您提前给出答案! :)
编辑:我不认为它是@ $ _ SESSION而不是$ _SESSION,因为当'a'标签中没有该事件时,两者都可以正常工作。
对我来说,你输入的是'''@ $ _ SESSION''',它应该是'''__SESSION''' – Wanjia
@是我500年前一直使用的东西,它如果未定义,则不会发出警告。当你有警告时。而且,IIRC当然。 – deg