Fonction chown()

Eléphant du PHP | 331 Messages

27 avr. 2007, 22:56

Bonjour,

J'ai un problème avec l'upload de mes photo en http.

Souvent elle ne veulement pas s'affiché.

J'ai fait divers test qui me porte a croire que c'est parce qu'elle ont le owner apache.

J'ai donc voulu le chancher pour mon user à l'aide de la fonction chown().
chown("".$pathImg.$dir_icone.$_FILES["images"]['name']."", 'arbrof');
J'ai essayé sur 2 serveurs:

Un me dis :
Warning: chown(): Operation not permitted in line .....
L'autre, bien sa ne fait absolument rien, pas d'erreur mais pas de changement de propriétaire non plus.

Pouvez-vous m'aider svp?

Merci!

Mammouth du PHP | 991 Messages

27 avr. 2007, 23:24

est tu sur que chown est activer sur les serveur de test ?
DevOps, Symfony4, Hoa

Eléphant du PHP | 331 Messages

28 avr. 2007, 00:04

Comment le savoir?

J'imagine que je le saurais en utilisant phpinfo() mais je l'ai fait mais c'est pas écrit chown activé ou non activé.

Je dois regarder quoi?

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

28 avr. 2007, 01:07

pour exécuter chown il faut être un des "Administrateurs", en ligne, on ne l'est pas. D'autres parts, la majorité des fonctions systèmes sont désactivées par les hébergeurs pour des raisons de sécurité.
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

Eléphant du PHP | 331 Messages

28 avr. 2007, 02:18

Alors comment faire pour changer le propriétaire du fichier?

Mammouth du PHP | 1885 Messages

28 avr. 2007, 04:12

Pourquoi changer le owner? Apache a uploadé le fichier, il peut donc le lire.
Essaie plutôt au niveau du chmod. Ajoute le droit de lecture pour "group" ou alors "other".

Si ça ne fonctionne pas, exécute ceci et montre nous les résultats:
<?php
$fichier = 'Ton fichier uploadé';
echo fileowner($fichier) . '<br>';
echo filegroup($fichier) . '<br>';
echo sprintf('%o', fileperms($fichier) ) . '<br>';
echo getmyuid();
?>
La programmation est l'expression de la poésie d'un programmeur
Génération PHP

Eléphant du PHP | 331 Messages

28 avr. 2007, 16:55

Le résultat est:

48
48
100644
10196

Sa veut dire quoi?

ViPHP
ViPHP | 5924 Messages

28 avr. 2007, 23:05

Fais ceci :
<?php
chmod ($fichier, 0755);  
echo sprintf('%o', fileperms($fichier) );
?>
Et donne le résultat.

Mammouth du PHP | 1885 Messages

29 avr. 2007, 05:36

Le résultat est:

48
48
100644
10196

Sa veut dire quoi?
Le owner du fichier n'est pas le même que celui qui roule Apache.
Pourtant le droit d'écriture est présent partout. Donc il ne devrait pas y avoir de problème.
Souvent elle ne veulement pas s'affiché.
Tu veux dire quoi par là?
Durant les pleines lune ça marche ou il y a une logique?
La programmation est l'expression de la poésie d'un programmeur
Génération PHP

ViPHP
ViPHP | 5924 Messages

29 avr. 2007, 10:23

Le owner du fichier n'est pas le même que celui qui roule Apache.
Pourtant le droit d'écriture est présent partout. Donc il ne devrait pas y avoir de problème.
Non, s'il est en mode 644, si je ne me trompe, seul le owner a les droits d'écriture.