代码之家  ›  专栏  ›  技术社区  ›  Joy

将变量传递到下一页PHP

  •  0
  • Joy  · 技术社区  · 8 年前

    我正在尝试使用PHP通过会话将变量传递到下一页。下面的代码保存最后一个值。我想在用户单击“更多信息”链接时传递“名称”,在那里我将显示有关单击名称的更多信息。

    <?php while ($r = $q->fetch()):
     $city=$r['city'];
     $phone=$r['phone'];
     $name=$r['name'];
     if (session_status() == PHP_SESSION_NONE) {
       session_start();
      }
     $_SESSION['name'] = $name;
     $_SESSION['phone'] = $phone;
      $_SESSION['city'] = $city;
    
     ?>
            <tr>
           <td><?php echo (++$i); ?></td>
                <td><?php echo htmlspecialchars($name) ?></td>
                <td><?php echo htmlspecialchars($phone); ?></td>
                <td><?php echo htmlspecialchars($city); ?></td>
          <td> <a href="more_info.php" >More Info</a></td>
            </tr>
        <?php endwhile; ?> 
    
    1 回复  |  直到 8 年前
        1
  •  2
  •   Rahul    8 年前

    首先,你需要做put session_start() 脚本顶部。永远记住 $_SESSION 是超级全局变量。无需在此处传递即可访问会话变量。您只需像这样访问即可。

    echo $_SESSION['name'];
    

    注意:确保 会话\u开始() 应位于脚本的顶部。

    如果确实要将变量从一个页面传递到另一个页面。执行以下操作

    <td> <a href="more_info.php?name=<?php echo $_SESSION['name']; ?>" >More Info</a></td> 
    

    还有你的 more_info.php

    if (isset($_GET['name'])) {
        $name=$_GET['name'];
        echo $name;
    }
    

    给出的答案可以解决OP问题,但是。在while循环中使用会话不是一个好习惯。因为您试图在会话中插入名称,但名称可能不同。我建议你试试这样的东西。

    删除:

    if (session_status() == PHP_SESSION_NONE) {
       session_start();
      }
     $_SESSION['name'] = $name;
     $_SESSION['phone'] = $phone;
      $_SESSION['city'] = $city;
    

    然后像这样传递变量。

    <td> <a href="more_info.php?name=<?php echo $name; ?>" >More Info</a></td>