2017-03-22 9 views
0

私が抱えている問題:私は自分のデータベースにデータを送るべき「連絡先」フォームを作成しました。 localhostからページにアクセスした後、すべて正常に動作し、エラーは表示されませんでしたが、データベース(localhost/phpmyadmin/..)は情報で更新されません。mysqlはhtml/phpからの情報を更新しません

これは私のPHPです:

if(isset($_POST['insert'])) 
{ 
    $hostname = 'localhost'; 
    $username = 'root'; 
    $password = ''; 
    $databaseName = 'nig'; 

$Nume = $_POST['nume']; 
$Email = $_POST['email']; 
$Telefon = $_POST['telefon']; 
$Subiect = $_POST['subiect']; 
$Mesaj = $_POST['mesaj']; 

$connect = mysqli_connect($hostname, $username, $password, $databaseName); 
$query = "INSERT INTO `amar` (`nume`, `email`, `telefon`, `subiect`, `mesaj`) VALUES ('$Nume','$Email','$Telefon','$Subiect','$Mesaj')"; 

$result = mysqli_query($connect,$query); 

if($result) 
{ 
    echo 'Mesaj trimis.'; 
}else{ 
    echo 'Mesaj netrimis'; 
} 

mysqli_free_result($result); 
mysqli_close($connect); 

これが私のHTMLです:

<form action="insert2.php" action="post"> 
    <form role="form"> 
     <div class="form-group"> 
     <label for="nume">Nume complet</label> 
     <input type="text" class="form-control" name="nume"> 
     </div> 
     <div class="form-group"> 
     <label for="email">Adresa e-mail</label> 
     <input type="text" class="form-control" name="email"> 
     </div> 
     <div class="form-group"> 
     <label for="telefon">Telefon</label> 
     <input type="text" class="form-control" name="telefon"> 
     </div> 
     <div class="form-group"> 
     <label for="subiect">Subiect</label> 
     <input type="text" class="form-control" name="subiect"> 
     </div> 
     <div class="form-group"> 
     <label for="mesaj">Mesaj</label> 
     <textarea class="form-control" name="mesaj" rows="8"></textarea> 
     </div> 
     <input type="submit" name="insert" class="btn btn-theme" value="insert"></button> 
    </form> 

そして、結果は私のMySQLのデータでなければなりません。データベースはデータを取得していませんが、何が間違っていますか?

+1

??? 2番目のフォームタグ??? '

'それを削除します – RiggsFolly

+0

クエリをパラメータ化します。これはSQLインジェクションに開放されています。 – chris85

答えて

0

2つのフォームタグがあり、一方が他方にあります。

変更するには、この....これに

<form action="insert2.php" action="post"> 
<form role="form"> 

...

<form action="insert2.php" action="post"> 

また、あなたのPHPコードはSQLインジェクションに開いているので、予めご了承ください。ユーザーの入力を信頼しないでください。クエリで使用する前に、ユーザーが入力したデータを常に検証および/またはエスケープします。または、さらに良い方法は、prepared statementsまたはストアドプロシージャを使用することです。

更新1:これは動作していない聞いて申し訳ありません

OK、。 mysqli error debuggingを追加して、何が起きているかを確認してください。この...これに

$result = mysqli_query($connect,$query); 

...

if (mysqli_connect_errno()) { 
    printf("Connect failed: %s\n", mysqli_connect_error()); 
    exit(); 
} 

$result = mysqli_query($connect,$query) 

if (!$result)) { 
    printf("Errormessage: %s\n", mysqli_error($connect)); 
} 

次に、コードを実行し、あなたが私たちを助けるかもしれないすべてのエラーを取得するかどうかを確認

変更。

アップデート2:

OK、デバッグの別の部分を試してみてください。この後

...

$query = "INSERT INTO `amar` (`nume`, `email`, `telefon`, `subiect`, `mesaj`) VALUES ('$Nume','$Email','$Telefon','$Subiect','$Mesaj')"; 

...これを追加

die($query); 

保存してコードを実行します。

SQLクエリが与えられます。そのSQLクエリをコピー&ペーストし、データベース管理ツール(phpMyAdminなど)で実行します。手動でクエリを実行するとき、またはエラーが発生したときにレコードが追加されるかどうかを確認します。

結果をお知らせください。

+0

申し訳ありませんが、私は初心者です。露出については、私はそれを防ぐために書かれた、いくつかのコードを貼り付けている。しかし、これは私の#10データベースにデータを入れて、あなたが言った方法を編集しましたが、それはまだ動作していません。 – danut

+0

私は、(多くの試行の後、エラーなしで)コードを入れましたが、エラーは表示されません。私のデータベースは(ID-ai。、ヌメ、Eメール、電話、Subiect、Mesaj)持っています。そしてdbはnigという名前のテーブルamarという名前です。これらは知られている、コードの権利ですか?構文は正しいものとして表示され、挿入した後の結果ページは、異常がない正しいページです。 dbだけが情報を更新していません – danut

+0

@ダウトOk、私はさらなる指示で答えを編集しました。 –

関連する問題