2017-05-13 8 views
0

変数が機能しています。私はそれらを画面にエコーしています。しかし、db/tableには何も入力していません。それは私に何かエラーコードを教えているわけではありませんが、失敗しています。 db_connのような他の情報が必要な場合はお知らせください。私は、同様の質問に対するいくつかの回答を試してきましたが、私のために修正していません。フォームはwww.mommy-info.com/contactです。ページの2番目のフォームは、私が今作業しているものです。

マイフォームコード:

<form action="/cq.php" method="post"> 
    <fieldset> 
     <legend>Username/Name</legend> 
     <input 
       placeholder="Insert your name" 
       type="text" name="user_name" id="user_name"/> 
    </fieldset> 
    <br> 
    <fieldset> 
     <legend>Email</legend> 
     <input id="email" 
       type="email" name="email" 
       placeholder="Insert your email address"/> 
    </fieldset> 
    <br> 
    <fieldset> 
     <legend>Question</legend> 
     <textarea 
       placeholder="Insert your question here." 
       name="question" 
       rows="5" 
       cols="100"> 

     </textarea> 
    </fieldset> 
    <br> 
    <input type="submit" value="Submit" name="submit" id="submit"/> 
</form> 

CQファイル

<?php 
$ptitle = "Question Submitted";?> 
<?php require_once $_SERVER["DOCUMENT_ROOT"] . '/head.php'; ?> 
<?php require_once $_SERVER["DOCUMENT_ROOT"] . '/navigation.php'; ?> 
<?php 
$user_name = $_POST['user_name']; 
$email = $_POST['email']; 
$question = $_POST['question']; 

$query = "INSERT INTO cq (user_name, email, question) VALUES ('$user_name','$email','$question')"; 
?> 
<section class="content"> 
    <?php 

    echo ($user_name); 
    echo ($email); 
    echo ($question); 

    $result= mysqli_query($db_conn, $query); 
    if($result){ 
     echo ('Your question was successfully submitted. You should receive an email 
     response in 2-3 days'); 
    } 
    else{ 
     echo mysqli_error($db_conn) . '<br> Sorry, your question was not submitted. Please try again.'; 
    } 
    mysqli_close($db_conn); 
    ?> 
</section> 
<?php include ('footer.php');?> 
+3

をデバッグするため。準備文を使用する方法を学んでください。 –

+0

あなたは '申し訳ありませんが、あなたの質問は提出されませんでした。再度お試しください.' – chris85

+0

この正確なクエリをmysql(変数ではなくデータを使用)で直接実行しようとすると機能しますか? – kojow7

答えて

1

私は戻って私のプロジェクトで同様の問題を得ました。 cq.php で直接接続ファイルを呼び出してみて、接続変数をグローバルにします。

ここに接続ファイルを含めてください。他

<?php 
$ptitle = "Question Submitted";?> 
<?php require_once $_SERVER["DOCUMENT_ROOT"] . '/head.php'; ?> 
<?php require_once $_SERVER["DOCUMENT_ROOT"] . '/navigation.php'; ?> 
<?php 
$user_name = $_POST['user_name']; 
$email = $_POST['email']; 
$question = $_POST['question']; 

$query = "INSERT INTO cq (user_name,email,question) VALUES ('".$user_name."','".$email."','".$question."')"; 


require_once('your/path/connection_file_name.php'); 
global $db_conn; 
echo '<section class="content">'; 
$result= mysqli_query($db_conn, $query); 
    if($result){ 
     echo ('Your question was successfully submitted. You should receive an email 
     response in 2-3 days'); 
    } 
    else{ 
     echo mysqli_error($db_conn) . '<br> Sorry, your question was not submitted. Please try again.'; 
    } 
    mysqli_close($db_conn); 
    echo '</section>'; 
    ?> 
    <?php include ('footer.php');?> 

てみちょうどあなたのコードは、SQLインジェクションに対して脆弱である

<?php if($result){ 
     echo ('Your question was successfully submitted. You should receive an email 
     response in 2-3 days'); 
    } 
    else{ 
     echo 'MySql Error:'.mysqli_error($connect); 
    } ?> 
関連する問題