2015-08-08 56 views
0

我一直在這個問題上停留了3天,任何幫助都將非常感激。 請注意,我現在有一個頁面的PHP和HTML,直到我得到它的工作,然後一旦它已被修復,我會將PHP連接腳本放入其通常的文件夾。 當我登錄註冊頁面時,我可以看到我已連接到我的,我可以填寫我的表單並提交它沒有任何錯誤,但是數據庫不會更新,當我刷新數據庫時沒有找到新用戶。 以下是我的代碼到目前爲止,如果任何人都可以告訴我我做錯了什麼,或者我可以改善,以解決這個錯誤,我會非常感謝。 提前謝謝!表單信息未更新到我的數據庫中

<?php 
    $host="localhost"; 
    $dbuser="root"; 
    $pass="********"; 
    $dbname="amsadler"; 
    $con = mysqli_connect ($host, $dbuser, $pass, $dbname); 
    if (mysqli_connect_errno()) 
    { 
     die ("Connection Failed!" . mysqli_connect_error()); 
    } 
    else 
    { 
    echo "Connected to database {$dbname} "; 
    } 

    if(isset($_POST['submit'])) 
    { 
     $fname = mysqli_real_escape_string($con, $_POST ['fname']); 
     $lname= mysqli_real_escape_string($con, $_POST ['lname']); 
     $email= mysqli_real_escape_string($con, $_POST ['email']); 
     $pswrd= mysqli_real_escape_string($con, $_POST ['pswrd']); 

     $sql = $con->query("INSERT INTO users (fname, lname, email, pswrd,) 
        VALUES (' {$fname} ' , ' {$lname} ' , ' {$email} ' , ' {$pswrd} ')"); 

    } 
?> 


<!DOCTYPE html> 
<html lang="en-US"> 
<head> 
    <title>Signup</title> 
    <meta charset="utf-8"> 
    <meta name="description" content="description of webpage"> 
    <meta name="keywords" content="keywords go here"> 
    <meta name="author" content="amsadler"> 
    <link rel="stylesheet" href="css/style.css"> 
    <link rel="stylesheet" href="css/signup.css"> 
    <link rel="index" href="index.php"> 
    <link rel="icon" href="img/favicon.png" sizes="16x16" type="image/png"> 
</head> 
<body> 

    <div class="header"> 
     <div id="logo"> 
       <a href="index.php"><img src="img/logo.png" alt="logo" title="blah blah"/></a> 
     </div> 
    </div> 

    <div id="signupform"> 
     <form method="post"><br> 
      <input type="text" id="fname" name="fname" placeholder="First name"> 
      <input type="text" id="lname" name="lname" placeholder="Last name"><br><br> 
      <input type="text" id="email" name="email" placeholder="Email address"> 
      <input type="password" id="pswrd" name="pswrd" placeholder="Password"><br><br> 
      <input id="button" type="submit" value="Submit"> 
     </form> 
    </div> 

<?php 
    include ("inc/footer.php"); 
?> 

</body> 
</html> 

回答

1

這裏有幾個問題。

他們中的一個與你的條件語句是:

if(isset($_POST['submit'])){...} 

沒有在那裏會火,因爲缺少name屬性「提交」的了。

名稱您的提交按鈕:

<input name="submit" id="button" type="submit" value="Submit"> 
     ^^^^^^^^^^^^^ 

然後在你的查詢後面的逗號:

(fname, lname, email, pswrd,) 
          ↑ 

刪除

(fname, lname, email, pswrd) 

添加or die(mysqli_error($con))mysqli_query()

使用錯誤的查詢檢查會表現出另一種語法錯誤,只要你會說出提交按鈕:

沒有錯誤你說什麼?您很可能不會檢查它們,或者您的系統未安裝並顯示它們。

error reporting添加到您的文件的頂部,這將有助於發現錯誤。

<?php 
error_reporting(E_ALL); 
ini_set('display_errors', 1); 

// rest of your code 

旁註:顯示錯誤應該只在分期完成,並且從不生產。

  • 它會發出一個未定義的索引提交通知。

爲了絕對確保這是一個成功的查詢,請使用affected_rows()


我注意到你可以在明文存儲密碼。如果是這樣的話,它是非常不鼓勵的。

我建議你使用CRYPT_BLOWFISH或PHP 5.5的password_hash()函數。對於PHP < 5.5使用password_hash() compatibility pack

確保在使用安全散列方法時以及何時使用安全散列方法,以確保您的密碼列足夠長以容納散列。

安全的賭注是PHP.net推薦使用的VARCHAR(255)。細節在他們的網站上列出。

+1

人太感謝你了,我新在此,我使用notepadd ++我沒有看到看到(FNAME,LNAME,電子郵件,pswrd)和我命名提交 ↑ 它現在正在工作我在YouTube上學習如何做到這一點,當我陷入困境時,如果我無法修復它,我會來專家的建議! 再次感謝人可能你有一個美好的一天。 –

+0

@AnthonySadler最受歡迎的是安東尼,很高興得到了幫助,*歡呼聲*而且你也有一個美好的一天,謝謝。 –

+0

感謝cryptfish河流以及我還沒有那麼遠,但我目前正在觀看這個系列的youtube。 https://www.youtube.com/watch?v=InmQaOENDhA 和我一起去學習 –

相關問題