【问题标题】:Transfer Form Data from 1 page to many other pages in PHP MYSQL在 PHP MYSQL 中将表单数据从 1 个页面传输到许多其他页面
【发布时间】:2016-01-09 03:52:20
【问题描述】:

我有一个问题,我想将表单数据从“home.php”传输到“dashboard.php”,但在这里我检查了dashboard.php 上的会话以进行登录会话,如下所示:-

    <?php  
session_start();
?>
<?php
if(!$_SESSION["UserName"])
{
    //Do not show protected data, redirect to login...
    header('Location: login.php');  
}
?>

当用户从“home.php”提交表单数据时,如果未生成登录会话,他将被重定向到登录页面进行登录。 在主页上,我使用 POST 方法形成如下:-

 <form class="form ajax-contact-form" method="POST" action="dashboard.php">
                            <div class="alert alert-success hidden" id="contact-success">
                                <span class="glyphicon glyphicon-ok "></span> &nbsp;
                                <strong>Success!</strong> Thank you for your message.
                            </div>
                            <div class="alert alert-danger hidden" id="contact-error">
                                <span class="glyphicon glyphicon-remove "></span> &nbsp;
                                <strong>Error!</strong> Oops, something went wrong.
                            </div>
                            <div class="row col-p10">
                                <div class="col-sm-6">
                                    <label class="mb10">
                                        <input type="text" name="name_" id="name_" required class="form-control" placeholder=" Full Name * ">


                                    </label>
                                </div>
                                <div class="col-sm-6">
                                    <label class="mb10">
                                        <input type="text" name="subject_" id="subject_" required class="form-control" placeholder=" Subject *">
                                    </label>
                                </div>
                            </div>
                            <div class="row col-p10">
                                <div class="col-sm-6">
                                    <label class="mb10">
                                        <input type="text" name="phone_" id="phone_" class="form-control" placeholder=" Phone">
                                    </label>
                                </div>
                                <div class="col-sm-6">
                                    <label class="mb10">
                                        <input type="email" name="email_" id="email_" required class="form-control" placeholder=" Email Address *">
                                    </label>
                                </div>
                            </div>
                            <label>
                                <textarea name="message_" id="message_" cols="30" rows="10" required class="form-control" placeholder=" Message *"></textarea>
                            </label>
                            <div class="mb40"></div>
                            <div class="clearfix">
                            <!-- Enter your google site key here for captcha -->
                               <div class="pull-right xs-pull-left xs-box">



                                </div>  
                                <div class="pull-left">
                                    <button type="submit" class="btn btn-icon btn-e" value="submit" name="submit"><i class="icon icon_mail_alt"></i> Sumbit</button>

                                    <?php 
                                             if (isset($_POST['submit'])) { 
                                             $_SESSION['name_'] = $_POST['name_'];
                                             $_SESSION['subject_'] = $_POST['subject_'];
                                             } 
                                    ?> 

                                </div>
                            </div>
                        </form>

登录页面上的代码:-

  <?php  
include("connection.php");
session_start();//session starts here  
?>  

<?php
if(isset($_SESSION["UserName"]))
{
    //Do not show protected data, redirect to login...

    header('Location: dashboard.php');
}
?>

<?php   

                                    if(isset($_POST['login']))  
                                    {  
                                        $username=$_POST['Username'];  
                                        $user_pass=$_POST['password'];  
                                        $encrypt_pass = md5($user_pass);


                                        $check_user="select * from tbl_logindetails WHERE UserName='".$username."' AND Password='".$encrypt_pass."'";


                                        $run=mysqli_query($connection,$check_user); 

                                        if(mysqli_num_rows($run))  
                                        {  
                                            //echo "<script>window.open('www.google.com','_self')</script>"; 
                                            header("Location: dashboard.php");                                  

                                            $_SESSION['UserName']= $username; //here session is used and value of $user_email store in $_SESSION.  


                                        }  
                                        else  
                                        {  

                                          echo "<script>alert( 'Error in Registering Useer, Please try again later' )</script>";  
                                        }  
                                    }  
                                    ?> 

将“home.php”的数据显示到“dashboard.php”的代码

                   <?php echo $_POST["name_"]; ?>
                    </br> </br>
                    <?php echo $_POST["subject_"]; ?> 
                    </br> </br>
                    <?php echo $_POST["message_"]; ?> 
                    </br> </br>

登录后,用户可以访问dashboard.php,但我的问题是,当用户登录后,我从“home.php”获取的输入数据显示错误,如下图链接:-

[1]: http://i.stack.imgur.com/G5Udj.png

在完成上述表单数据处理后出现错误 --> 如果没有会话则登录 --> 仪表板

注意:未定义索引:C:\xampp\htdocs\youngants\dashboard.php 第 401 行中的 name_

注意:未定义索引:C:\xampp\htdocs\youngants\dashboard.php 第 403 行中的 subject_

注意:未定义索引:C:\xampp\htdocs\youngants\dashboard.php 第 405 行中的 message_

注意:未定义索引:C:\xampp\htdocs\youngants\dashboard.php 第 408 行中的名称

伙计们,我需要你的帮助,我如何通过会话变量将数据从“home.php”传输到“dashboard.php”,在表单提交后用户被重定向到登录然后返回到仪表板后,该变量甚至可以保持填充状态登录后的.php。

需要更多信息,请评论我会提供。

【问题讨论】:

  • 请在此处发布错误。有些人无法访问图片托管网址。
  • @devlincarnate 我已经发布了问题中的错误,请查看。

标签: php mysql forms session post


【解决方案1】:

首先;在第一个代码中你使用 $_SESSION 但你没有调用 session_start();您必须在使用 $_SESSION 的每个文件的开头调用它。

您得到的不是错误而是警告。这是因为 POST 变量不像会话变量。发布后(使用 html 表单),它们将仅停留一页。如果您想长时间使用它们,请将它们放在会话中或作为 cookie。

在您的登录代码中,您使用 header() 函数来重定向用户,然后将 $_SESSION['Username'] 分配给某些东西,但这可能不会被执行。 (因为你重定向它。)我建议你放一个出口;在重定向后立即调用以使用下面的代码将不会被执行。

【讨论】:

  • 我有你提到的 sessionstart(),但不工作,我也通过将 vaue 放入 cookie 变量中尝试了 cookie,但不起作用。第三,我从登录使用重定向标头()因为如果用户已经登录,则无需再次登录,因此他直接进入仪表板以从 home.php 提交下一个表单
  • 阅读我告诉你的关于 $_POST 的内容。那是你的主要问题。您误解了它们的用法。 $_POST 数据不会永远存在。
  • 是的,兄弟,我明白你想说什么,这就是我所说的,我尝试过使用 cookie 代替帖子,但也没有用。
  • 发布带有 cookie 的代码,人们会修复它。我可以向您保证,帖子不能在页面之间包含变量。
猜你喜欢
  • 1970-01-01
  • 2014-01-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-05
  • 1970-01-01
  • 2017-05-08
  • 2014-05-12
相关资源
最近更新 更多