我有一个问题,我想从" 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');
}
?>
此处用户提交来自&#34; home.php&#34;的表单数据如果没有生成登录会话,他会被重定向到登录页面进行登录。 在主页上,我使用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>
<strong>Success!</strong> Thank you for your message.
</div>
<div class="alert alert-danger hidden" id="contact-error">
<span class="glyphicon glyphicon-remove "></span>
<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>";
}
}
?>
显示&#34; home.php&#34;的数据的代码到&#34; dashboard.php&#34;
<?php echo $_POST["name_"]; ?>
</br> </br>
<?php echo $_POST["subject_"]; ?>
</br> </br>
<?php echo $_POST["message_"]; ?>
</br> </br>
登录后,用户可以访问dashboard.php,但我的问题是用户在登录后从&#34; home.php&#34;中获取的输入数据。显示如下附加图像链接的错误: -
[1]: http://i.stack.imgur.com/G5Udj.png
在执行上述表单数据处理后我遇到错误 - &gt;如果没有会话则登录 - &gt;仪表板
注意:未定义的索引:第401行的C:\ xampp \ htdocs \ youngants \ dashboard.php中的name_
注意:未定义的索引:第403行的C:\ xampp \ htdocs \ youngants \ dashboard.php中的subject_
注意:第405行的C:\ xampp \ htdocs \ youngants \ dashboard.php中的未定义索引:message_
注意:未定义的索引:第408行的C:\ xampp \ htdocs \ youngants \ dashboard.php中的名称
伙计我需要你的帮助,我怎样才能携带来自&#34; home.php&#34;到&#34; dashboard.php&#34;在会话变量之后,甚至可以在用户在表单提交后重定向到登录后保持填充状态,然后在登录后返回到dashboard.php。
需要更多信息,请发表评论我会提供。
答案 0 :(得分:0)
首先;在第一个代码中你使用$ _SESSION但你没有调用session_start();你必须在你使用$ _SESSION的每个文件的开头调用它。
你得到的东西不是错误而是警告。这是因为POST变量与会话变量不同。发布后,他们将在那里停留一页(使用html表单)。如果您想长时间使用它们,请将它们放在会话中或作为cookie。
在您的登录代码中,您使用header()函数重定向用户,然后将$ _SESSION [&#39;用户名&#39;]分配给某些内容,但这可能无法执行。 (因为你重定向它。)我建议你退出;在重定向之后立即调用以使用下面的代码将不会被执行。