[RESOLU] Demande de confirmation avant suppression d'un fichier

Eléphant du PHP | 96 Messages

09 août 2013, 22:00

Bonjour, j'ai fait un system de fichier php avec un boutton qui permet de supprimer un fichier. L'utilisateur n'a plus qu'a cliquer sur le fichier et il se supprime. Je voudrais juste ajouter une demande au cas ou l'utilisateur se serai trompé.
Voici le code qui supprime le fichier :
<?php
         
        
        $param1 = $_GET["param1"];
        unlink($param1);
        header('Location: delete.php');
        
?>
Je précise que je récupère le chemin du fichier dans le lien du site

ViPHP
xTG
ViPHP | 7331 Messages

09 août 2013, 22:19

Tu peux faire du lien actuel un lien de transition.
Et rajouter une variable dans l'url pour le lien final du code de suppression :
if( isSet($_GET['confirmation']) ){
  unlink($_GET["param1"]);
}
Cela dit supprimer un fichier sur paramètre passé via l'url...
Ce n'est absolument pas sécurisé ! Il te faut un code de vérification.
Images un peu qu'on passe le fichier delete.php dans le paramètre de l'url. ;)

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

09 août 2013, 22:20

salut,

C'est quelque chose à faire coté front, dans ton cas en JS avec un confirm (ou équivalent de ton framework JS préféré).


@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 96 Messages

10 août 2013, 13:10

OK. Merci à vous deux, je test et je reviens vers le forum si sa ne fonctionne pas.

Eléphant du PHP | 96 Messages

10 août 2013, 18:19

Merci, grace à vous j'ai réussi, pour ceux que sa intéresse voici mon code :
<?php
         
        if(isset($_POST["yes"])){
        $param1 = $_GET["param1"];
        unlink($param1);
        header('Location: delete.php');}
        
        if(isset($_POST["no"])){
        header('Location: delete.php');}
     
        
?>

<html>
<h1>Voulez vous vraiment supprimer ce fichier ?</h1>
<form action="
<?php 
$param1 = $_GET["param1"];
$func = "delfunc.php?param1=$param1" ;
echo $func;
?>
" method="post">

        <input type="submit" name="yes" value="Oui"/>
        <input type="submit" name="no" value="Non"/>
        </form>
</html>

ViPHP
xTG
ViPHP | 7331 Messages

10 août 2013, 18:42

Si tu ne veux pas avoir de gros problèmes sécurises cette suppression...
N'importe quel petit malin pourrait modifier l'url et demander la suppression d'un fichier de ton site.

Eléphant du PHP | 96 Messages

10 août 2013, 19:21

Comment je pourrais la sécurisée ?

ViPHP
xTG
ViPHP | 7331 Messages

10 août 2013, 20:26

Limiter la liste des fichiers où l'endroit des fichiers qui peuvent être supprimés.

Eléphant du PHP | 96 Messages

10 août 2013, 22:17

Je suis débutant, comment puije faire ça ? :?

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

10 août 2013, 23:39

commence par utiliser une chemin relatif et non absolus et tu force ce chemin (../lefichierquivient de l'url)

Perso je préfère un stockage des infos en base et dans ce cas passer la clef primaire correspondant au fichier dans l'url.

du coup la c'est toi qui maîtrise les fichiers qui seront supprimé car l'utilisateur n'a pas accès au nom (ni emplacement) du fichier final et du coup ne peu supprimer un fichier du système vu qu'il n'y a pas accès ;)


@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 96 Messages

11 août 2013, 10:08

Ok. Je vais inscrire les chemin de fichiers dans une BDD mysql.
Merci à vous ! :D