重新加载后停止处理 $_GET
Stop $_GET being processed after reload
我正在创建一个 link,它将一个 $_GET 变量附加到它的末尾,用于删除文件/其他 PHP 任务。
<a href="test.php?delete_file=<?php echo $filename; ?>">Delete file</a>
我的部分 PHP 代码查找变量,如果它存在,它 运行 是删除文件的未设置函数,但是当我重新加载网页时,它显然会尝试删除文件再次。有什么方法可以删除 $_GET 后 运行 一次以在刷新后停止处理?
<?php
if (isset($_GET['delete_file'])) {
if (file_exists($full_path.$_GET['delete_file'])) {
unlink($_GET['delete_file']);
} else {
echo "File ".$full_path.$_GET['delete_file']." doesn't exist";
}
}
?>
<a href="test.php?delete_file=<?php echo $filename; ?>">Delete file</a>
您可以使用 ajax 删除文件,这样它就不会刷新。
<a href="javascript:deletefile('<?php echo $filename; ?>')">Delete file</a>
<script>
function deletefile(filename){
var data = {delete_file:filename };
$.ajax({
url: 'delete.php',
type: 'post',
data: data,
success: function(response) {
// .. do something with response ..
// you can use window.location to refresh page
// or if you have js method to refresh page. you can call it here
}
});
}
</script>
在 php 文件中,您可以使用 post
检索
<?php
if (isset($_POST['delete_file'])) {
if (file_exists($full_path.$_POST['delete_file'])) {
unlink($_POST['delete_file']);
} else {
echo "File ".$full_path.$_POST['delete_file']." doesn't exist";
}
}
?>
但正如评论者所说,这对潜在的安全问题是开放的。如果您在生产中使用这种方法,您需要注意安全性。
我正在创建一个 link,它将一个 $_GET 变量附加到它的末尾,用于删除文件/其他 PHP 任务。
<a href="test.php?delete_file=<?php echo $filename; ?>">Delete file</a>
我的部分 PHP 代码查找变量,如果它存在,它 运行 是删除文件的未设置函数,但是当我重新加载网页时,它显然会尝试删除文件再次。有什么方法可以删除 $_GET 后 运行 一次以在刷新后停止处理?
<?php
if (isset($_GET['delete_file'])) {
if (file_exists($full_path.$_GET['delete_file'])) {
unlink($_GET['delete_file']);
} else {
echo "File ".$full_path.$_GET['delete_file']." doesn't exist";
}
}
?>
<a href="test.php?delete_file=<?php echo $filename; ?>">Delete file</a>
您可以使用 ajax 删除文件,这样它就不会刷新。
<a href="javascript:deletefile('<?php echo $filename; ?>')">Delete file</a>
<script>
function deletefile(filename){
var data = {delete_file:filename };
$.ajax({
url: 'delete.php',
type: 'post',
data: data,
success: function(response) {
// .. do something with response ..
// you can use window.location to refresh page
// or if you have js method to refresh page. you can call it here
}
});
}
</script>
在 php 文件中,您可以使用 post
检索<?php
if (isset($_POST['delete_file'])) {
if (file_exists($full_path.$_POST['delete_file'])) {
unlink($_POST['delete_file']);
} else {
echo "File ".$full_path.$_POST['delete_file']." doesn't exist";
}
}
?>
但正如评论者所说,这对潜在的安全问题是开放的。如果您在生产中使用这种方法,您需要注意安全性。