2016-11-17 55 views
0

我想知道包含php代碼和html表單的php文件是否存在問題。 例如: 文件中的第一部分是:單個文件中的php和html表單

<?php ... 
?> 

<html>...<form action = "current file"> ..... </form> 
</html> 

行動將把這個當前文件的名稱。

還是我必須將php代碼放在擴展名爲.php的文件中,而html代碼放在擴展名爲.html的文件中?

+1

不,你沒有。試試看。如果沒有進入當前頁面,您甚至不需要「操作」。 – chris85

+1

** PHP **代碼不適用於'.html'文件擴展名。您應該將文件擴展名更改爲'.php'以獲取** PHP **代碼。 –

+0

你可以做到這一點。 創建.htaccess文件,然後插入'AddType application/x-httpd-php .html .htm'。但我不建議將HTML文件用作PHP –

回答

0

自己測試一下 - 你可以。 您也可以在HTML標籤內使用PHP,因爲無論客戶端何時發送請求,PHP都會加載到服務器端。

客戶端發送請求 - >服務器獲取請求,並加載了PHP文件 - >服務器負載的PHP,執行PHP,並與它返回文本,或者沒有取代所有PHP對象 - >客戶端獲取已經通過服務器加載(或修改)

注意的文件:如果您使用HTML結合PHP,該文件需要擴展.PHP因爲HTML原本不支持PHP的標籤。

0

下面是在同一個文件中的一個php和html表單的例子。 Ofcourse文件擴展名必須是.PHP

你只需要改變 '行動= 「當前文件」' 到 '行動= 「」'

的index.php

<?php 
    if(isset($_POST['submit'])) { 
     // The things that needs to be checked and executed WHEN submitted. 

     $email = htmlspecialchars($_POST['Email']); 
     $email = strip_tags($email); 

     $password = htmlspecialchars($_POST['Password']); 
     $password = strip_tags($password); 

     //SQL STUFF 

     if ($email === $row['email'] && $password === $row['password']) { 
      $_SESSION['uuid'] = $row['uuid']; 
      header("Location: profile.php?id=". $row['uuid'] .""); 
     } 
    } 
?> 
<!DOCTYPE html> 
<html> 
<head> 
    <title>My Form</title> 
</head> 
<body> 
    <form action="" method="POST"> 
     <input type="email" name="Email" placeholder="Email..." required> 
     <input type="password" name="Password" placeholder="Password..." required> 
     <input type="submit" name="submit" value="Submit"> 
    </form> 
</body> 
</html>