2014-12-19 27 views
0

我已經有一段HTML登錄表單工作了一段時間,但現在我需要添加<select>它。將<select>添加到HTML登錄表單中。爲什麼?

問題是我一旦添加登錄表單中斷。

<form action="" class="form-signin" method="post" role="form"> 
    <h2 class="form-signin-heading">Sign In</h2> 
    <input type="text" class="form-control" name="user" id="user" placeholder="User" required autofocus> 
    <input type="password" class="form-control" name="pass" id="pass" placeholder="Pass" required> 
    <select class="form-control" id="site" name="site"> // This has been added 
     <option value="Company A">Company A</option> 
     <option value="Company B">Company B</option> 
     <option value="Company C">Company C</option> 
    </select> 
    <button class="btn btn-lg btn-primary btn-block" type="submit">Sign in</button> 
    </form> 

    <?php 
    $dbh = new PDO('sqlite:database.sqlite'); 

    $stmt = $dbh->prepare("SELECT COUNT(*) FROM users WHERE user = :user AND pass = :pass"); 

    foreach ($_POST as $key => $value) { 
    $stmt->bindParam("$key", $_POST[$key]); 
    } 

    $stmt->execute(); 

    if ($stmt->fetchColumn() > 0) { 
    session_start(); 
    $_SESSION['active'] = 1; 
    $_SESSION['site'] = $_POST['site']; // This has been added 
    $_SESSION['user'] = $_POST['user']; 
    header("Location: /"); 
    } 
    ?> 

我已經打上了我與添加的代碼``//這已經added`,所以你可以看到哪些部分被打破,但我不明白爲什麼會發生這種事。

+1

你真的真的不應該將用戶的密碼存儲爲純文本。 – 2014-12-19 10:54:59

+0

當你說它不起作用,它會給你一個錯誤?如果你死了($ _ POST ['site']);你得到了什麼? – atmd 2014-12-19 10:56:06

回答

0

變化

<option value="Company A">Company A<option> 

<option value="Company A">Company A</option> 
0

您沒有正確關閉第一個選項。

<option value="Company A">Company A<option> 

應該是:

<option value="Company A">Company A</option> 
+0

當我運行沒有結束標記的選擇時,瀏覽器在渲染上更正 – atmd 2014-12-19 10:57:46

2

原因的此行代碼

$stmt = $dbh->prepare("SELECT COUNT(*) FROM users WHERE user = :user AND pass = :pass"); 
foreach ($_POST as $key => $value) { 
    $stmt->bindParam("$key", $_POST[$key]); 
} 

你要綁定的所有項目員額,但只需要兩個userpass所以保持二者結合獨立的不像這樣的foreach。

,如果HTML是尋找在選擇原因奇怪的(缺少結束選項) 所以更換

<option value="Company A">Company A<option> 

<option value="Company A">Company A</option> 
0

更改此請

<option value="Company A">Company A<option> 

<option value="Company A">Company A</option> 
+0

現在你有3個準確的解決方案:) – 2014-12-19 10:57:36

0

第一個option中存在拼寫錯誤:結束標記不是結束標記(缺少斜槓)。

相關問題