Changer l'autorisation du ficher .

Eléphant du PHP | 121 Messages

30 juin 2007, 14:21

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.

ViPHP
ViPHP | 5924 Messages

30 juin 2007, 14:27

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...

Eléphant du PHP | 121 Messages

30 juin 2007, 14:44

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 .

ViPHP
ViPHP | 5924 Messages

30 juin 2007, 21:05

Tu les as mis comment sur ton ftp les fichiers ?
Au passage, les permissions, tu peux les régler par un client ftp lambda...

Administrateur PHPfrance
Administrateur PHPfrance | 3131 Messages

30 juin 2007, 23:45

utilise la fonction chmod()

Eléphant du PHP | 121 Messages

01 juil. 2007, 14:10

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