【问题标题】:send php value without using form or session?不使用表单或会话发送 php 值?
【发布时间】:2012-09-15 13:57:15
【问题描述】:

有没有办法让我在不使用 FORM 或 SESSION 方法的情况下将 $_POST 值发送到另一个页面?因为表单方法已经在页面本身内部使用,但我需要将 1 个变量发送到另一个页面进行确认。

一个简单的 php 或 javascript 会很棒!

这是价值

<input name="sig"  id="sig" type="text" value="<?php echo $_POST["sig"]; ?>" /> 

应该捕获下一页代码的代码

<?php
$pass = $_POST['password'];
$password = "service2012";  // Modify Password to suit for access, Max 10 Char.
if ( $pass != $password) {
    header("Location: https://www.login.html");
}
?>

【问题讨论】:

  • 使用 AJAX 或重新设计您的应用程序
  • 重新设计不是一个选项,因为我计划发送到其他页面的值是打开它的密码,否则用户将被发送回登录页面或卡在他所在的当前页面。
  • 这不是登录页面的目的吗?

标签: php javascript forms session


【解决方案1】:

如果您要向其他页面传递密码,那么使用GET 值是没有意义的。到目前为止,所有解决方案都是GET 值,任何人都可以修改。它通常不安全并创建一个XSS vector

我想了解您为什么要将密码传递到下一页,因为通常,您将应用程序设计为用户输入密码一次,然后创建一个 SESSION 变量。

然后,您在需要用户登录的每个页面上检查此 SESSION。您可以使用任何流行的编程语言来了解如何创建 SESSION。对于 PHP:

<?php
session_start(); 
$_SESSION['page'] = 'SomePage'; // store session data
echo "Page = ". $_SESSION['page']; //retrieve data
?>

理想情况下,您应该创建一个会话,然后传递此会话变量来代替传递 POST 数据。

如果您需要进一步澄清,请告诉我。

【讨论】:

  • 好吧,他的密码在提交页面中是硬编码的,我猜如果没有数据库交互,XSS 入侵的可能性很小。我认为他在他的这个专业阶段不太关心安全问题。但是,在应用程序中使用一些安全措施是好的。但是单独的会话仍然不安全。 +1 解决方案
  • 确实如此,我只是想我应该撒一些 XSS 魔法粉,这样他至少知道这一点:D 谢谢你的支持。
  • @telexper 我认为你不想使用 session 和 post 方法通过
【解决方案2】:

是的,通过 javascript 发送

编辑:

<script>
function sendval(){
  var d=document.getElementById("password").value;
  document.location.href='otherpage.php?password='+d;
}
</script>

你的otherpage.php

<?php 
$pass = $_GET['password']; 
$password = "service2012"; // Modify Password to suit for access, Max 10 Char. 
if ( $pass != $password) { 
    header("Location: login.html";); 
} 
?> 

这是粗略的代码,

您可以随意调用该函数。

您也可以使用 ajax 发送变量。

【讨论】:

  • 我应该如何在另一个页面上运行它?还是 $_POST['pass'] ?
  • @telexper,你可以使用 $_GET["pass"];
  • 实际上,在这个例子中是$_GET['val']。 ;)
  • @telexper,如果您更简要地解释一下您打算做什么,我们是否可以建议其他好的替代方案
  • 我已经使用了页面中的表单,应该是最后一页,然后用户会被提示到感谢页面,所以最后一个值即密码将用于解锁该页面。否则用户将被重定向到登录页面或卡在他所在的当前页面
【解决方案3】:

如果您想发送一些重要数据,例如密码,我强烈建议您使用 POST 方法,如果您不想这样做,请使用

<form action="main.php" method="GET">
$pass = $_GET['password'];
$password = "service2012";  // Modify Password to suit for access, Max 10 Char.
if ( $pass != $password) {
    header("Location: https://www.login.html");
}//this is insecure method

使用像

这样的链接
http:/website.com/main.php?data=1

//data is variable which you want to send 

在 main.php 中

$data=$_GET['data'] ;

您可以使用全局 $_GET 数组简单地获取数据

创建一个简单的链接&lt;a href="main.php?data=1"&gt;link&lt;/a&gt; 或者你可以使用onclick="main.php?data=1"

【讨论】:

  • 查看编辑后的答案并在 main.php 中使用简单的$_GET['data'] 来获取数据
  • 好吧,我猜他必须将表单字段变量传递给另一个页面,所以他不能在 href 属性中这样做。为此,他需要调用一个函数,获取表单字段值并将其发送到另一个页面。
  • 你要传递哪个值?
【解决方案4】:

您可以像这样将变量嵌入URL 编辑:

www.server.com/abc.php?variable=value;

在 abc.php 页面中你会得到值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-25
    • 2011-11-22
    • 2020-03-12
    • 1970-01-01
    • 2017-05-26
    • 1970-01-01
    • 1970-01-01
    • 2013-02-04
    相关资源
    最近更新 更多