Jump to content
php.lv forumi

par faila dzēšanu ar PHP


labaiss

Recommended Posts

Labdien,

Lūdzu, paskaidrojiet, kā uztaisīt drošu dzēšanu šādā gadījumā!

 

<?php
$lietotaja_id=$_SESSION['user_id'];  // iegustam ID
$faila_adrese = $_GET['adrese'];   // sanemam faila linku
$faila_del_nosaukums = $_GET['nosaukums'];  // sanemam faila nosaukumu


$faila_url = "/$faila_adrese/$faila_del_nosaukums";  // sastaadam URL prieksh faila dzeshanas

if (file_exists($faila_url)) {
  // Fails eksistee!!! un ir atrodams!!

  if (@unlink($faila_url) === true) {
   // fails ir izdzests

   $delete_msg = "Fails veiksmīgi dzēsts!";  // paziņojums lietotaajam
  }

  else {            
   $delete_msg = "Problēma ar faila dzēšanu!";
  }
}
else {
  // fails nav atrasts!!
  echo "Problēma ar Faila atrašanu! Sazinieties ar mums!";

}

?>

 

Un informācija tiek padota ar urlencode palīdzību!

Līdz ar to vienkārši iegūstot linku, pamainot url adresi ko dzēst - var izdzēst visu ko vēlās. Ko darīt savādāk un kā?

 

Vēl variants man bija, ka kaut kur starpā starp visu url, ieliek mapi, kura ir vienāda ar $lietotaja_id, bet tas arī neder, jo ja iegūst lietotaja ID, tad atkal visu var dzēst cik grib.

 

Ko darīt? Un ko iesakāt? Savādāk sanāk ka šis skripts ir nāve visam portālam.

 

Paldies.

 

 

19.09.2010. 12:17

 

domāju domāju un varbūt izdomāju:

 

Ko Jūs sakiet par šādu variantu:

 

Kad fails tiek augšupielādēts viņam tiek ģenerēts KODS un saglabāts DB pie attiecīgā faila nosaukuma un pārējā.

Lietotājs atverot lapu, kur viņš var dzēst failus (respektīvi tabula ar faila nosaukumiem un linkiem), un urlencodā ierakstās arī šis KODS.

 

Spiežot "dzēst" - faila nosaukums (priekš unlink), KODS (pie faila augšupielādes ģenerētais) tiek padoti php scriptam, kur no "session" tiek paņemts lietotāja ID.

 

Tad pēc lietotāja ID un KODA tiek dzēsts no datu bāzes šāds ieraksts, ja dzēšana ir notikusi - nostrādā arī unlink, kas izdzēš to no mapes.

Ja šāda ieraksta nav datu bāzē nekas netiek dzēsts!

 

Manuprāt, droši!

 

Jo vienīgie veidi kā iegūt šo kodu, kas tiek ģenerēts pie augšupielādes ir:

1. piekļūt DB

2. Iekļūt lāpā (dzēšanas lapā) kā autorizētam lietotājam!

Un no šiem faktoriem izvairīties ir ļoti grūti vai vei neiespējami!

 

Sakiet, lūdzu, ja kaut kur kļūdos!

Edited by labaiss
Link to comment
Share on other sites

Informāciju par failiem pieglabājam datubāzē un padodam datubāzes ieraksta id, izkaplējam, vai to failu vispār tas lietotājs drīkst bakstīt, dzēšam datubāzē ierakstīto faila nosaukumu.

 

Doma nav slikta, tagad saprotu kur ķerties klāt un kā.

 

Paldies!

Link to comment
Share on other sites

Ko Jūs sakiet par šādu variantu:

 

Kad fails tiek augšupielādēts viņam tiek ģenerēts KODS un saglabāts DB pie attiecīgā faila nosaukuma un pārējā.

Lietotājs atverot lapu, kur viņš var dzēst failus (respektīvi tabula ar faila nosaukumiem un linkiem), un urlencodā ierakstās arī šis KODS.

 

Spiežot "dzēst" - faila nosaukums (priekš unlink), KODS (pie faila augšupielādes ģenerētais) tiek padoti php scriptam, kur no "session" tiek paņemts lietotāja ID.

 

Tad pēc lietotāja ID un KODA tiek dzēsts no datu bāzes šāds ieraksts, ja dzēšana ir notikusi - nostrādā arī unlink, kas izdzēš to no mapes.

Ja šāda ieraksta nav datu bāzē nekas netiek dzēsts!

 

Manuprāt, droši!

 

Jo vienīgie veidi kā iegūt šo kodu, kas tiek ģenerēts pie augšupielādes ir:

1. piekļūt DB

2. Iekļūt lāpā (dzēšanas lapā) kā autorizētam lietotājam!

Un no šiem faktoriem izvairīties ir ļoti grūti vai vei neiespējami!

 

Sakiet, lūdzu, ja kaut kur kļūdos!

Labi, bet nedrikst padot faila nosaukumu. To ir jaņiem no datubazes, jo var izdzest citu failu.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...