2016-05-16 3 views
-2

私は新しいので、私は2つ以上のリンクを投稿できないと思うので、私はpastebinにリンクを貼ります。 http://pastebin.com/2kab4LNDフォームは無作為にデータベースに値を提出していません

基本的には、自分のデータベースに値を送信するフォームを書いています。これらの値は、ニックネーム、タイトル、日付、およびコンテンツ(基本的に何かを書き込む場所です)です。 とにかく、数時間前にこれは完全に機能していました。内容値がどのような量のテキストであっても、データベースに送信されます。

最初の図は、意図したとおりに動作するデータベースを示しています。

しかし、フォームを使用して同じ値を送信しようとすると、エラーが表示されません。 2番目の画像は、単に表示されないうちにコンテンツを取得することができた大体の大きさを示しています。ニックネームやタイトルなど、他のすべての作品は、それが私が推測する限界を超えたらうまくいかないコンテンツです。

私は自分のコードを変更しなかったので、私はあなたに私のmysqlテーブルを示した後にそれを表示します。

3番目の画像は私のテーブルです。私は彼らについて何も変えなかった。 テーブルは完全に動作したときのように見えました。

私のフォームコードです。私はいくつかのものを取り除きましたので、少し読みやすくなりましたが、それは得られるほど良いものです。これは前に働いていたコードで、少し変更していないので、これが起こる原因となるエラーがあるかどうかはわかりません。さて、私はそれが何につながっているかを見せてあげます。申し訳ありませんが本当に面倒です。

<?php 

echo "<form id='submit-form' name='submit-form' action='".setDreams($conn)."' method='POST'> 
    <input type='hidden' name='dreamid' value=''> 
    <input type='hidden' name='date' value='".date('Y-m-d H:i:s')."'> 
    <div id='title'> 
    <textarea type='text' name='dreamtitle' value='title' id='title_textarea' placeholder='Write the title of your dream here. (Max 40 characters)' method='POST' rows='1' style='margin-left: 10px' style='z-index: 1'></textarea> 
    </div> 
    <div id='dream_editor'> 
    <textarea type='text' name='thedream' value='dream' id='dream_textarea' placeholder='Describe your dream here (Must be at least 250 characters)' method='POST' rows='8' style='margin-left: 10px' style='z-index: 1'></textarea> 
    </div> 
    <div id='desired_nickname'> 
    <textarea type='text' method='POST' type='nickname' name='dreamnickname' value='' id='nickname_textarea' placeholder='Write your desired nickname' rows='1' style='margin-left: 10px' style='z-index: 1'></textarea> 
    </div> 
    <button id='submitDreamButton' style='margin-bottom: 10px' name='dreamSubmit' type='submit'></button> 
    <button id='cancelButton' style='margin-bottom: 10px' href='index.php'></button> 

    </form>"; 
    ?> 

これは、フォームのオフに働く機能です。とにかく、私はすでにこれが働いていたコードだと言いました。私はそれを何度も見て、何の誤りも見つけていない。

<?php 
function setDreams($conn) { 
    if (isset($_POST['dreamSubmit'])) { 
     $uid = $_POST['dreamid']; 
     $date = $_POST['date']; 
     $dreamtitle = $_POST['dreamtitle']; 
     $thedream = $_POST['thedream']; 
     $nickname = $_POST['dreamnickname']; 

     $sql = "INSERT INTO dreams (dreamid, nickname, date, content, title) VALUES ('$uid','$nickname','$date','$thedream','$dreamtitle')"; 
     $result = $conn->query($sql); 
    } 
} 

私はそれが今働いていない理由はそれだけで働いていたと私はとても混乱している知っているので、これは私を強調しています。私はこの記事が読みあまりにもハードではなかった希望と私はあなたが問題を理解してほしい:)あなたaction属性はURL形式でなければなりません事前

+0

申し訳ありませんが、ええ、私は、コードを追加 –

+0

ない画像コードとして、ここではすべてのコードを追加します。 – jertyu

+0

ことをやる – jertyu

答えて

0

感謝。

<form id='submit-form' name='submit-form' action='process.php' method='POST'> 
    <input type='hidden' name='dreamid' value=''> 
    <input type='hidden' name='date' value='".date('Y-m-d H:i:s')."'> 
      <div id='title'> 
     <textarea type='text' name='dreamtitle' value='title' id='title_textarea' placeholder='Write the title of your dream here. (Max 40 characters)' method='POST' rows='1' style='margin-left: 10px' style='z-index: 1'></textarea> 
    </div> 
    <div id='dream_editor'> 
     <textarea type='text' name='thedream' value='dream' id='dream_textarea' placeholder='Describe your dream here (Must be at least 250 characters)' method='POST' rows='8' style='margin-left: 10px' style='z-index: 1'></textarea> 
    </div> 
    <div id='desired_nickname'> 
     <textarea type='text' method='POST' type='nickname' name='dreamnickname' value='' id='nickname_textarea' placeholder='Write your desired nickname' rows='1' style='margin-left: 10px' style='z-index: 1'></textarea> 
    </div> 
    <button id='submitDreamButton' style='margin-bottom: 10px' name='dreamSubmit' type='submit'></button> 
    <!-- Your submit button must have the value attribute otherwise, isset($_POST['dreamSubmit']) means your button doesn't have a value --> 
    <button id='submitDreamButton' style='margin-bottom: 10px' name='dreamSubmit' value="Submit" type='submit'></button> 
    <button id='cancelButton' style='margin-bottom: 10px' href='index.php'></button> 

</form> 

process.php

<?php 
if (isset($_POST['dreamSubmit'])) { 
    setDreams($conn); 
} 

function setDreams($conn) { 
    $uid = $_POST['dreamid']; 
    $date = $_POST['date']; 
    $dreamtitle = $_POST['dreamtitle']; 
    $thedream = $_POST['thedream']; 
    $nickname = $_POST['dreamnickname']; 

    $sql = "INSERT INTO dreams (dreamid, nickname, date, content, title) VALUES ('$uid','$nickname','$date','$thedream','$dreamtitle')"; 
    $result = $conn->query($sql); 
} 
+0

必須:生のユーザー入力を変数としてdbクエリに使用すると、ハッキングされます。 –

+0

私は私の記事の一番下に示した機能を含むdreams.inc.phpというファイルを持っています。私は "include 'dreams.inc.php'を使用して、それを私のフォームで呼びました。それは動作しませんか?それは数時間前に働いたからです。 – jertyu

+0

@jertyuはうまくいかない、単純に事実ではない。おそらくコードはその時点で関数にはなかっただろうか? –

関連する問題