logo Homepage
+  NewbieContest
|-+  Programmation» Langages Web» Souci de Formaulaire PHP
Username:
Password:
Pages: [1]
  Imprimer  
Auteur Fil de discussion: Souci de Formaulaire PHP  (Lu 8632 fois)
hannibal-lecter
Profil challenge

non classé(e).

Néophyte
*
Hors ligne Hors ligne
Messages: 5


Voir le profil
« le: 20 Août 2012 à 10:19:50 »

Bonjour,

Je suis nouveaux chez vous et j'espère trouver de l'aide ici, je rencontre un souci avec mon scripte php, étant débutant j'ai beaucoup de mal à rajouté un paramètre pour que mon projet soit fini.

Comme on peut le voir c'est un formulaire qui affiche les fichiers d'un dossier sur mon ftp dans un menue déroulant, jusqu'à la tout fonctionne bien mais, le problème, quand je sélectionne le fichier dans mon menue déroulant et que je clique sur supprimer celui si ne se supprime pas pourriez-vous m'aider à compléter les paramètres qui me manquent, je ne trame réellement plus rien, j'ai tenté le chmod mais rien, après beaucoup me font tourner en rond.


Code:
<?php
if(isset($_POST['supprimer'])){
    
// Le bouton supprimer a été cliqué
    //recup du fichier choisi dans la liste déroulante
    
$fichier_a_supprimer=$_POST['liste_fichiers'];
    
//etc....
}
?>

<form action='' method='post' name='Form'>
<table width='100%' border='0' cellspacing='1' cellpadding='1'>
<tr><td>
<label>Fichier</label> :
</td>
<td><select name="liste_fichiers">
<?php
$dirname 
'Vos-Fichiers-Uploder';
$dir opendir($dirname);
$array_liste_fichiers=array();
while(
$file readdir($dir)) {
    if(
$file != '.' && $file != '..' && !is_dir($dirname.$file))
    {
        
$array_liste_fichiers[]=$file;
    }
}
closedir($dir);
for(
$i=0;$i<sizeof($array_liste_fichiers);$i++){
    echo 
'<option value="'.$array_liste_fichiers[$i].'">'.$array_liste_fichiers[$i].'</option>';
}
?>

</select>
</td></tr>
<tr><td colspan="2"> <input type="submit" name="supprimer" value="Supprimer" ></td></tr>
</table>
</form>

Merci de vos réponses !
Journalisée
Skity

Profil challenge

Classement : 2264/54284

Néophyte
*
Hors ligne Hors ligne
Messages: 44


Voir le profil
« #1 le: 20 Août 2012 à 16:29:19 »

Hello  ,

En cherchant un peu sur Google on trouve ceci --> http://www.google.fr/search?q=PHP+supprimer+fichier
Ou encore ceci : http://php.net/unlink

Si cela te renvoi un warning, cela veut dire que le CHMOD de ton dossier contenant tes fichiers et/ou le CHMOD de ton script PHP n'est pas bon.
Ton script PHP doit avoir les droits d'execution (pour faire simple, un CHMOD de 777) et pareil pour le dossier où tes fichiers se trouve.

j'espère t'avoir un peu éclairci
Journalisée
_o_
Relecteur

Profil challenge

Classement : 42/54284

Membre Héroïque
*
Hors ligne Hors ligne
Messages: 1258


Voir le profil
« #2 le: 20 Août 2012 à 18:04:52 »

pour faire simple, un CHMOD de 777

NON !

On ne fait pas dans le simple quand il s'agit de définir les droits d'un fichier, mais dans le strictement nécessaire. Ça sert à quoi de donner tous les droits à tous les utilisateurs de la machine ? Est-ce qu'en faisant ça, tu n'ouvres pas un trou béant dans la machine ? Tu n'en sais rien du tout.

