-3

我在文件 test.php 上有一个按钮

<?php
$url="http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
?>
<input type="button" name="btn" value="Download" onclick="alert('<?php echo $url; ?>')">

单击文件时,它会提醒页面的 url。

我有另一个页面,test2.php。

我希望在 test2.php 中显示被警告的 url

我怎样才能做到这一点?

4

3 回答 3

4

传递数据的方式有很多:

你的价值: <?php $url="http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; ?>

表单隐藏输入字段(POST | GET)

<form method="POST" action="page2.php">
  <input type="hidden" name="url" value="<?php echo $url;?>">
  <p><input type="submit" value="Submit"></p>
</form>

更改method="POST"method="GET"GET

链接 (GET)

<a href="page2.php?url=<?php echo urlencode($url);?>">Download</a>

通过会话

<?php 
session_start(); //First line of page1 and page2
$_SESSION['url']=$url;
?>

然后根据您选择的方法使用全局变量或获取值$_POST$_GET$_SESSION

甚至网络存储 javascript (HTML5):

<div id="result"></div>

<script type="text/javascript">
if(typeof(Storage)!=="undefined")
{
    if (localStorage.passthis){
    //Already set, perhaps set it here on page1 and and display it here on page2
    }
    else{ //Not set
          localStorage.passthis = window.location.href;
    }
    document.getElementById("result").innerHTML="Passed from page1.php: " + localStorage.passthis;
}else{
    //No web storage
}
</script>

希望对您有所帮助,我建议您在提问之前先进行一些研究。php.net是你的朋友。

于 2012-06-26T16:42:37.140 回答
1

您可以通过表单 GET 或 POST 发送数据:http: //www.w3schools.com/php/php_forms.asp

Example URL: http://yoursite.com/page2.php?frompageone=Hello

echo $_GET['frompageone']; // Echos "Hello"

POST 比 GET 更安全,这只是一个简单的示例。

于 2012-06-26T16:24:33.490 回答
1

根据按钮的重要性,您可以创建一个表单,将 POST 中的 $url 发送到 test2.php。有许多解决方法,但其中一种是难以捉摸的“隐藏”输入。

test.php 上的代码最终看起来像:

<?php $url="http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; ?>

<form action="test2.php" method="POST">
    <input type="hidden" name="url" value="<?php echo $url ?>" >
    <input type="submit" name="download" value="" onclick="alert('<?php echo $url; ?>')">
</form>

虽然 test2.php 上的代码必须包括:

<?php $sent_url = $_POST['url']; 
      echo $sent_url;
?>

希望这可以帮助!

石匠

PS 有关其他方法的更多信息,请参见上一个问题

于 2012-06-26T16:45:26.657 回答