簡體   English   中英

簡單的PHP注冊表單僅收集NULL值?

[英]Simple PHP Registration Form Only Collects NULL Values?

我正在嘗試使用PHP為網站創建基本的登錄/注冊。 下面的代碼顯示我需要測試的config.php,它可以順利連接到我的站點。 發生的是,當我轉到頁面並輸入值時,無論我輸入的電子郵件和密碼是什么,它都表示它們總是匹配的。 當我嘗試輸出email1和email2的值時,它什么也不輸出。 我認為按提交時表單未收集數據。 如果有人看到我在做什么錯,將不勝感激!

<?php
require('config.php');
if(isset($_POST['submit'])) {
    $email1 = $POST['email1'];
    $email2 = $POST['email2'];
    $pass1 = $POST['pass1'];
    $pass2 = $POST['pass2'];

    if($email1 == $email2) 
    {
        echo "Emails match.<br />";
        if($pass1 == $pass2)
        {
            echo "Passwords match.<br />";
        }
        else 
        {
            echo "Sorry, your passwords do not match.<br />";
            exit();
        }
    }
    else 
    {
        echo "Sorry, your emails do not match.<br /><br />";
    }

}
else {
$form = <<<EOT
<form action="register.php" method="POST">
First Name: <input type="text" name="name" /><br />
Last Name: <input type = "text" name = "lname" /><br />
User Name: <input type = "text" name = "uname" /><br />
Email: <input type = "text" name = "email1" /><br />
Confirm Email: <input type = "text" name = "email2" /><br />
Password: <input type = "password" name = "pass1" /><br />
Confirm Password: <input type = "password" name = "pass2" /><br />
<input type = "submit" value = "Register" name = "submit" />
</form>

EOT;
echo $form;
}
?>

問題是您忘記了所有$POST的下划線

將它們全部更改為$_POST

這是一個超級全局變量 ,其中9個變量中的8個需要下划線,與$GLOBALS不同

  • $ GLOBALS <===這不需要下划線。
  • $ _ SERVER
  • $ _GET
  • $_POST <===將它們全部更改為此。
  • $ _FILES
  • $ _COOKIE
  • $ _SESSION
  • $ _REQUEST
  • $ _ENV

如果已設置/打開錯誤報告 ,則會多次收到信號通知您:

注意:未定義的變量:POST in ...

要啟用它,可以在打開<?php標簽之后添加以下內容:

error_reporting(E_ALL);
ini_set('display_errors', 1);

注意:錯誤報告僅應在登台進行,而不應在生產中進行。


邊注:

由於您顯然是在同一頁面上運行整個代碼,因此您可以根據需要將action="register.php"更改為action=""


密碼

我還注意到您可能以純文本形式存儲密碼。 不建議這樣做。

使用以下之一:

其他連結:


  • 如果您使用純文本作為密碼存儲方法,那么恐怕只是一個時間問題,您的網站才會受到威脅。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM