2017-09-02 67 views
0

我对这个网站不熟悉,请原谅我,如果我做错了什么。我一直在寻找互联网上的解决方案,而且我没有发现任何可以解决我的问题的解决方案。禁用拖放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'标签中没有该事件时,两者都可以正常工作。

+0

对我来说,你输入的是'''@ $ _ SESSION''',它应该是'''__SESSION''' – Wanjia

+0

@是我500年前一直使用的东西,它如果未定义,则不会发出警告。当你有警告时。而且,IIRC当然。 – deg

回答

0

我不认为你的变化与此故障有关。

也许服务器设置也被更改了。尝试通过第一线(后当然<?php)在你的PHP脚本中加入:

session_start 

做相同的news.php为好。