Chmod

Eléphant du PHP | 82 Messages

09 déc. 2005, 17:42

Salut. Voilà j'utilisais un script sur un serveur Free qui fonctionnait parfaitement. Je viens de passer sur un hébergement pro (qui a php5) mais il ne fonctionne plus.

Le problème. J'ai un bout de script qui génère un dossier :
mkdir('../photos/'.mysql_insert_id(), 0777);
Le dossier est bien crée mais le chmod affecté est 0755.

C'est ce qui semble me provoquer cette erreur lorsque j'upload une image dans ce dossier :
Warning: move_uploaded_file() [function.move-uploaded-file]: SAFE MODE Restriction in effect. The script whose uid is 10019 is not allowed to access /var/customers/webs/sda/photos/16 owned by uid 81 in /var/customers/webs/sda/admin/mod_img_add.php on line 72
Quand on crée un dossier manuellement, on peut lui coller un CHMOD 777. En revanche avec le fichier généré c'est seulement CHMOD 755 qui est possible et rien d'autre.

Des idées ? :roll:
Sébastien.

Eléphant du PHP | 65 Messages

09 déc. 2005, 20:38

Tu devrais donner plus de code, car je ne crois pas que ce soit la ligne que tu as affiché qui cause l'erreur, mais une avant avec la fonction move_uploaded_file()
Mieux vaut avoir un humour douteux que de ne pas en avoir du tout!

Eléphant du PHP | 82 Messages

09 déc. 2005, 21:05

Alros en ce qui concerne le code du move_uploaded_file()
if(move_uploaded_file($_FILES['photo']['tmp_name'], $chemin_dest)){
	
$sql = "INSERT INTO img (pid,url,bass_id,comment,nature) VALUES('','".$dest_fichier."','".$basse_id."','".$comment."','".$nature."')";
			
// on envoie la requete
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
			
redirection("Ajout effectué avec succès.","mod_img_add.php");
		
}
else {
echo 'Erreur'; 
}
Ca fonctionne bien dans les dossiers que j'ai crée à la main et auxquels j'ai mis un CHMOD 777.

Et la boucle qui s'occupe de la création du nouveau dossier :
if($step == "1"){

	// Récupération des informations envoyées par le formulaire :
	extract($_POST,EXTR_OVERWRITE);
	
	$sql = "INSERT INTO dossiers (id,nserie,modele,caract,url_forum,type,proprio) VALUES('','".$nserie."','".$modele."','".$caract."','".$url_forum."','".$type."','".$proprio."')";

	// on envoie la requete
	$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
	
	// Creation du dossier :
	mkdir('../photos/'.mysql_insert_id(), 0777);

	redirection("Ajout effectué avec succès","mod_basses.php");

}
Là ca me fait seulement un CHMOD 755. Et pas moyen de changer manuellement le CHMOD..

Voilà, je sais pas si ca va aider plus :roll:
Sébastien.

Eléphant du PHP | 82 Messages

10 déc. 2005, 14:33

Bonjour.

Aujourd'hui j'ai essayé de faire un chmod avec la fonction chmod() avant l'upload de la photo mais ca veut pas marcher non plus.

Y'aurait un moyen de contourner ca sinon ?
Sébastien.

Eléphant du PHP | 82 Messages

10 déc. 2005, 15:00

Je viens de trouver un moyen de faire passer le CHMOD de 755 a 777 lors de la création du dossier :
// Creation du dossier :
$dossier = '../photos/'.mysql_insert_id();
mkdir($dossier, 0777);
chmod($dossier, 0777);
Ca fait un peu répétitif mais mkdir me fait qu'un CHMOD 755.

Donc là c'est bon le dossier possède le CHMOD 777.. mais le problème c'est que j'ai toujours cette erreur quand j'upload une image dans un dossier crée par php :
Warning: move_uploaded_file() [function.move-uploaded-file]: SAFE MODE Restriction in effect. The script whose uid is 10019 is not allowed to access /var/customers/webs/sda/photos/16 owned by uid 81 in /var/customers/webs/sda/admin/mod_img_add.php on line 72
Alors la je suis totalement paumé... je pensais qu'en mettant CHMOD 777 ca marcherait mais même pas... :cry:
Sébastien.

Eléphant du PHP | 82 Messages

10 déc. 2005, 22:43

J'ai beau chercher je vois pas.. je vais me renseigner si des fois ca vient pas du serveur...
Sébastien.

Eléphant du PHP | 90 Messages

11 déc. 2005, 12:56

Bonjour

J'ai un peu le meme genre de message d'erreur sous Tiscali.. j'ai mis une autre commande pour que cela fonctionne chez eux.

Code : Tout sélectionner

if(copy($tmp,$chemin))
@+ Dgse
Je ne tiens pas a etre un genie. J'ai suffisamment de probleme a etre un homme.

Eléphant du PHP | 82 Messages

11 déc. 2005, 15:59

J'obtiens toujours la même erreur. Sinon j'ai aussi essayé avec rename() mais ca marche pas non plus..
Sébastien.