2016-12-08 11 views
0

タイトル、テキストブロック、学生IDを取得し、送信ボタンが押されるとデータベースに追加するフォームを作成しようとしています。PHPとSQLコードはMySQLデータベースに何も追加しません

簡略化のため、student_IDは同じにしてあり、プロジェクトの後半で変更されます。

HTMLとPHPは同じファイルにあります。

私のコードはデータベースに何も追加しません。

PHP

<?php 
    if($_POST["submit_button"]){ 

    //here is the title and text that will be added to the database by the user 
    $title=$_POST["testimonial_title"]; 
    $text=$_POST["testimonial_text"]; 

    //create the sql statement 
    $sql="INSERT INTO testimonials 
    (testimonial_title, testimonial_text, student_ID) 
    VALUES(
     '$title', 
     '$text', 
    1);"; //the student_ID is a foreign key and for simplicity I kept it at 1 

    $result = mysqli_query($con,$sql); 

    mysqli_close($con); 
    } 
?> 

HTML

<<!--Page Content-- > 
    <h1 class="page-header"> 
    Learning Journals<small>- Admin</small> 
    </h1> 

    <h3> 
    Update Learning Journals Plans 
    </h3> 

    <form name = "membership_form" 
    action = "" 
    id = "contactForm" 
    method = "post"> 

    <label>Learning Journals Title:</label><br/> 
    <input type="text" name="testimonial_title" /><br/> 
    <label>Learning Journal:</label><br/> 
    <textarea rows="10" cols="100" name="testimonial_text" 
     maxlength="999" style="resize:none"></textarea> 
    <button type="submit" name ="submit_button" class="btn btn-primary"> 
     Update 
    </button> 
    </form> 
    <hr/> 
</body> 
</html> 
+0

? – Phiter

+0

なぜ皆に同じ 'student_ID'を与えていますか?私はそれが一意のキーだと思うので、重複したキーのためにエラーが発生しています。 – Barmar

+1

エラーをチェックする必要があります: 'if(!$ result){die(mysqli_error($ con)); } ' – Barmar

答えて

0

あなたが送信しているPHPファイルをaction属性に指定する必要があります。 if文では、データを受け取っているかどうかを比較する必要があります。

if($_POST["testimonial_title"] && $text=$_POST["testimonial_text"]) 

SQLインジェクションから保護してください。それについて読む。あなたは、変数保護したら、あなたのSQL変数で

あなたはこのような何かを持っている必要があります $ sqlを= を「お客様の声 (testimonial_title、testimonial_text、STUDENT_ID) VALUES( 。INSERT INTO "」。$タイトル"。 " 、 "'。$ text。"'、 1) ";

テキストは数字ではないためです。

あなたはどのように挿入すると、どのようにSQLインジェクションを防ぐために見つけることができるが、これを読むすべてのエラーを得ていない

PHP/MySQLi: How to prevent SQL injection on INSERT (code partially working)

関連する問題