La plupart du temps, les problèmes de droits ne viennent pas de chmod, mais du propriétaire et du groupe auxquels est affecté le fichier, qui ne sont pas adaptés du tout (du genre le fichier appartient à un utilisateur simple alors qu'il devrait appartenir à l'utilisateur qui exécute l'application : www, www-data, apache ou autre httpd). Conseiller un chmod 777, c'est faire un raccourci totalement aberrant qui va faire donner l'impression à l'interlocuteur que les droits Unix ça sert à rien et c'est pas la peine de s'en préoccuper alors qu'il n'y pas de mécanisme plus simple et que c'est la base de la sécurité de la machine.

Et j'ai horreur, mais vraiment horreur de tomber sur un fichier de configuration qui possède les droits d'exécution...  

La commande chmod 777 devrait provoquer une décharge électrique dans le clavier avant de demander : « Et là, vous êtes encore sûr de ce que vous me demandez de faire ? ».
Journalisée

Les épreuves de hack de NC sont trop faciles ? Et pourtant ! Bienvenue dans la vraie vie : http://thedailywtf.com/Articles/So-You-Hacked-Our-Site!.aspx
doritique.fr
Profil challenge

non classé(e).

Néophyte
*
Hors ligne Hors ligne
Messages: 2


Voir le profil
« #3 le: 21 Août 2012 à 13:34:46 »

bonjour,


Est-ce que l'option dans le fichier de configuration php.ini :
allow_url_fopen=on;

Sinon, essaie de créer un fichier php.ini à la racine de ton script PHP, et tu mets juste ce code.

++
Bob - www.doritique.fr

Journalisée
_o_
Relecteur

Profil challenge

Classement : 42/54284

Membre Héroïque
*
Hors ligne Hors ligne
Messages: 1258


Voir le profil
« #4 le: 21 Août 2012 à 14:50:20 »

allow_url_fopen

J'admire toujours cette faculté de lire une question totalement imprécise (c'est le cas ici, j'ai même l'impression que l'OP cherche à nous faire faire son devoir/stage/tout-ce-que-vous-pouvez-imaginer), d'écarter des dizaines de causes probables de dysfonctionnement, d'en retenir une hautement improbable et de proposer une solution sans même expliquer en quoi elle consiste. Je comprends bien que le mot FTP peut faire penser à ce genre de chose, mais à aucun moment l'OP ne précise ce qu'il entend par FTP.

Bref, tant que l'OP n'aura pas expliqué réellement son problème, ce n'est pas la peine de tenter de le résoudre. S'il souhaite que l'on remplisse à sa place la ligne :
Code:
 // etc...
il pourra attendre un peu.
Journalisée

Les épreuves de hack de NC sont trop faciles ? Et pourtant ! Bienvenue dans la vraie vie : http://thedailywtf.com/Articles/So-You-Hacked-Our-Site!.aspx
Skity

Profil challenge

Classement : 2264/54284

Néophyte
*
Hors ligne Hors ligne
Messages: 44


Voir le profil
« #5 le: 21 Août 2012 à 15:02:25 »

pour faire simple, un CHMOD de 777

NON !

On ne fait pas dans le simple quand il s'agit de définir les droits d'un fichier, mais dans le strictement nécessaire. Ça sert à quoi de donner tous les droits à tous les utilisateurs de la machine ? Est-ce qu'en faisant ça, tu n'ouvres pas un trou béant dans la machine ? Tu n'en sais rien du tout.

La plupart du temps, les problèmes de droits ne viennent pas de chmod, mais du propriétaire et du groupe auxquels est affecté le fichier, qui ne sont pas adaptés du tout (du genre le fichier appartient à un utilisateur simple alors qu'il devrait appartenir à l'utilisateur qui exécute l'application : www, www-data, apache ou autre httpd). Conseiller un chmod 777, c'est faire un raccourci totalement aberrant qui va faire donner l'impression à l'interlocuteur que les droits Unix ça sert à rien et c'est pas la peine de s'en préoccuper alors qu'il n'y pas de mécanisme plus simple et que c'est la base de la sécurité de la machine.

Et j'ai horreur, mais vraiment horreur de tomber sur un fichier de configuration qui possède les droits d'exécution...  

La commande chmod 777 devrait provoquer une décharge électrique dans le clavier avant de demander : « Et là, vous êtes encore sûr de ce que vous me demandez de faire ? ».

Bonjour,

Je suis bien d'accord. Mais cela ne sert à rien de s'énerver.
Mais si le script est en local ou temporaire cela permet d'éviter de s'embêter.
Sinon c'est sûr qu'un CHMOD de 744 est plus approprié et évite que quelqu'un de mal attentionné fasse des bêtises.
Mais je n'ai pas non plus la prétention de tout savoir, je ne connais pas tout non plus (cf mon score) ....
C'est un forum, j'essaye juste d'aider... Normalement, quand on demande de l'aide, on attend plusieurs réponses et on fait la synthèse pour voir la mieux adapté à notre problème.
Journalisée
_o_
Relecteur

Profil challenge

Classement : 42/54284

Membre Héroïque
*
Hors ligne Hors ligne
Messages: 1258


Voir le profil
« #6 le: 21 Août 2012 à 17:58:35 »

Normalement, quand on demande de l'aide, on attend plusieurs réponses et on fait la synthèse pour voir la mieux adapté à notre problème.

J'ai beaucoup moins confiance que toi en l'espèce humaine, et en particulier en celle qui se balade par ici. Quand je lis la question, je suis persuadé que l'OP va gober, sans réfléchir, tout ce qu'on lui dit, sans le moindre esprit critique. Et ce n'est pas que pour les inscrits à NC que je dis ça : le forum est régulièrement indexé par les moteurs de recherche, et une réponse approximative et/ou inadaptée sera vue de plus loin que les seuls membres de NC.

Il ne fait jamais de mal d'être rigoureux et d'expliquer ce pourquoi on propose une solution. La résolution d'un problème est assez peu importante à mes yeux; bien plus l'est la démarche et les explications sur les principes sous-jacents qui font fonctionner le système.

Sinon c'est sûr qu'un CHMOD de 744 est plus approprié et évite que quelqu'un de mal attentionné fasse des bêtises.

Je ne vois pas pourquoi 744 est plus approprié. Moi, j'y mettrais plutôt 600. Évidemment, ça ne risque pas de répondre au problème de l'OP, mais au moins, ça donne des bases solides.
Journalisée

Les épreuves de hack de NC sont trop faciles ? Et pourtant ! Bienvenue dans la vraie vie : http://thedailywtf.com/Articles/So-You-Hacked-Our-Site!.aspx
Skity

Profil challenge

Classement : 2264/54284

Néophyte
*
Hors ligne Hors ligne
Messages: 44


Voir le profil
« #7 le: 21 Août 2012 à 18:22:09 »

Bah j'ai pas forcément super confiance, mais j'essaye d'avoir de l'espoir.
Et c'est sûr, cela ne sert à rien de donner la réponse directement. C'est comme les études : "Vaut mieux comprendre qu'apprendre". 
Mais la façon dont a été posté le problème laisser tendre à donner directement une réponse.
Sinon c'est sûr qu'un CHMOD de 744 est plus approprié et évite que quelqu'un de mal attentionné fasse des bêtises.

Je ne vois pas pourquoi 744 est plus approprié. Moi, j'y mettrais plutôt 600. Évidemment, ça ne risque pas de répondre au problème de l'OP, mais au moins, ça donne des bases solides.
Je n'ai pas l'habitude d'utiliser le CHMOD de cette manière mais 7 pour que le propriétaire puisse exécuter le script (car j'ai déjà eut des problèmes avec le unlink dû au fait que mon script n'avait pas les autorisations d'exécution) et les deux 4 pour pouvoir voir le script pour celui qui se connecte au site (si c'est un site Web). Mais c'est vrai qu'à y réfléchir   deux 0 est mieux car cela n'a aucun rapport avec les visiteurs du site (groupes et autres utilisateurs du script).

Par contre petite question, un unlink fonctionne même si le script n'a pas le pouvoir d'exécuter ?
Le pouvoir d'exécution est pour les fichiers binaire ? (car le script n'est pas directement exécuter, c'est en fait PHP qui est exécuter pour l'interpréter)
« Dernière édition: 21 Août 2012 à 18:29:12 par Skity » Journalisée
_o_
Relecteur

Profil challenge

Classement : 42/54284

Membre Héroïque
*
Hors ligne Hors ligne
Messages: 1258


Voir le profil
« #8 le: 21 Août 2012 à 20:35:55 »

deux 0 est mieux car cela n'a aucun rapport avec les visiteurs du site (groupes et autres utilisateurs du script).

Et si ça marche toujours pas après, on pourra regarder du côté du propriétaire du script et de celui qui l'exécute. Et on pourra toujours revenir sur le chmod derrière.

Par contre petite question, un unlink fonctionne même si le script n'a pas le pouvoir d'exécuter ?

Il n'y a aucune raison valable pour que ça ne marche pas, mais on n'est plus à une incongruité près. Les voies du seign des développeurs de PHP sont impénétrables.

Citation
Le pouvoir d'exécution est pour les fichiers binaire ? (car le script n'est pas directement exécuter, c'est en fait PHP qui est exécuter pour l'interpréter)

Essentiellement, mais les scripts peuvent y avoir droit aussi (ne serait-ce que pour être sollicités directement en ligne de commande sans préciser l'interpréteur). Bref, pour un script php, je ne vois pas de raison sauf à les utiliser en ligne de commande avec php-cli.
Journalisée

Les épreuves de hack de NC sont trop faciles ? Et pourtant ! Bienvenue dans la vraie vie : http://thedailywtf.com/Articles/So-You-Hacked-Our-Site!.aspx
Skity

Profil challenge

Classement : 2264/54284

Néophyte
*
Hors ligne Hors ligne
Messages: 44


Voir le profil
« #9 le: 21 Août 2012 à 20:48:15 »

Oki merci bien

Au final, pour répondre à la toute première question faut qu'il essaye de mettre un CHMOD 600 et la fonction unlink sinon faut qu'il détail plus.
Journalisée
Pages: [1]
  Imprimer  
 
Aller à: