着陆页提交按钮重定向到MyBB注册页面,其中包含自动填充的字段?

时间:2016-09-12 14:23:33

标签: javascript php html forms

我知道标题并不是非常具体,并不是真的知道如何更好地说出来。 我有一个登陆页面,我有两个输入表单,一个用于用户名,一个用于电子邮件,然后是底部的提交按钮。我想知道如何做到这一点,以便在用户输入用户名和电子邮件并点击提交后,它会将它们重定向到我的论坛注册页面,并自动填充论坛上的用户名和电子邮件字段以及他们放置的内容在目标网页上的表单中,如果这是可能的话。我希望能够清楚地解释这一点。

我正在使用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 个答案:

答案 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>

答案 1 :(得分:0)

我会将此信息存储在会话中,因为您已经需要使用会话进行登录 诀窍是每个页面印象与所有其他页面印象分开,这意味着您希望从一个页面视图到另一个页面视图的所有内容都必须存储在永久存储中。像会话,cookie或类似的。创建此输入链的心智模型 - &gt; 进程 - &gt; 输出,用于每个页面视图。将所有PHP代码与HTML分开的地方,从长远来看,这将使您的工作更轻松。请记住,在将HTML发送到客户端之前,在服务器上处理所有的PHP代码;在这方面,HTML&#34;中没有&#34; 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