2017-09-02 45 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爲好。