我想在用户点击删除链接时删除文件。但是当我进入我的页面时,该文件被删除,我不知道为什么:
echo '<h3><a onclick="'.unlink(__FILE__).'">Delete Now!</a></h3>';
我做错了什么?
答案 0 :(得分:7)
当用户点击链接时,此代码将删除当前文件:
<h3><a href="?delete=1">Delete Now!</a></h3>
<?php
if(isset($_GET['delete']))
{
unlink(__FILE__);
}
?>
如果您更喜欢使用POST而不是GET方法,请使用以下代码:
<form method="post">
<input name="delete" type="submit" value="Delete Now!">
</form>
<?php
if(isset($_POST['delete']))
{
unlink(__FILE__);
}
?>
答案 1 :(得分:5)
您需要通过Javascript加载此操作。如果你正在使用jQuery,你就不能尝试那样的东西
您的Javascript
<script type="text/javascript">
$('.delete').live('click',function(){
deleteFile( $(this).attr('id') );
});
function deleteFile(id){
$.ajax({
url: 'deletefile.php?fileid='+id,
success: function() {
alert('File deleted.');
}
});
}
</script>
你的deletefile.php看起来像那样。
<?php
$fileid = $_GET['fileid'];
//HERE IS THE LOGIC TO FIND THE PATH OF YOUR FILE
unlink($file); //You can add more validations or full paths
?>
您的链接必须具有以下结构
printf("<a id='%s' class='delete'>Delete</a>",$youridfile);
答案 2 :(得分:3)
您不了解客户端和服务器代码之间的分离。 Javascript不能像这样调用PHP。当页面在服务器上构建时,PHP将立即运行,而不是存储以供以后使用。
你需要发一个AJAX请求来删除onClick,或者创建一个像/ delete / $ ID /这样会删除的新页面,或者,正如Jocelyn只是打败了我,让同一页面能够如果设置了GET / POST参数,则删除。
虽然,值得注意的是__FILE__
是该代码所在的文件,因此,它会自杀。
答案 3 :(得分:3)
这是PHP吗?您无法从javascript内部运行PHP函数。相反,您需要加载/重定向/发布到php文件。
echo '<h3><a href="deleteScript.php" >Delete Now!</a></h3>';
编辑:
function table_exists($tablename, $database = false) {
if(!$database) {
$res = mysql_query("SELECT DATABASE()");
$database = mysql_result($res, 0);
}
$res = mysql_query("
SELECT COUNT(*) AS count
FROM information_schema.tables
WHERE table_schema = '$database'
AND table_name = '$tablename'
");
return mysql_result($res, 0) == 1;
}
if(table_exists('my_table_name')) {
// do something
}
else {
// do something else
}
答案 4 :(得分:2)
您不能将PHP函数作为onclick,javascript事件运行。您需要以这样的方式运行该功能:
<?php
if (isset($_GET['delete'])) {
unlink($_GET['delete']);
}
?>
<html>
<a href="?delete=/PATH/TO/FILE">Delete Now</a>
</html>
答案 5 :(得分:1)
你需要一个php处理的帖子请求......或运行php脚本的ajax / javascript函数......
以下是ajax http://www.website-php.com/de/tutorials/treeview/treeview-04.html
的示例