【问题标题】:html php passing a variable through multiple pages and inside formshtml php 通过多个页面和内部表单传递变量
【发布时间】:2015-05-28 07:19:22
【问题描述】:

第 1 页:

<label for='name'>Name:</label>
<input type='varchar' name='name' maxlength="30" required />

第 2 页:(使用页眉处理要移动到的页面)

$name = $_POST['name']
....
header('Location: page3.php?name=$name');

第 3 页:

<form id='whatever' action="page4.php" method='post'>

    <?php

    $sql = "select * from table";
    $result = mysql_query($sql);

    while($row = mysql_fetch_array($result)){
       echo '<option value="' . $row["data1"] . '">' . $row["data2"] . '</option>;
    }
    ?>
<input type="submit" name="submitform" value="submit">

正如您在此处看到的,在第 3 页中,当我提交表单时,我将 data1 值放入第 4 页。但是,无论我在哪里声明我的 $_GET 在“名称”变量上,我都无法通过到第 4 页。

第 4 页是我将数据插入数据库的位置。

【问题讨论】:

  • 为什么不使用会话。
  • &lt;input type='varchar' 这是一个有效的类型吗? html采用mysql了吗?
  • @Dagon 你已经知道答案了 ;=)
  • @Fred-ii- 是的,我一直用这种方法惹恼人们
  • 你使用了错误的引号,当你使用单引号时变量不会被扩展,你需要双引号。

标签: php html mysql http-headers


【解决方案1】:
session_start();

$_SESSION['post_name'] = $name; // after cleaning $name ofcourse, validate, filter, validate.

在下一页:

session_start();
$var = $_SESSION['post_name'];

// do your validate, filter validate then on with the rest of its usage.

请记住,如果您在会话被抓取之前将其销毁,您将丢失它。

【讨论】:

  • 所以我就把它放在第一页的顶部吧? &lt;?php session_start() ?&gt;
  • 如果你要走会话路线,那么我个人更喜欢 require_once 一个包含我所有会话相关信息的文件(基本上是我放入会话中以跨多个页面使用的任何内容。但是是的,您的 php 文件顶部的那一行将为您启动一个会话并更新它并访问它,如上所示。
  • 好吧,假设我这样做了。我的 page3 还是一个巨大的表单,如何将多个变量传递给第四页?
  • 如果第 3 页本身就是一个表单,则在第 3 页顶部开始会话。提取任何数据并对其进行清理,然后将其应用于表单。一旦将该表单“发布”到第 4 页,就可以使用 $_POST 将其收集起来。
  • 它看起来确实使表单过程复杂化,但是如果您需要单独的页面和连续的数据传递,那么您将需要更新可以收集帖子数据的每个页面上的会话,然后将所有内容放在一起,会议并张贴在最后一页。还有另一种选择,那就是根本不提交任何内容,使用 javascript 加载表单的每个部分并将其隐藏,直到准备好提交完整的表单
猜你喜欢
  • 2012-04-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-28
  • 2015-11-05
  • 2014-07-07
  • 1970-01-01
  • 2016-07-19
相关资源
最近更新 更多