2016-04-23 16 views
-8

私はHTMLで設計されたテキストボックスからPHPを使用してMysqlデータベースにデータを転送する必要があります。私はたくさんの努力をしましたが、仕事をしませんでした...最終的に誰かが既にそれのための作業コードを持っているなら、私に知らせてください。 「username」と「password」という2つのテキストボックスと送信ボタンがあります。 私は既にdb [dbname:userdemo、tablename:users]を作成しましたが、結果はありません。手続き的でないOOPの概念を使用してください。 どんな種類のヘルプをいただければ幸いですか?その後、投稿ボタンからデータをテキストボックスからデータベースに保存する方法PHPを使用してクリック

page1.html

<form method="POST" action="page2.php"> 
    <input type="text" name="usernameForm"> 
    <input type="password" name="passwordForm"> 
    <input type="submit" value="Submit"> 
</form> 

以下のPHPコードを取得します。あなたは既に、この部分が行っている言及しているものの

+0

これまでに試したことは、試したコードの例がありますか? –

+0

「私はたくさん試しましたが、仕事はしませんでした」..あなたは何を試しましたか? '手続き的ではないOOPの概念を使用してください。これはコード作成サービスではありません。 – Vincent

+2

* "手続き型ではないOOPの概念を使用してください。" * - これはかなりの順序です。あなたの芝生を刈る、犬を散歩する、スーパーマーケットに行く、あなたのドライクリーニングをピックアップするように、私たちがしたいと思うものは何ですか? * sigh * –

答えて

0

下のhtmlコードは、フォームがどのように見えるべきかの抜粋ですユーザーがフォームから情報を送信した後、データベースのテーブルに行を挿入します。このコードを使用するときは、テーブル名、カラムなどをフォーム上のものに置き換えてください。また、コードにアクセスするための4つの "********"変数データベース:

page2.php

//uses MySQL (PDO) 
<?php 
$usernameForm = $_POST['usernameForm']; 
$passwordForm = $_POST['passwordForm']; 

$servername = "********"; 
$username = "********"; 
$password = "********"; 
$myDB = "********"; 

try { 
    $conn = new PDO("mysql:host=$servername;dbname=$myDB", $username, $password); 
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
    echo "Connected successfully"; 

    $sql = "INSERT INTO myTable (username, password) VALUES (:usernameForm, :passwordForm)"; 
    $stmt = $conn->prepare($sql); 
    $stmt->bindParam(':usernameForm', $usernameForm); 
    $stmt->bindParam(':passwordForm', $passwordForm); 
    $stmt->execute(); 

    } 
catch(PDOException $e) 
    { 
    echo "Connection failed: " . $e->getMessage(); 
    } 

$conn = NULL; 
?> 

編集:を1つのページにすべてこのコードを持っていたいのあなたのコメントを読んだ後、それを行うための簡単な方法は次のとおりです。

この行を置換してください:

本のラインと
<form method="POST" action="page2.php"> 

:ここで何が起こっている

<form method="POST" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>"> 

は以下の通りです: PHPコードは常にサーバー上で実行されます。あなたのウェブサイトが完全にロードされると、サーバーとの接続が終了します。 <form>...</form>タグを介してサーバーに送信している情報は、サーバーとの接続を確立する必要があります。なぜなら、一般的にユーザーの2ページ(入力用とデータ受信用の2つのページ)がであるのに対して、がありますこのコードをすべて1ページに保存する簡単で一般的な方法です:<form>...</form>を送信してください!あなたは2つの選択肢があり、これを行うには

:あなたのページがpage1.php呼び出された場合

  1. を、そしてあなただけaction="page1.php"action="page2.php"を置き換えることができます。しかし、これは一般的に良いプログラミングではありません。なぜなら何らかの理由でページの名前が変更された場合、コードが壊れて2番目の(そしてより良い)オプションにつながるからです。
  2. action="page2.php"action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>"に置き換えます。これはオプション1とほぼ同じですが、actionのPHPコードでは、ページの名前が$ _SERVERのスーパーグローバルになっているので、ファイルの名前を変更するときなどにページが "破損"するのを防ぐことができます。
+0

@Webeng ...上記のスクリプトのおかげでね...それは働いて.... !!! – Tjeetu

+0

@Webeng ...上記スクリプトのおかげで...それは働いて.... !!!しかし、ここではpage1.htmlとpage2.phpの2つの異なるファイルを使用しました。私はそれを単一のPHPファイルで実行することを求めていました...私はHTMLフォームとPHPロジックを単一のファイル.....で意味します。 !!それを行う方法(ただし、$ conn = new mysqli($ servername、$ username、$ password、$ dbname);接続文字列で、 "PDO"ではなく) – Tjeetu

+0

@ user3205084こんにちは! 1つのファイルにコードを入れる方法を含めて私の答えを編集しましたが、私はPDOの部分を2つの理由で変更しませんでした。 1、これはMySQLの唯一のスタイルなので、合理的に良いコードを作成するには十分に知っています:) 2、それは一般的な機能のためにMySQLの最も推奨される形式なので2です。 PDOを他のスタイルのMySQLよりも優れています。 – Webeng