les droits des fichiers avec chmod

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : les droits des fichiers avec chmod

par mars77 » 02 juil. 2007, 20:47

Voilà j'ai mis mon code a dispostion qui fonction sur mon site.

en tout cas maintenant tout et ok
<?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'];
		}
		
		if (isset($_FILES['fichier'])) 
		{ 
			$numero1 = date("dmYHis");
			$dateheure = date("dmYHi");
			//$_FILES existe on récupère les infos qui nous intéressent 
			$fichier=$_FILES['fichier']['name'];//nom réel de l'image 
			$size=$_FILES['fichier']['size']; //poids de l'image en octets 
			$tmp=$_FILES['fichier']['tmp_name'];//nom temporaire de l'image (sur le serveur) 
			$type=$_FILES['fichier']['type'];//type de l'image 
			//On récupère la taille de l'image 
			list($width,$height)=getimagesize($tmp); 
			if (is_uploaded_file($tmp)) //permet de vérifier si le fichier a été uplodé via http 
			{ 
				//vérification du type de du fichier, son poids et sa taille 
				if ( $size<=20500000 ) 
				{ 
					// type mime gif, poids < à 20500 octets soit environ 20Ko, largeur = hauteur = 100px 
					//Pour supprimer les espaces dans les noms de fichiers car celà entraîne une erreur lorsque vous voulez l'afficher 
					$fichier = preg_replace ("` `i","",$fichier);//ligne facultative :) 
					//On vérifie s'il existe un fichier qui a le même nom dans le répertoire 
					
					$nom_final=$dateheure.$fichier; //le fichier n'existe pas on garde le même nom 
				} 
				//on déplace le fichier dans le répertoire final 
				move_uploaded_file($tmp,'../../telechargement/'.$nom_final);
				chmod("../../telechargement/".$nom_final,'0855');
				 
				//on insert les infos dans la table.
				$titre = $_POST['titre'];
				$confirme = $_POST['confirme'];
				$photo = $nom_final;
				$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 { 
				//Le type mime, ou la taille ou le poids est incorrect 
				echo 'Votre image a été rejetée (poids, taille ou type incorrect)'; 
				 
			} 
		} 
		//Pour tester si l'image est bien à sa place 
		echo '<img src="../..telechargement'.$nom_final.'" border="0" />'; 
		echo '<br/>'; 
		echo '<a href="javascript:history.back();">Retour</a>'; 
	}
}
else  {
	echo'<br><br>';
	echo "<center>Vous devez vous identifier pour accéder à cette page</center>";
	echo'<br><br>';
	include ("../sessions/index.php"); 
}
?>

par zeus » 02 juil. 2007, 20:44

pour chaque trigramme rwx, le r vaut 4, le w vaut 2 et le x vaut 1.
rwx représente 4+2+1 => 7 ;)
donc rwxrwxrwx, c'est 777.

En ce qui concerne la fonction chmod(), il ne faut pas encadrer le masque par des ', mais le précéder d'un 0.
exemple :
chmod('...', 0777);

les droits des fichiers avec chmod

par mars77 » 02 juil. 2007, 20:15

Bonjour a tous,

Voilà j'ai fait un petit script pour faire une page de téléchargement sur mon site.

Pour que les visiteurs de mon site puisse télécharger le fichier, je dois changer les droits avec la fonction chmod.

mon problème c'est que je connais pas le chiffre qui corespond a ce que mon logiciel ftp me donne rwxrwxrwx.

j'aimerai que la fonction chmod le face tout seul.

Code : Tout sélectionner

chmod("../../telechargement/".$nom_final,'777');
Par quel chiffre de doit remplacer 777 pour avoir tout les droits qui correspond a rwxrwxrwx

merci pour votre aide.