2016-04-30 14 views
0

よろしくお願いします。私はPHPや他のサーバーのサイドコードで新しいです。htmlフォームを使用してデータベースにデータを挿入しています。

サーバーとデータベースに正常に接続できました。私は値を持つデータを挿入するためにデータコードを挿入することができます。しかし、コードに値を入力すると、値がテーブルに送られます。 HTMLフォームを使用してテキストエリアに入力したカスタムデータをデータベーステーブルに表示するにはどうすればよいですか?例えば

私は(「JON」、「DOE」)の値を使用する場合、

ではなく、私は、テキストエリアに入力したテキストのデータベースにこれらの値を送信します。ウェブフォームに記入すると、私の実際の名前を入力すると、これを修正するにはどうすればよいですか?

基本的には、Webフォームを使用してデータベースにデータを操作する方法を尋ねています。私はあなたがは初日から書類を作成しPDO(または少なくともmysqliの)を使用することが推奨され

+0

してください、あなたが試した、何のエラー、あなたが取得しているかを示します。 – gofr1

+0

http://php.net/manual/en/tutorial.forms.phpを聞いてからデータベースhttps://phpdelusions.net/pdo – david

+0

へようこそ。Stackoverflow(SO)へようこそ! FYI:SOは、一般的な質問をする場ではなく、長い回答が必要な場合やディスカッションが必要な場ではありません。開発者サイトからマニュアルを読み、経験を積んで、特別な解決策が見つからないか、バグが見つかった時点で具体的な質問をする必要があります。これまでのところあなたのコードを提供し、それが何を意図しているのか、実際に何が起こっているのか、問題を解決しようとしているのかを説明する必要があります。 –

答えて

0

とても困惑しています。この方法では、SQL文に比較的安全にデータを挿入できます。 official manualをお読みください。 PDOはとなり、デフォルトでの準備文がエミュレートされます。セキュリティホールが発生する可能性があります。したがって、エミュレートされたプリペアドステートメントの切り替えを要求する必要があります。

$options  = [PDO::ATTR_EMULATE_PREPARES => false]; 
$pdoConnection = new PDO($dsn, $user, $password, $options); 

あなたは、その後のように準備されたSQL文を作成することができます: "?" 限り、ドライバが本当のプリペアドステートメントをサポートして

SELECT `id`, `value` FROM `myTable` WHERE `value` = ?; 

を、直接代用されません、データは別途明細書の後に送信されます。これにより、エンコード攻撃によるSQLインジェクションが回避されます。

具体的な質問がある場合は、ドキュメントを読んで物事を試してみてください。

0

入力を別のページに送信するフォームを1つのページに作成できます。たとえば:

のindex.php:

<!DOCTYPE html> 
<html> 
    <head></head> 
    <body> 
    <form method="POST" action="action.php"> 
     <input type="text" name="message"> 
     <input type="submit" value="Submit"> 
    </form> 
    </body> 
</html> 

はあなたのPHP/MySQLのコードは、その後のindex.phpと同じディレクトリに配置されることになるページと呼ばれるaction.phpに存在することになります。

action.php:

<?php 
$message = $_POST['message']; 
/*now you can use the $message variable in your MySQL code to insert 
it into the database*/ 
?> 

プリペアドステートメントを使用すると、(SQLインジェクションなどの)ハッカーの攻撃を防ぐために、MySQLのコードで自分のパラメータをバインドすることを忘れないでください。

それがあなたのために働いた場合は教えてください!

0

次の入力定義することができ、HTMLのフォームの作成:フォームの提出後に、この特定の入力のコンテンツにアクセスするには

<input type="text" name="my_input"> 

を。あなたのフォームが$_GET['my_input']または$_POST['my_input']を使用してフォーム入力に入力された値を取得する方法に応じて使用してください。

は、この例でarroundのプレイしてみてください。

<form action="" method="get"> 
    <input type="text" name="field" value="<?php print $_GET['field']; ?>"> 
    <input type="submit" name="s" value="Go!"> 
</form> 
<?php 

if (isset($_GET['s'])) { 
    print "value of the text field: ".$_GET['field']; 
} 
関連する問題