2016-12-23 4 views
-2

私の目標は、人々が投稿システムで一般公開することができる場所を用意することです。私は現在、人々がタイトルと情報を書き留めることができるHTMLフォームを持っています。私のサイトに「投稿」システムを作る方法は?

フォームを送信すると、HTMLフォームの下にビジュアルポストとしてポップアップ表示されます。私は実際に何かを学びたいと思っているので、ここでは全体的なスプーン給餌を望んでいませんが、正しい方向へのぶつかりはすばらしいでしょう。ありがとう!

+0

詳細をお知らせください。たとえば、REST API、SOAPなどを使用しますか?エンドポイントを定義する必要があります。 –

+0

他のコードに依存します。あなたが他のjavascriptを全く持っておらず、PHPからの投稿への応答だけに頼っているなら、phpがその投稿を含む正しいhtmlを返すようにしなければなりません。すぐに投稿を表示し、データベースに保存するためにphpを使用する場合は、javascriptを使用して送信を傍受します(または送信ボタンを使用しないでください)。次に、フォームのテキストを使用してHTMLを作成して挿入します。その後、PHPに直接提出してください。 – Shilly

+0

「ポストシステム」とは何ですか?フォーラム、wiki、ブログ、チャット、.... –

答えて

1

あなたはmysqlタグを追加していないので、基本的なことを知りたいと思っています。この答えはちょうどそれの非常に基本を必要とするので、あなたがこれを構築するようにすることができます。最初のステップは、commentsというデータベーステーブルに送信されたフォームのデータを入力することです。この表のpost_idの欄を忘れないようにしてください。後でその投稿に固有のコメントを表示することができます。

フォームに隠れた入力を追加することでこれを行うことができます。post_idがその投稿のアドレスにあると仮定しているので、GETメソッドで取得します。

<form role="form" action="action.php" method="POST"> 
    <input name="commentorname" type="text" required> 
    <!--and some other inputs--> 
    <input type="hidden" name="post_id" value="<?php echo $_GET['id']; ?>"/> 
</form> 

そして、その後、最後のステップは、抽出することであるあなたが$_POSTによってデータを取得し、データベース

$query = "INSERT INTO comments(post_id,username,comment) VALUES ('$post_id','$commentorname','$comment')"; 
mysqli_query($con,$query); 

にこれを入力しaction.phpに続いconnection.php

<?php 
    $con= mysqli_connect("localhost","root","","database_name"); 
?> 

を使用して接続を確立します投稿ページのコメント:

$query = "SELECT * FROM comments WHERE post_id='{$id}'"; 
$result = mysqli_query($con,$query); 
$row = mysqli_fetch_array($result); 

ここで$idは、post_idです。 $rowのデータをhtmlに埋め込みます。

コメントの中でfredで提案されています:それはSQLインジェクションにオープンなので、 real_escape_string()では不十分です。彼らはまだ注射する傾向があります。これらのphp.net/manual/en/mysqli.quickstart.prepared-statements.phpphp.net/manual/en/pdo.prepared-statements.phpはずっと安全です。

+0

良い答えですが、もしOPがこれで生きていて、その立場に立っているなら、彼らは間違いなく準備された声明を必要とします。あなたがここに書いたものは、SQLインジェクションに開放されています。 'real_escape_string()'で十分ではありません。それはまだ注射する傾向があります。準備されたステートメントが最適です。 –

+0

ありがとうございます。$ name = $ _POST ['commentorname']; $ name = mysqli_real_escape_string($ con、$ commentorname); $ name = strip_tags($ name); ' – ab29007

+0

あなたは大歓迎です。それだけでは不十分です。これらのhttp://php.net/manual/en/mysqli.quickstart.prepared-statements.php --- http://php.net/manual/en/pdo.prepared-statements.phpははるかに安全です。 –

関連する問題