2014-10-16 79 views
0

我有兩個.php文件。第一個文件是包含聯繫表單的contact.php,另一個文件是contact_form.php,其中包含SQL和PHP語句以將數據發送到數據庫。我的contact_form.php文件和數據庫之間有一個成功的連接;然而,每當我寫在我的本地的HTML表單中的信息,並做「提交」,我得到以下錯誤:爲什麼我的HTML表單不提交數據到MySQL數據庫?

錯誤:無法找到文件:觀點\家\ contact_form.php.php

我有兩個問題:

1)我的contact_form.php文件與我的contact.php文件位於同一目錄,即** views \ home **,那麼它爲什麼會給我一個錯誤,它找不到該文件在那個目錄中?

2)爲什麼在錯誤信息中我的contact_form.php文件有另外的.php結尾?

代碼爲contact.php:

<form class="well" id="contactForm" name="sendMsg" novalidate="" action="contact_form.php" method="post"> 
     <div class="control-group"> 
      <div class="controls"> 
       <input class="form-control" name="fullname" id="name" type="text" placeholder="Full Name" required="" data-validation-required-message="Please enter your name" /> 
      </div> 
     </div> 
     <div class="control-group"> 
      <div class="controls"> 
       <input class="form-control" name="phonenumber" id="phone" type="text" placeholder="Phone Number" required="" data-validation-required-message="Please enter your phone number" /> 
      </div> 
     </div> 
     <div class="control-group"> 
      <div class="controls"> 
       <input class="form-control" name="emailaddress" id="email-address" type="email" placeholder="Email Address" required="" data-validation-required-message="Please enter your email" /> 
      </div> 
     </div> 
     <div class="control-group"> 
      <div class="controls"> 
       <textarea rows="6" class="form-control" name="message" id="msg" type="msg" placeholder="Enter detailed question/concern, and we will get back to you." required="" data-validation-required-message="Please enter your question/concern"></textarea> 
      </div> 
     </div> 
     <div class="control-group"> 
      <div class="controls submit-btn"> 
       <button class="btn btn-primary" type="submit" value="Submit">Submit</button> 
      </div> 
     </div> 
    </form> 
</div> 

contact_form.php:

<?php 

define('DB_NAME', 'database_db'); 
define('DB_USER', 'root'); 
define('DB_PASSWORD', ''); 
define('DB_HOST', 'localhost'); 

$connection = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD); 

if(!$connection){ 
die('Database connection failed: ' . mysqli_connect_error()); 
} 

$db_selected = mysqli_select_db($connection, DB_NAME); 

if(!$db_selected){ 
die('Can\'t use ' .DB_NAME . ' : ' . mysqli_connect_error()); 
} 

echo 'Connected successfully'; 

$name = @$_POST ['fullname']; 
$phone = @$_POST ['phonenumber']; 
$email = @$_POST ['emailaddress']; 
$msg = @$_POST ['message']; 

$sql = "INSERT INTO contact_form (fullname, phonenumber, emailaddress, message) VALUES ('$name', '$phone', '$email', '$msg')"; 

if (!mysqli_query($connection, $sql)){ 
die('Error: ' . mysqli_connect_error($connection)); 
} 
?> 

我知道SQL注入的,並會盡快爲我看到的一切工作就可以工作正常。

的.htaccess

# EmagidPHP .htaccess 
# Every website must have this file in its root web folder 

Options +FollowSymlinks 
RewriteEngine on 

# Apache must be compiled with gzip or deflate for transmission 
# compression to work for the following file types 
# AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml 
# AddOutputFilterByType DEFLATE application/x-javascript 
# application/javascript text/javascript text/x-js text/x-javascript 
# AddOutputFilter DEFLATE js css htm html xml 

# Missing favicon should not cause SkyPHP to load 
RewriteRule ^favicon\.ico - [L] 

# If the requested file or folder is not found, SkyPHP will check multiple codebases for the correct file 
# Also, we are blocking php files that are in the pages folder from being accessed directly 
RewriteCond %{REQUEST_FILENAME} !-f [OR] 
RewriteCond %{REQUEST_FILENAME} /pages/(.*)\.php$ 
RewriteRule ^(.+)$ /mywebsite/index.php/$1 [L] 
+0

你能告訴我們你的htaccess文件嗎? – Shomz 2014-10-16 15:28:47

+0

在Chrome中打開此工具,打開Developer Tools並轉到網絡選項卡。觀看提交表單時的操作。它顯示重定向嗎?如果它正在重定向,我會查看.htaccess文件。 – slapyo 2014-10-16 15:30:46

回答

1

看起來像是(最有可能的.htaccess)正在改寫你的URL。也許它的目的是爲了讓例如url /home實際上轉到/home.php。在這種情況下,就需要相應地修改表單操作:

action="contact_form" 

UPDATE

這絕對htaccess的。最後三行。我不明白這是如何適合你在問題中展示的。因此,如果您絕對不使用這種重定向,請隨意發表評論或刪除這三行(然後不需要更改操作url)。否則,我最初的建議應該起作用。

+0

我修改它爲action =「contact_form」並修復了錯誤。現在,當我進入我的數據庫時,我可以在表格中看到存儲的數據。感謝您的幫助,並感謝您向我解釋.htaccess中出了什麼問題,因爲我正在調查它,並且無法理解錯誤信息 – Arwen 2014-10-16 15:48:38

+0

不客氣,我很高興能夠提供幫助。請注意這些網址。 – Shomz 2014-10-16 15:51:53