【问题标题】:echo out message after redirect?重定向后回显消息?
【发布时间】:2012-12-12 11:32:57
【问题描述】:

我在用户个人资料上有一个按钮,允许其他用户将用户添加到他们的收藏夹中。 单击此按钮后,它们将链接到 sql 进程文件 favorite.php。

一旦 sql 脚本运行,它会将用户链接回原来的个人资料页面,即 profile.php。

现在我要做的是找出在 sql 完成后如何在 profile.php 页面上回显一条消息。我已经尝试了以下但没有任何反应。

有人可以告诉我我需要做什么才能使其正常工作吗?谢谢

favorite.php:

<?php

require_once('includes/session.php');
require_once('includes/functions.php');
require('includes/_config/connection.php');

session_start();

    confirm_logged_in();

    if (isset ($_GET['to'])) {
    $user_to_id = $_GET['to'];


}


if (!isset($_GET['to']))
    exit('No user specified.');

$user_id = $_GET['to'];

$result = mysql_query("INSERT INTO ptb_favorites (user_id, favorite_id) VALUES (".$_SESSION['user_id'].", ".$user_to_id.")") 
or die(mysql_error()); 

header("Location: profile.php?id=" . $user_to_id['user_id'] . "added=1");


?> 

profile.php:

<?
if (isset($_GET['added']) && $_GET['added'] == 1) {
            $message = "<div class=\"infobox\">This user was successfully added to your favorites.</div>"; ?>

            <? } ?>

【问题讨论】:

  • 我可以稍后添加我的安全性,当代码实际工作时,如果代码不起作用,安全性就不好了。

标签: php redirect echo


【解决方案1】:

您的重定向 URL 将如下所示:

 profile.php?id=123456added=1
 #                   ^

请注意参数中缺少的&amp;。调整您的 header() 调用并将其包含在 "added=1" 连接之前。

 header("Location: profile.php?id=" . $user_to_id['user_id'] . "&added=1");
 #                                                              ^ 

在相关说明中,如果不是因为isset,您会更早发现:

 if (isset($_GET['added']) && $_GET['added'] == 1) {

把它放在一边,因为这是一个必需的参数,而你想要在这种情况下得到一个注释。而只是在您的生产服务器上打开通知/警告。

【讨论】:

  • 对不起,我不明白,你能给我举个例子吗?
  • 好吧,我以为这就是你的意思。我这样做了,但我仍然没有在页面上得到回显的消息。
  • 好吧,上下文不够。 print_r($_REQUEST) 说什么? $message 什么时候打印出来?
  • 它说:数组([id] => 5 [PTBheadlogo] => 4 [PHPSESSID] => b43eda2a3dd44bec91acaed42cec7845)
猜你喜欢
  • 1970-01-01
  • 2023-03-29
  • 2017-10-29
  • 1970-01-01
  • 2018-07-24
  • 1970-01-01
  • 1970-01-01
  • 2016-06-29
相关资源
最近更新 更多