2014-10-16 5 views
0

두 개의 .php 파일이 있습니다. 첫 번째 파일은 연락처 양식을 포함하고있는 contact.php이고 다른 파일은 데이터베이스에 데이터를 보내는 SQL 및 PHP 문을 포함하는 contact_form.php입니다. 내 contact_form.php 파일과 데이터베이스 사이에 성공적인 연결이 있습니다. 내 로컬 호스트에있는 HTML 양식 내부 정보를 작성 할 때마다 그러나, 나는 다음과 같은 오류가 "제출"내 HTML 양식이 MySQL 데이터베이스에 데이터를 제출하지 않는 이유는 무엇입니까?

ERROR :보기 \ 홈 \의 contact_form.php.php 내가 가진

: 파일을 찾을 수 없습니다 두 가지 질문 :

1) 내 contact_form.php 파일이 my 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 주입의 인식이고 최대한 빨리 모든 것이 작동하는지 볼로에서 작동합니다 정확히.

# 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

+0

Chrome에서이 도구를 열고 개발자 도구를 열고 네트워크 탭으로 이동하십시오. 양식을 제출할 때 수행 할 작업을 살펴보십시오. 리디렉션이 표시됩니까? 그것은 리디렉션하는 경우 .htaccess 파일을 보겠습니다. – slapyo

답변

1

htaccess로 뭔가 (대부분의 .htaccess)처럼 보인다 URL을 다시 작성합니다. 어쩌면 예를 들어, URL /home은 실제로 /home.php으로 이동해야합니다. 이러한 경우, 그에 따라 양식 동작을 수정해야합니다

action="contact_form" 

UPDATE

그것은 확실히 htaccess로합니다. 마지막 세 줄. 나는 그 질문에 당신이 보여준 것에 어떻게 맞는지 보지 못합니다. 따라서 리디렉션 유형을 확실히 사용하지 않는 경우 자유롭게 댓글을 달거나 3 줄을 제거하십시오. 그러면 액션 URL을 변경할 필요가 없습니다. 그렇지 않으면 원래 제안한 것이 효과가 있습니다.

+0

action = "contact_form"으로 변경하여 수정하고 오류를 수정했습니다. 이제 데이터베이스에 가서 테이블에 저장된 데이터를 볼 수 있습니다. 도와 주셔서 감사 드리며 .htaccess에서 무엇이 잘못되었는지 설명해 주셔서 감사합니다. 내가 그걸 조사하고 있었고 잘못 된 것을 이해할 수 없었기 때문에 – Arwen

+0

도와 드릴 수있어서 기쁩니다. 해당 URL을주의하십시오. – Shomz

관련 문제