2015-11-25 15 views
-2

我正在嘗試創建checklogin.php文件。我確信讀這篇文章的人會理解,但要重申一下,在進入下一個屏幕之前,我想確保usernamepassword都在我的數據庫中。單擊登錄將顯示PHP文件而不是登錄(檢查登錄失敗)

基本上我的問題是,當我點擊Login時,我顯示了checklogin.php文件的PHP代碼,而不是指向下一頁或在登錄時顯示錯誤。

我的登錄頁面:

<html> 
    <head> 
    <title>Senior Project Login</title> 
    </head> 
    <body> 
    <p>Please Login: </p> 

    <form action="checklogin.php" method="POST"> 
     <p>Username: <input type="text" name="username" placeholder="Username" required="required" /> <br/> 
     <p>Password: <input type="password" name="password" placeholder="Password" required="required" /> <br/><br> 

     <input type="submit" value="Login"/> 
     <input type="button" onclick="location.href='SeniorDB_Main.php';" value="Return to Register" /> 

    </form> 

    </body> 
</html> 

我checklogin.php文件:

<?php 
    mysql_connect("localhost", "[db]", "[pw]") or die("mysql  connection is failure."); 
    mysql_select_db("[db]") or die("Database does not exists."); 

    if (isset($_POST['submit'])){ 
    $username=mysql_escape_string($_POST['username']); 
    $password=mysql_escape_string($_POST['password']); 
    if (!$_POST['username'] | !$_POST['password']) 
    { 
    echo ("<SCRIPT LANGUAGE='JavaScript'> 
      window.alert('You did not complete all of the required fields') 
      window.location.href='htmlogin.html' 
      </SCRIPT>"); 
    exit(); 
     } 


    $sql= mysql_query("SELECT * FROM `users` WHERE `username` = '$username' AND `password` = '$password'"); 
    if(mysql_num_rows($sql) > 0) 
    { 
    echo ("<SCRIPT LANGUAGE='JavaScript'> 
      window.alert('Login Succesfully!.') 
      window.location.href='htmllogin.html' 
      </SCRIPT>"); 
    exit(); 
    } 
    else{ 
    echo ("<SCRIPT LANGUAGE='JavaScript'> 
      window.alert('Wrong username password combination.Please re-enter.') 
      window.location.href='htmllogin.html' 
      </SCRIPT>"); 
    exit(); 
    } 
    } 
    else{ 
    } 
?> 

做了很多的研究後,我有幾個問題。我也想道歉,但是我對這個問題的瞭解遠遠低於我的想法。

1)我必須安裝PHP嗎?所有這一次,我剛剛創建使用PHP訪問數據庫的文件,從未安裝任何東西。

2)我怎麼知道我是如何訪問這個數據庫的?目前,它位於由我的教授提供的服務器上,我們只是創建數據庫並將文件放入其中。我是否還需要安裝

3)我去了PHP code is not being executed, instead code shows on the page,看看能不能從那裏找出解決辦法,一切都在我頭上,我不明白髮生了什麼事。

如果任何人都可以解釋(在新手談話中)將會發生的事情。

+0

小點:如果已禁用Javascript是什麼? – ScottMcGready

+0

你是從'localhost'還是作爲文件運行它? –

+0

你確定PHP已經安裝並且使用Apache或者web服務器替代嗎? –

回答

-1

如果您在Web瀏覽器中看到PHP代碼,則Web服務器不會將該文件視爲PHP並解析它,而是將它作爲文本或HTML文件發送出去。

要測試是否安裝了PHP和正常工作,創建一個頁面,下面的代碼:

<?php 
phpinfo(); 

如果輸出與你的PHP安裝那麼它的正常工作信息的表。如果您看到該PHP代碼,則需要在您的Web服務器中安裝PHP。

對於Linux上的Apache,你需要的PHP模塊添加到Web服務器的配置:

LoadModule php5_module modules/libphp5.so 

然後告訴它PHP文件與PHP模塊處理:

<FilesMatch \.php$> 
    SetHandler application/x-httpd-php 
</FilesMatch> 

其他Web服務器需要完成相同的基本工作,即添加PHP模塊,將PHP文件與PHP模塊相關聯。

PHP的安裝文件應該給你更多的信息http://php.net/manual/en/install.php

+0

這真讓我感到困惑。我不太瞭解PHP,我甚至不知道我必須爲它安裝一些東西?當我嘗試打開'<?php phpinfo();'時,確切的文本顯示出來。有沒有更簡單的方法來安裝我需要的東西?如果我從服務器訪問數據庫,這是如何改變我需要的? – mudwomp

+0

Web服務器通過發送用戶請求的文件(HTML,JPG等)來工作。 PHP的不同之處在於它被執行並且該執行的輸出被髮送給用戶。要發生這種情況,需要安裝PHP並且Web服務器需要知道.php文件由PHP模塊執行。有關如何安裝的具體內容取決於您的操作系統和Web服務器。 PHP文檔有一步一步的說明。 –