2017-01-31 12 views
2

でフィールドを形成するために、入力値にgetメソッドを使うのですか私は私の形で持っている私のフィールドの次のコードスニペットを持っている:はどのように私はPHP

 <input id="username" type="text" placeholder="E-mail Address" value="" name="username"></input> 

これは私が私の入力フィールドに持っているものです。 URLを使ってフィールドに入力値を取得する方法を教えてくれる人はいますか?例えばhttps://mysite?username=kenと入力欄に「ken」と表示されますか?あなたのHTMLで

答えて

1

、次のように入力フィールドを追加します。

<input type="text" name="username" value="<?php echo htmlspecialchars($_GET['username']); ?>" /> 

基本的には、テキストフィールドのvalue属性をに設定する必要があります右この上

<?php echo $_GET['username']; ?> 

コードされますテキストフィールドに入力するかどうかに関係なく、PHPでget変数をどのように出力するかを指定します。変数を取得アクセスするに は、常に使用:

$_GET['variable_name']; 

次にあなたが変数に割り当てるか、関数のパラメータとして渡すことができます。

**ただし、ユーザー名やパスワードなどの機密情報をGET変数に渡すことは強く推奨しません。 **

まず、ユーザーはURLを変更して変数を変更する可能性があります。また、誤ってURLを他のユーザーと共有すると、他のユーザーが自分のアカウントにアクセスできる可能性があります。ランダムなIDに設定されたCookieを作成し、MySQLデータベースにそのIDをユーザ名と関連付けて、ユーザが誤って自分のアカウントを共有したり、ユーザ名を変更することができないことを知っておくことをおすすめしますURL。

+0

@jakelouis技術的には間違いありませんが、これは絶対に恐ろしいことです。これにより、訪問者はXSS攻撃や他のクライアント側の注入(URLを訪問するだけで悪意のあるスクリプトを実行する)を受けることができます。さらに、パスワードとともにこれを実行している場合は、クエリ文字列(取得パラメータ)がサーバ上の要求と共にログされるため、プレーンテキストのユーザ名/パスワードをサーバアクセスログに記録し、ハッシングパスワード。 –

+0

@JonathanKuhn私は完全に理解しているので、mysqlデータベースから生成されたID番号を使用していると思います。パスワードを使用していないと思うので、電子メールと検証のためのコードを生成しています:) –

+0

@JonathanKuhn htmlspecialchars関数を含めるように答えを更新しました。また、あなたがこのコメントを残す前に、私はすでにGETパラメータを悪いアイデアとして使用するようにアドバイスしました。私は彼がそれを変えてくれることを願っていますが、それは完全に彼のものです。私は彼に警告するために最善を尽くしました。 –

0

あなたはこのようにすることができます.GET投稿からken変数をキャッチできるPHPフォーム入力でissetを作成してください。method="get"をフォームタグ内に忘れずに、同じページに投稿する予定がある場合は...これが役に立てば幸いフォームタグ内action="<?php echo $_SERVER['PHP_SELF']; ?>"を使用し、ここにあなたのコードが..^_^

<form id="form" name="form" method="get" action="<?php echo $_SERVER['PHP_SELF']; ?>"> 


          <fieldset> 


           <p>Input</p> 
           <div> 
            <input type="text" name="nameoffield" id="nameoffield" value="<?php if(isset($_GET['ken'])){echo $_GET['ken'];} ?>"> <br /> 


           </div> 
          </fieldset> 
          <div> 
           <button type="submit" value="Submit" name="submit"> 
            Submit 
           </button> 
          </div> 
          </form> 
0

<input>タグやフォームの他のフィールドが<form>タグ内でなければなりません。上記のコードで

<form action = "https://mysite" method = "get"> 
<input id = "username" type = "text" placeholder = "E-mail Address" name = "username" value = "<?php echo $_GET['username']; ?>" /> 
</form> 

、formタグは、提出の方法は、「GET」と提出にとられるアクションは、フォームデータが提出され、処理されるとURLであることを指定します。

ここで、formがフォームを送信するURLと同じURLにあると仮定すると、同じページ(またはURL)にGETという値が表示されるため、入力テキストフィールドにはGETメソッドを使用してください。

すべてのGETキーと値のペアは、配列のインデックスとして使用して、指定されたキーの値にアクセスできる連想配列$ _GETに格納されます。

この場合、キーはusernameであるため、のユーザ名の値を取得するには、$_GET['username']を使用しました。

+0

ありがとう、本当に助けてくれた! –