我将UNLINK与PHP和一起使用AJAX。我知道这种方式非常危险,因为每个人都可以删除任何文件。但是我需要使用,AJAX因为删除文件时无法重新加载页面。
PHP
AJAX
那么,我该如何做才能只允许拥有该文件的用户删除该文件?
如果您认为我在这里做错了什么,或者您有其他想法,并且认为这将是有用的,也请让我知道其他事情:)
我的PHP代码:
<?php $photo_id = $_GET['photo_id']; $thumbnail_id = $_GET['thumbnail_id']; function deletePhotos($id){ return unlink($id); } if(isset($photo_id)){ deletePhotos($photo_id); } if(isset($thumbnail_id)){ deletePhotos($thumbnail_id); } ?>
我的AJAX代码:
function deletePhoto(photo, thumbnail){ var photos = encodeURIComponent(photo); var thumbnails = encodeURIComponent(thumbnail); if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest(); } else {// code for IE6, IE5 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { document.getElementById("media").innerHTML=xmlhttp.responseText; } } xmlhttp.open("GET", "http://192.168.2.104/images/users/delete_photo.php?photo_id="+photos+"&thumbnail_id="+thumbnails, true); xmlhttp.send(); }
您需要以某种方式对用户进行身份验证。
您的用户需要使用用户名和密码进行身份验证。
PHP会话可以用来记住,您应该在服务器上使用数据库表或文本文件来存储文件所有权信息。
然后,在取消任何链接之前,您的逻辑应确保当前“经过身份验证”的用户是文件的所有者。