2016-01-22 194 views
-2

這真的開始令人討厭... 我想創建一個註冊頁面,它發送用戶名,密碼和安全級別。PHP「注意:未定義索引」

HTML表單

<div class="login"> 
    <h1>Register</h1> 
    <form method="POST" action="" name="register_form"> 
     <input type="text" name="user" placeholder="Username" required="required" /> 
     <input type="password" name="pass" placeholder="Password" required="required" /> 
     <input type="text" name="level" placeholder="LEVEL" value="1" disabled="true"/> 
     <button type="submit" name="Register" class="btn btn-primary btn-block btn-large">Register</button> 
    </form> 
</div> 

和我的PHP這是對同一個文件..

<?php 
require 'config/db_connect.php'; 

if(isset($_POST['Register'])) { 
    session_start(); 
    $username = $_POST['user']; 
    $password = $_POST['pass']; 
    $level = $_POST['level']; 
    //$seccode = $_POST['seccode']; 

    $sql = $con->query("INSERT INTO secure_login (email, password, lvl) VALUES('{$username}', '{$password}','{$level}')"); 
} 
?> 

,我不斷收到此錯誤..

Notice: Undefined index: level in C:\xampp\htdocs\tools\register.php on line 8 
+2

禁用'input'元素沒有得到公佈 – billyonecan

+2

側面說明:(!)推入你的數據庫之前,你一定要淨化你的投入。和/或使用參數化查詢。那裏的代碼已經預先註冊爲[sql -injections](http://php.net/manual/de/security.database.sql-injection.php) –

+0

如前所述 - 禁用的輸入元素不會發布,您可以使用'readonly'屬性來代替。 – Qirel

回答

1
Notice: Undefined index: level in C:\xampp\htdocs\tools\register.php on line 8 

當您嘗試通過陣列中不存在的鍵訪問陣列時發生。

提示:檢查變量的生存做print_r($_POST);

值供殘疾人使用的形式的元素並不傳遞到處理器 方法。該W3C這要求一個成功的元素(這的工作原理類似於未籤 形式複選框)

而不是禁用輸入你更應該添加一些JavaScript,使其無法進行編輯,如:

var defaultValue = "hello"; 
element.addEventListener("keyup", function(e){ 
    this.value = defaultValue ; 
}); 

或只使用:style="display: none"

對於如:

disabled或使用 readonly instaed

(我用這個隱藏的文件上傳表單。)

因爲我也有我的咖啡已經:

你的數據庫連接(或多或少)是不安全的。 嘗試一個安全連接這個例子:

$db = new PDO("mysql:host=$db_host;dbname=$db_name;charset=utf8", "$db_user", "$db_pass"); 
    $query = $db->prepare("INSERT INTO accounts(username, password) VALUES (?, ?)"); 
    $query->execute(array($username, $password)); 
    $db = null; 
+0

我把你所說的「只讀」仍然得到錯誤aswel,當我把「print_r($ _ POST);它只顯示用戶名和密碼? – Ace

+0

然後你沒有刪除殘疾人。 %working example。 – Maurize

+0

你可以在這裏訪問我:http://chat.stackoverflow.com/rooms/17/javascript? – Maurize