重定向后在页面中保留php值

时间:2014-07-07 12:41:21

标签: php

我做了this小网站将值转换为md5。但我想保存在我的数据库中输入的所有单词,以创建一种我以后可以使用的字典。当用户点击转换按钮时,页面重定向以在表格中插入数据,当它重定向回索引页面时,md5值消失,用户必须单击后退按钮才能看到它。如何在页面重定向后将文本框中的值返回?

2 个答案:

答案 0 :(得分:1)

你有几种方法可以做到这一点

  • 将原始字符串和md5哈希保存在会话变量中。它会在重定向后持续存在。

  • 不使用process.php,而是使用index.php作为表单的目标。您可以查看$ _POST超全局,看看您是第一次加载页面,还是显示以前发送的值。

  • 将传递给process.php的值放在重定向网址的查询字符串中,而不是

    标题("位置:index.php");

你做了

header("Location: index.php?string=$mystring&md5=$mymd5");

但是要小心,你需要消毒$ mystring或者你的表格将是一个简单的XSS诱饵。谢谢@machineaddict。

  • 由于您在前面生成md5哈希,因此使用js和ajax将值发送到process.php而不必离开索引。如果您了解jQuery等简单js库的方法,那么这个是最优雅的。

PD:c' mon S.O.,列出突破代码突出显示?

答案 1 :(得分:1)

这只是为了理解这样做的一种方法:

process.php文件中:

<?php

if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['mott'])) {
    $value = $_POST['mott'];
    $md5 = md5($value);

    // code to insert the value and the md5 in database. remember to escape the string

    //redirect the user
    header('Location: showmd5.php?md5=' . $md5);
    exit;
}

showmd5.php文件:

<?php

$md5 = isset($_GET['md5']) ? $_GET['md5'] : '';

// check this md5 in database and show the value