Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript或PHP后退按钮_Javascript_Php_Html - Fatal编程技术网

Javascript或PHP后退按钮

Javascript或PHP后退按钮,javascript,php,html,Javascript,Php,Html,请跟我来:-) 页码: index.php contact.php 我从index.php转到contact.php,向contact.php发送HTML帖子(在这里我将数据发送到数据库…),然后使用返回按钮返回index.php。现在,我正在寻找一个Javascript或PHP解决方案返回(精确链接Javascript history.back(-1)),但我不希望页面再次发布contact.PHP,也不希望使用history.back(-1)。现在我知道我可以顶嘴了,但我不想硬编码。和建议?

请跟我来:-)

页码: index.php contact.php


我从index.php转到contact.php,向contact.php发送HTML帖子(在这里我将数据发送到数据库…),然后使用返回按钮返回index.php。现在,我正在寻找一个Javascript或PHP解决方案返回(精确链接Javascript history.back(-1)),但我不希望页面再次发布contact.PHP,也不希望使用history.back(-1)。现在我知道我可以顶嘴了,但我不想硬编码。和建议?

您可以使用类似于history.go(-1)或history.back()的任何内容,但对于未被提示再次提交帖子数据的用户,您需要删除所需页面的缓存(请参阅)

您可以使用类似于history.go(-1)或history.back()的任何内容,但对于未被提示再次提交帖子数据的用户,您需要删除所需页面的缓存(请参阅)

您应该使用该模式

接受POST数据的页面应使用303标题进行响应,并重定向到其他位置

// this is the file which accepts the post data
header("HTTP/1.1 303 See Other");
header("Location: http://$_SERVER[HTTP_HOST]/afterthepost.php");
die();
然后,在该页面中,如果用户“返回”(通过任何方式javascript,返回按钮),他将不会再次提交帖子,也不会被浏览器要求重新提交

一个非常好的例子,这里很容易理解:

您应该使用该模式

接受POST数据的页面应使用303标题进行响应,并重定向到其他位置

// this is the file which accepts the post data
header("HTTP/1.1 303 See Other");
header("Location: http://$_SERVER[HTTP_HOST]/afterthepost.php");
die();
然后,在该页面中,如果用户“返回”(通过任何方式javascript,返回按钮),他将不会再次提交帖子,也不会被浏览器要求重新提交


一个非常好的例子,这里很容易理解:

使用下面的PHP代码作为后退按钮

<a href="<?php echo $_SERVER['HTTP_REFERER']; ?>" > Back </a>

使用下面的PHP代码作为后退按钮

<a href="<?php echo $_SERVER['HTTP_REFERER']; ?>" > Back </a>

我一直在寻找一个可靠的后退按钮,这是一个我比
历史记录更喜欢的解决方案。go(-1)
$\u服务器[“HTTP\u REFERER”]
或其他使用头和会话技巧的方法:
header('Cache-Control:no-Cache')
会话缓存限制器('private\u no\u expire')
我发现我的申请同样不可靠

背景:我有一个搜索表单,可以让你进入结果集页面。结果页面具有典型的CRUD类型功能,可以使用GET和POST查看或编辑记录。结果集页面还具有指向其他子页面的链接,以添加/编辑各种记录详细信息。用户需要能够导航到结果页面和子页面,并且仍然能够返回到原始结果集

解决方案:搜索表单将用户发送到一个中间页面,该页面设置一些保留原始搜索参数的会话变量,然后将用户定向到显示结果集的页面

搜索页面是一个基本的搜索表单,其中包括搜索字段和搜索值

中间页:

session_start(); 

// Unset the variable if it exists 
unset($_SESSION['search']);
unset($_SESSION['field']);
unset($_SESSION['value']);   

if (isset($_POST['search'])){
    $_SESSION['search'] = $_POST['search'];
    $_SESSION['field'] = $_POST['field'];
    $_SESSION['value'] = $_POST['value'];   
}

// All sessions are set so redirect user to the results 
header('Location: https://www.yourwebsite.com/results.php');
使用的后退按钮代码:

<a href='results.php'> &lt; Back </a>


我很高兴听到有人能改进这个解决方案。如果有兴趣的话,我会尝试在fiddle或其他地方建立一个工作示例。

我一直在寻找一个可靠的后退按钮,这是我比
历史更喜欢的解决方案。go(-1)
$\u服务器[“HTTP\u REFERER”]
或其他使用头和会话技巧的方法:
header('Cache-Control:no-Cache')
会话缓存限制器('private\u no\u expire')
我发现我的申请同样不可靠

背景:我有一个搜索表单,可以让你进入结果集页面。结果页面具有典型的CRUD类型功能,可以使用GET和POST查看或编辑记录。结果集页面还具有指向其他子页面的链接,以添加/编辑各种记录详细信息。用户需要能够导航到结果页面和子页面,并且仍然能够返回到原始结果集

解决方案:搜索表单将用户发送到一个中间页面,该页面设置一些保留原始搜索参数的会话变量,然后将用户定向到显示结果集的页面

搜索页面是一个基本的搜索表单,其中包括搜索字段和搜索值

中间页:

session_start(); 

// Unset the variable if it exists 
unset($_SESSION['search']);
unset($_SESSION['field']);
unset($_SESSION['value']);   

if (isset($_POST['search'])){
    $_SESSION['search'] = $_POST['search'];
    $_SESSION['field'] = $_POST['field'];
    $_SESSION['value'] = $_POST['value'];   
}

// All sessions are set so redirect user to the results 
header('Location: https://www.yourwebsite.com/results.php');
使用的后退按钮代码:

<a href='results.php'> &lt; Back </a>


我很高兴听到有人能改进这个解决方案。如果有兴趣的话,我会尝试在fiddle或其他地方建立一个工作示例。

使用AJAX来完成您的帖子,而不是加载另一个页面。href=
location.replace()
window.location=
您的问题解决了吗?您确定要实际返回还是只想始终转到index.php页面?因为这是一个不同的问题。不,关于这个例子的情况并不完全相同。我基本上是创建一个DB文件夹系统(就像你电脑上的文件夹系统)。因此,用户可以创建一个文件夹,然后打开它,在该文件夹中创建更多文件夹或将文件放在那里。但服务器上没有创建文件夹。就像虚拟文件夹系统一样,我使用父id和子id。所以我遇到了一个问题,当一个用户在文件夹系统中,他创建了一个文件夹(POST)并想要返回时,它想要重新发布数据。因此,我使用了AJAX路线,并且工作得非常完美。另外@Sharky如果您不想使用AJAX来完成文章而不是加载另一个页面,那么您的示例也可以使用
location.href=
location.replace()
window.location=
解决了您的问题吗?您确定要返回还是只想一直转到index.php页面?因为这是一个不同的问题。不,关于这个例子的情况并不完全相同。我基本上是创建一个DB文件夹系统(就像你电脑上的文件夹系统)。因此,用户可以创建一个文件夹,然后打开它,在该文件夹中创建更多文件夹或将文件放在那里。但服务器上没有创建文件夹。就像一个虚拟的文件夹系统,我用