2016-09-12 54 views
-3

私はタイトルが非常に具体的ではないことが本当にそれをより良い言葉にする方法を知っていなかった知っている。 私は、ユーザー名用とメール用の2つの入力フォームと、一番下の送信ボタンがあるランディングページを持っています。私はどのようにしてユーザーが自分のユーザー名と電子メールを入力して投稿した後にフォーラム登録ページにリダイレクトし、フォーラムのユーザー名と電子メールフィールドに自分が配置したものこれが可能であれば、ランディングページのフォームにそれが十分にはっきりと説明されることを願っていますリンク先ページの送信ボタンは、自動入力フィールドがあるMyBB登録ページにリダイレクトされますか?

フォーラムソフトウェアにMyBBを使用しています。フォームとボタンのマークアップはこちら

<div class="row"> 
      <div class="col-sm-8 col-sm-offset-2 col-md-6 col-md-offset-3"> 
      <form method="post" role="form"> 
       <div class="form-group"> 
       <input type="username" class="form-control" id="exampleInputUsername" placeholder="Username"> 
       <br /> 
       <input type="email" class="form-control" id="exampleInputEmail1" placeholder="Enter Email"> 
        <br /> 
        <a href="http://127.0.0.1`enter code here`/forum/member.php?action=register"> <button type="submit" class="btn btn-primary btn-lg" >Sign Up</button></a> 
       </div> 

      </form> 
      </div> 
     </div><!--End Form row--> 

私はリンク先ページのPHPについて理解しています。私が迷っているのは、MyBB登録ページに持ち越して、ランディングページに入力されたものと相関関係のあるフォームを自動入力する方法です。私はPHPを実際に経験したことはありません。私はたった今HTML/CSSをデザインの面で行ってきました。これは実際にサイトの裏側/機能を扱う初めてのことです。

登録用のMyBBファイルはmember.phpですが、ファイルがあまりにも大きいため、ここに投稿することができませんので、私はそれをGistに投稿しました。 https://gist.github.com/RPDeliverance/575fb3d1a1843d65860f5d8a1f68466b

+2

あなたはこれまでに、あなたのコードを共有することはできますか? – Roberrrt

+1

フォームアクションをフォーラム登録ページに設定し、フォームアクションにクエリパラメータとしてユーザー名と電子メールを追加します。あなたがこれを記述している方法では、単に場所を使うことができます。href、さらにはアンカーhref、リダイレクト前にバックエンドにメールとユーザー名が保存されている場合を除きます。 –

+0

誰かが私のためにコーディングしてほしいという考えはまったく真実ではありません。私は実際にこれに関する多くの情報を見つけることができませんでした。私はより多くの情報でメインポストを更新しました。 –

答えて

1

これは簡単です - それは次のように行うことができます。

page1.php:

<?php 
if(isset($_POST['submit'])) { 
    header('Location: page2.php?username='.$_POST['username'].'&email='.$_POST['email']); 
} 
?> 

<form method="post"> 
<input type="text" name="username"> 
<input type="email" name="email"> 
<input type="submit" name="submit"> 
</form> 

page2.php:私はセッションでこの情報を格納します

<form method="post"> 
<input type="text" value="<?php $_GET['username']; ?>" name="username"> 
<input type="email" value="<?php $_GET['email']; ?>" name="email"> 
<input type="submit" name="submit"> 
</form> 
0

すでにログインのためにセッションを使用する必要があるので見てください。
各ページのインプレッションは他のページのインプレッションとは別のものです。つまり、1つのページビューから別のページビューに永続ストレージに保存する必要があるすべてのものを意味します。セッション、クッキーなどと同様です。 のこのチェーンのメンタルモデルを作成して、 - >プロセス - >出力をページビューごとに作成します。すべてのPHPコードをHTMLから分離すると、長期的にはより簡単になります。 PHPコードのすべてが、HTMLがクライアントに送信される前にサーバ上で処理されることを覚えておいてください。 HTMLにはPHPがありません。

入力を検証して、少なくとも適切なユーザー名(たとえば、入力できる文字のサブセット)に似ているかどうかを確認してください。また、出力をエスケープして次のフォームに追加することを覚えておくことは非常に重要です。さもなければあなたはXSSのために広く開いています。

@TheCodeseeによって投稿されたコードは、彼がやっていないので、安全ではありません。 は、ここで私はそれを行うだろう方法の簡単な例です:

// On the page handling the submission. 
if (isset ($_POST['username'])) { 
    $_SESSION['username'] = filter_var ($_POST['username'], FILTER_SANITIZE_STRING); 
} 

// Later on, in the code generating the page for the form. 
if (!empty ($_SESSION['username'])) { 
    $Template->form_username = htmlspecialchars ($_SESSION['username']); 
} 

http://php.net/manual/en/function.filter-var.php

+0

_ "@TheCodeseeによって投稿されたコードは安全ではありません" _OPは安全なコードを要求しましたか? –

+0

私はここで会話や議論を始めたいとは思っていませんが...他人が覚えている安全でないコードを投稿すると、あなたは安全でないコードで問題を永続させています。安全で安全でないコードが何であるかをOPが知っているとは決して考えないでください。 – ChristianF

関連する問題