Page 1 sur 1

Changer l'autorisation du ficher .

Posté : 30 juin 2007, 14:21
par mars77
Bonjour a tous;
J'ai créé pour mon site un petit script pour télécharger des fichiers que je vais mettre a disposition sur mon site.

Code : Tout sélectionner

<?php session_start(); // Une fois par script if(isset($_SESSION['mavar'])){ if($_SESSION["mavar"]=='oui' ) { include("../../include/confige.php"); include("../../include/fonction.php"); if(isset($_GET['id'])){ $id=$_GET['id']; } $size= $_FILES["monfichier"]["size"]; $max = 10000000 ; if($size<=$max){ $numero1 = date("dmYHis"); $dateheure = date("dmYHi"); $size= $_FILES["monfichier"]["size"]; $max = 10000000 ; $repertoireDestination = "../../telechargement/"; $nomDestination = $_FILES["monfichier"]["name"]; if ($nomDestination=="") { $nouveaunomdestination=$nomDestination; } else{ $nouveaunomdestination=$dateheure.$nomDestination; } // Pour raison de sécurité nous ajouterons aux fichiers // portant une extension .php .php3, l'extension .txt if (eregi(".php", $nomDestination)) { $nomDestination .= ".txt"; } if($size<=$max){ if (is_uploaded_file($_FILES["monfichier"]["tmp_name"])) { if (rename($_FILES["monfichier"]["tmp_name"], $repertoireDestination.$nouveaunomdestination)) { } else { echo "Le déplacement du fichier temporaire a échoué". " vérifiez l'existence du répertoire ".$repertoireDestination; } } } else { echo'le fichier est trop volumineux'; } $titre = $_POST['titre']; $confirme = $_POST['confirme']; $photo = $nouveaunomdestination; $numero = $numero1; $titre = conv ($_POST['titre']); $select = "INSERT INTO telechargement VALUES ('','$titre','$date','$photo','$numero','$confirme' )"; $result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() ); $titre1 = stripslashes ($titre); header("location:../telechargement.php"); } else { header("location:volumineux.php"); } } } else { echo'<br><br>'; echo "<center>Vous devez vous identifier pour accéder à cette page</center>"; echo'<br><br>'; include ("../sessions/index.php"); } ?>
Cela télécharge super bien le fichier mais enregistre les droit du fichier en -rwx------ alors que pour que les visiteurs puissent les téléchargers le droit devrai être -rwx---r--

Comment je peux faire pour l'enregistrer en -rwx---r--

merci a celui qui saura m'aider.

Posté : 30 juin 2007, 14:27
par Sékiltoyai
Tu n'as pas besoin qu'il soit en -rwx---r--, il faut juste que php, donc apache, puisse lire le fichier, or, normalement apache est le propriétaire du fichier, et les droits du propriétaires sont rwx, donc tu peux lire le fichier sans problème...

Posté : 30 juin 2007, 14:44
par mars77
Le problème c'est que quand j'affiche ma page en ligne avec les fichiers et que je clique sur le lien pour le téléchager il me met HTTP 403. au lieu de m'afficher la fenetre de téléchargement.


Par contre avec un programme ftp je change l'autorisation ça fonctionne . donc voilà pourquoi je doit les changer.

Je pense qu'il faut utiliser la fonction chmod mais je sais pas ou la mettre pour qu'elle fonctionne. j'ai essayé plusieurs endoit comme.


Code : Tout sélectionner

if (is_uploaded_file($_FILES["monfichier"]["tmp_name"]) if (rename($_FILES["monfichier"]["tmp_name"], chmod(" $repertoireDestination.$nouveaunomdestination",0777))){ }
mais ça ne fonctionne pas .

Posté : 30 juin 2007, 21:05
par Sékiltoyai
Tu les as mis comment sur ton ftp les fichiers ?
Au passage, les permissions, tu peux les régler par un client ftp lambda...

Posté : 30 juin 2007, 23:45
par naholyr
utilise la fonction chmod()

Posté : 01 juil. 2007, 14:10
par mars77
Voila j'ai completement changé mon code et j'arrive a changer les droits avec un la fonction chmod
Le seule prob que j'ai maintenant c'est que pour pouvoir ouvrir ou télécharger le fichier depuis mon site je doit mettre les droits en libre accès .Avec mon logiciel ftp en droit voilà ce que ça donne rwxrwxrwx .

Ma question c'est que je connais pas ce qui corresponda rwxrwxrwx avec la fonction chmod.
J'ai essayé en 0777 ce qui me donne r----x--t j'ai aussi essayé en 755 sans c'est pas ce que je recherche.

Es ce que quelqu 'un connais ou je peux trouver ces nombres ?

Code : Tout sélectionner

chmod("../../telechargement/".$nom_final,'777');
Merci encore bcp pour votre aide