2016-09-12 23 views
-3

我知道标题不是很具体,并不知道如何更好地表达它。 我有一个登录页面,其中有两个输入表单,一个用于用户名,另一个用于电子邮件,然后是底部的提交按钮。我想知道我该如何做到这一点,以便在用户输入他们的用户名和电子邮件后,他们点击提交,它会将它们重定向到我的论坛注册页面,并自动填充论坛上的用户名和电子邮件字段在着陆页上的表格中,如果这是可能的话。我希望能够解释清楚。登陆页面提交按钮重定向到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

我将这些信息存储在会话,因为您已经需要使用会话进行登录。
诀窍是每个页面印象都与其他所有页面分开,这意味着您需要从一个页面视图到另一个页面视图的所有内容都存储在持久性存储中。像会话,cookie或类似的。创建该链条的心理模型输入 - >处理 - >输出,针对每个页面视图。从HTML中分离出所有的PHP代码,从长远来看会让你更容易。请记住,在将HTML发送到客户端之前,将在服务器上处理PHP代码的所有全部;在这方面,没有“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

_“TheThe发布的@TheCodesee代码不安全”_是否请求安全代码? –

+0

我不想在这里开始对话/讨论,但是......如果您发布不安全的代码以供其他人学习,那么您将使用不安全的代码使问题长期存在。永远不要认为OP知道什么是安全和不安全的代码。 – ChristianF