0

我正在使用会话来保存用户在表单中输入的内容,并且他们输入的内容将显示在其他页面上。

它工作得很好,但是在所有服务器上传之后,我的代码已经完全对我做了一个,我迷路了。

有人能看看他们是否能发现错误吗?我需要新鲜的眼睛。

HTML。

    <div id="form"><!--Form Start-->

<form action="home.php" method="post">

    <p>Enter Name <input type="text" id="full_name" name="fullName"    class="name_input"/>

<input type="submit" name="submit"  value="Submit" />

</p>

    </form>

    </div><!--Form end-->

php。

    <?php
session_start(); // declaring the variable

if(isset($_POST['fullName'])){ //setting the variable 

    if(empty($_POST['fullName'])){ //if empty dont to nothing but my wep page will reload

    }else{ //if they have do this

        $_SESSION['fullName'] = $_POST['fullName']; //get the session for the name (From the from)


        header("Location: home.php"); //then will direct the user to the home page (will also display name on each page)
    }}
    ?>

其他页面上的会话

                  <div id="echo"> <!-- div ECHO start -->           
                                  <?php


                   echo $_SESSION['fullName']
             ?>                  
            </div>  <!--div ECHO end -->    
4

5 回答 5

3
$_SESSION['fullName'] = $_POST['fullName'];
session_register(fullName);

用这段代码替换试试

于 2013-05-03T04:51:24.477 回答
0

您还需要在其他页面上启动会话并停止脚本设置该会话。在标题位置之后,您需要在exit此处使用。

 <?php session_start();?>
  <div id="echo"> <!-- div ECHO start -->           
  <?php
     echo $_SESSION['fullName'];
   ?>      

您需要在标题位置后使用 exit :-

 header('location: home.php');
 exit;         
于 2013-05-03T04:42:31.870 回答
0

您需要在您重定向到应该显示数据的任何页面上添加 session_start()。

另外,(我假设您意识到)您发布的内容没有任何可以输出数据的内容,例如:

<input type="text" name="fullName" value="<?php echo $_SESSION['fullName']; ?>"/>
于 2013-05-03T04:44:07.240 回答
0

您正在将值“发布”到 home.php,这样做您无法$_SESSION['fullName'] = $_POST['fullName']在源中设置。

改变

<form action="home.php" method="post">

<form action="name_of_the_first_script.php" method="post">

$_POST['fullName']在重定向之前不存在。

以下是一切的样子(以免调用页面 index.php):

<div id="form"><!--Form Start-->
    <form action="index.php" method="post">
        <p>Enter Name <input type="text" id="full_name" name="fullName" class="name_input"/>
            <input type="submit" name="submit"  value="Submit" />
        </p>
    </form>
</div><!--Form end-->

现在,在您点击提交后,index.php 将被响应,此时$_POST请求意味着该条件

if(isset($_POST['fullName'])){

将是 true 并且可以执行 PHP 代码,设置$_SESSION变量并将您重定向到home.php您现在可以读取$_SESSION先前设置的位置index.php

希望这能让我现在更清楚!:)

于 2013-05-03T04:48:54.587 回答
0

只需将 div id 表单更改为 other,因为它具有默认值并删除空函数,因为您添加了 isset 函数。

用这个。

<div id="myform"><!--Form Start-->

<form action="home.php" method="post">

<p>Enter Name <input type="text" id="full_name" name="fullName" class="name_input"/>

<input type="submit" name="submit" value="Submit" />

</p>

</form>

</div><!--Form end-->

php。

<?php
session_start(); 

if(isset($_POST['fullName']))
{ 

    $_SESSION['fullName'] = $_POST['fullName']; //get the session for the name (From the from)

    header("Location: home.php");
    exit(); 

}
?>

其他页面上的会话。

<div id="echo"> <!-- div ECHO start -->           
<?php
 session_start();
 print_r($_SESSION);
 echo $_SESSION['fullName'];

?>                  
</div>  <!--div ECHO end --> 

可能对你有帮助。如果有任何问题,请告诉我。

于 2013-05-03T05:24:46.797 回答