Gestion unlink() erreur 404 alors que bon chemin - PHP - Programmation
Marsh Posté le 10-04-2010 à 21:14:39
le HTTP ne permet pas d'utiliser unlink
tu n peux faire unlink que dans le système de ficheir ( /var/www/... ou C:...)
Marsh Posté le 11-04-2010 à 11:13:32
Et si tu veux supprimer ton XLS, il faut pointer vers le XLS et pas vers un script PHP.
Marsh Posté le 11-04-2010 à 19:27:01
J'ai fait un test en enlevant cette partie :
Code :
|
Donc sans ca, j'ai toujours mes liens ds fichiers, mais plus les liens "supprimer", normal quoi, et quand je click sur les liens, mes xls s'ouvrent.
J'ai donc l'impression que l'erreur se trouve uniquement dans ce petit bout de code au dessus. C'est très bisarre car l'url est bon dans la fenetre du navigateur. Ou alors c'est une erreur dans une autre partie du code qui engendre cette erreur...
Autre piste : lors de la navigation sur mon site, il y a un mot de passe a entrer pour acceder a la partie "secu", et mes fichiers a supprimer sont dans cette partie. Est ce que ca peut venir de la, sachant que pourtant, je suis déja dans cette partie, et donc identifié ?
Pour flo et aideinfo, du coup je ne sais pas trop ce que je dois faire (je suis débutant)
Merci
nb : dans la ligne de code ci dessus, ca indique /voir_fichiers.php?nom... Mais je n'ai aucune page qui porte le nom de voir_fichiers.php. Est ce que ca peut etre ca ?
Edit : j'ai donc modifié en /?nom=.... (j'ai donc juste enlever "voir_fichiers.php" ) et la ca bug pas, ca m'amene dans le dossier "licence_planning". Cependant ca n'efface en rien mes fichiers^^... Comment faire pour qu'ils soient supprimés ?
Merci
Marsh Posté le 12-04-2010 à 13:17:19
Code :
|
Il y a quoi dans ta variable $Fichier ? Parce que je ne vois pas où tu l'as renseignée, et tu ne l'utilises pas (dans ce bout de code)...
Sinon, il se passe quoi si je passe en paramètre "../../planning_licence/voir_fichiers.php" ?
Marsh Posté le 12-04-2010 à 16:56:35
Mon $ fichier est sur la ligne 17 :
while ($Fichier = readdir($dossier)) //Affichage...
Je vais essayer avec ton parametre d'adresse relative, je suis persuadé que soit ca sera faux, soit ca sera une bonne adresse mais que ca ne marchera pas car mon url qui s'affiche dans ma barre du naviguateur est bonne^^.
VOici l'url quand je click sur "supprimer" :
http://localhost/secu/planning_m1/ [...] u_erre.xls
Et c'est exactement l'url où est placé mon fichier "planning_du_erre.xls". Et pourtant je recois toujours cette erreur de page introuvable. Un probleme de synthaxe, fonction...
Et je le repete, si à cette url je supprime le "voir_fichier.php", éh bien ca m'ouvre une page d'index contenant mon fichier (cf image ce dessous). Je ne sais pas si ca peut aider... peut etre que l'erreur vient de ce voir_fichier.php car mon fichier n'est pas en php mais en xls.
edit : j'ai remplacé planning_licence par _m1 mais ne vous inquietez pas c'est normal, car je fais d'autres tests sur le _licence mais ils sont codés pareil
edit 2 : vous savez quoi ? J'ai tout simplement l'impression que mon lien hypertext "supprimer" n'a aucune action de suppression car quand j'ai la souris dessus il se contente uniquement d'affichier l'url (+voir_fichiers.php?nom=) de l'emplacement de mon fichier...
Marsh Posté le 12-04-2010 à 17:05:13
charlelechauve a écrit : Mon $ fichier est sur la ligne 17 : |
Donc si je te suis bien, ligne 6 tu testes la valeur d'une variable, et ensuite ligne 17 tu lui donnes une valeur ?
Marsh Posté le 12-04-2010 à 17:12:36
hum.. J'avais pris le code comme ca sur un tuto complet, donc je ne me suis pas pos la question.
Je vais donc essayé de mettre $Fichier = readdir($dossier) ainsi que la valeur de $dossier en ligne 4 par exemple (sauf si vous m'dites que ca ne servira a rien)
Voila, effectué
$adresse= "../secu/planning_m1/";
$dossier = opendir($adresse);
$Fichier = readdir($dossier);
Mais ca ne change rien. Page toujours introuvable malgré un url affiché comme bon
Marsh Posté le 12-04-2010 à 17:36:42
charlelechauve a écrit : hum.. J'avais pris le code comme ca sur un tuto complet, donc je ne me suis pas pos la question. |
Tu peux aussi essayer de mélanger les lignes au hasard, mais je ne suis pas sûr que ça fonctionne
Essaye plutôt de comprendre ton code...
Voici, en pseudo-code, ce que tu devrais avoir :
SI je demande la suppression du fichier $nomfichier |
Dans ton cas, je suppose que le fichier à supprimé est envoyé par $_GET['nom'].
=> Il faut commencer par sécuriser ce que tu reçois.
Ensuite, tu testes si c'est bien un fichier (voir la fonction is_file())
Et si c'est un fichier, tu essayes de le supprimer...
Autre problème : ton erreur 404...
charlelechauve a écrit : nb : dans la ligne de code ci dessus, ca indique /voir_fichiers.php?nom... Mais je n'ai aucune page qui porte le nom de voir_fichiers.php. Est ce que ca peut etre ca ? |
Tu appelles un script qui n'existe pas. Forcément, tu te retrouves avec une erreur 404 - page inexistante !
Il faut appeler la page qui contient ton script de suppression.
Marsh Posté le 12-04-2010 à 20:25:09
La page qui appel mon script de suppression est la page contenant le code sur lequel nous sommes en train de débattre (elle s'appel deletem1.php).
Je te l'accorde, ca semble logique de l'appeler. J'ai donc modifier en conséquent.
Voici une des facon dont j'ai modifié le code :
Code :
|
Et la, je te dis ... bravo, ca marche !^^ Le fichier en question s'efface bien.
Par contre j'ai un petit message d'erreur :
Citation : Notice: Undefined variable: Fichier in D:\Programmes\wamp\www\secu\deletem1.php on line 6 |
La line 6 correspond à la ligne if ($fichier=... du code ci dessous
Code :
|
J'ai beau testé quelques petits trucs, je n'arrive pas a enlever cette erreur, si vous avez une idée.
Mais en tout cas, bravo bravo bravo et merci 1000 fois
Marsh Posté le 13-04-2010 à 02:08:34
Voila, j'ai trouvé tout seul, il fallait définir $fichier (enfin, ca on me l'avait dit tout a l'heure mais j'avais l'impression que ca marchait sans.
Probleme, $ fichier est défini par $dossier, et $ dossier est défini par $adresse. Donc Il faut définir $adresse, puis $dossier. Mais ce dernier va ouvrir le repertoire donc il faut le refermer dessuite apres. Puis enfin, nous pouvons mettre $fichier :
Code :
|
Marsh Posté le 10-04-2010 à 20:29:36
Bonsoir,
sur une page j'ai le code (ci dessous), qui permet d'affichier tous les dossiers présents dans un certains dossier, mais aussi de les selectionner pour les effacer.
Cependant j'ai une erreur 404 (sous wamp et aussi online). Voici ce qu'affiche pourtant l'url quand je souhaite supprimer un fichier (j'ai rajouté les // du début pour l'affichage)
//http://localhost/secu/planning_licence/voir_fichiers.php?nom=planning_du_testtouille2.xls
Et pourtant ce fichier se trouve bien dans le sous dossier "planning_licence"...
Et pourtant, ma page en question (juste avant de cliquer sur suppriler) affiche bien mes différents fichiers présents dans ce dossier, donc mon $adresse doit etre bon..
Voici le code complet :
Je pense que mon erreur vient tres probablement d'une des lignes vers la fin (echo '<a href="planning_licence/voir_fichiers.php?nom=....)
Ou alors c'est un probleme au niveau du nom..
J'ai beau tatonner, rien ne marche
Avez vous une idée/solution s'il vous plait ?
Merci