Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Czy funkcja jest poprawna?
Forum PHP.pl > Forum > XML, AJAX
Rid
Witam próbuje przerobić skrypt z PHP na ASP ,no i niby wszystko jest tak jak powinno ,a nie chce działać.
Jest to w miarę prosty skrypt usuwania plików z folderu przy pomocy AJAXA.
Kod
HTML File:
Code:

<html>
<head>
<script type="text/javascript">
function deleteFileAjax(filename) {
    scriptitem = document.createElement('script');
    scriptitem.type = 'text/javascript';
    scriptitem.src = 'ajax.php?filename=' + filename;
    scriptitem.id = 'ajax';
    document.body.appendChild(scriptitem);
    setTimeout('document.body.removeChild(document.getElementById("ajax"))', 500);
}
</script>
</head>

<body>
<a href="java script:deleteFileAjax('log.txt');">Delete</a>
</body>
</html>


Ajax.php
Code: [Select]

<?php
if (isset($_GET['filename'])) {
  if (unlink(htmlentities($_GET['filename']))) {
    echo "alert('Great success!');";
  }
}
?>

Przykład tej funkcji jest na stronie
http://www.phpfreaks.com/forums/index.php?topic=159544.0
I mam teraz prośbę dla Forumowiczów ,czy aby ten skrypt jest poprawny,czy Ktoś mógłby to sprawdzićquestionmark.gif?Ja takiej możliwości niestety nie mam.
krowal
Toż to nawet nie jest AJAX wink.gif to jest wstawienie tagu <script> w body, który w src ma podaną ścieżkę do skryptu php usuwającego podany plik. Bardzo dziwny sposób na robienie tego, nie wiem nawet czy w 100% skuteczny - co na to cache ? (czy da się wywołać dwa razy ten sam src przy włączonym cache ?). Druga sprawa to to, że JS możesz zostawić w spokoju, będzie działać bez względu na to czy będzie to php czy asp. Powinieneś raczej przerobić tą część:
  1. <?php
  2. if (isset($_GET['filename'])) {
  3. if (unlink(htmlentities($_GET['filename']))) {
  4. echo "alert('Great success!');";
  5. }
  6. }
  7. ?>

O bezpieczeństwie nawet nie wspomną bo go tu nie ma, za pomocą tego skryptu możesz usunąć jakikolwiek plik na serwerze, przykład:
[JAVASCRIPT] pobierz, plaintext
  1. deleteFileAjax('ajax.php') //i twój skrypt przestaje działać.
[JAVASCRIPT] pobierz, plaintext
Rid
Bezpieczeństwem ,to ja będę martwił się później,żeby ten skrypt jeszcze u mnie działał sciana.gif ,po za tym przed usuwaniem pliku zawsze ,można sprawdzać rozszerzenie tego pliku,do ściąganych plików dodawać atrybut tylko do odczytu,żeby ktoś nie mógł je usunąć ,są przecież metody na zabezpieczenia plików.

Nie wiem,te rozwiązanie o ile zadziała jest najłatwiejsze u mnie do wdrożenia,gdyż pliki są ściągane asynchronicznie,i wyświetlane na bieżąco i tak też muszę je usuwać.

Zrobiłem arrowheadsmiley.png ,działa.Zdjęcie mi usuwa.
A pro po Pana wypowiedzi:
Cytat
Toż to nawet nie jest AJAX to jest wstawienie tagu <script> w body, który w src ma podaną ścieżkę do skryptu php usuwającego podany plik


Może i tak ,ale efekt jest bardzo,ale to bardzo zbliżony do tego Ajaxowego.
Mam u siebie ,możliwość podejrzenia requestów i co otrzymuje:
GET:
Kod
https://localhost:44300/przedmiot.aspx?filename=34bdc0818a33cde3.jpg

gdzie ,34bdc0818a33cde3.jpg jest podaną nazwą pliku do usunięcia.
Dzieje, się to wszystko bez przeładowania strony(Czy nie jest tak w Ajaxie?questionmark.gifquestionmark.gif),tylko jak to leci callbackiem?questionmark.gif?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.