move_uploaded_file Vs lien absolu

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 : move_uploaded_file Vs lien absolu

par nejme.eddinne » 28 sept. 2006, 15:33

safe mode:

Local Value : Off
Master Value: On

donc !!!

par zigz4g » 28 sept. 2006, 15:21

Et pour ma question du php.ini meme si je ne l'ai pas explicitement cite.
Note : Lorsque le safe mode est activé, PHP vérifie si les fichiers et dossiers que vous allez utiliser ont le même UID (propriétaire) que le script qui est en cours d'exécution. De plus, vous ne pouvez pas modifier les SUID, SGID et sticky bits.
http://fr2.php.net/manual/fr/features.s ... .safe-mode

par nejme.eddinne » 28 sept. 2006, 14:44

A ce niveau la, je ne vois qu'un probleme de droits.
Sous Linux faut ton repertoire 'pics' avec un chmod de 750.
Apres il faut verifier que le proprietaire est bien celui qui lance Apache (gentoo user=apache, sous debian user=www-data selon mes souvenirs).
Dans le php.ini, il existe peut etre une regle qui interdit d'ecrire ailleur que dans le repertoire du script qui se lance.
As tu essayer de mettre ton script dans le repertoire "/" ???
j'ai les droits 777
si je met le fichier de script et le dossier dans le mm répertoire, ça fonctionne.

par nejme.eddinne » 28 sept. 2006, 14:42

enlève le @ devant le move_uploaded_file() il bloque les éventuels messages d'erreur ou d'avertissement..
lol g enlevé ça pour avoir une erreur mais je l'ai remis vu qu'il ne m'a pas affiché d'erreur.

par zigz4g » 28 sept. 2006, 14:18

A ce niveau la, je ne vois qu'un probleme de droits.
Sous Linux faut ton repertoire 'pics' avec un chmod de 750.
Apres il faut verifier que le proprietaire est bien celui qui lance Apache (gentoo user=apache, sous debian user=www-data selon mes souvenirs).
Dans le php.ini, il existe peut etre une regle qui interdit d'ecrire ailleur que dans le repertoire du script qui se lance.
As tu essayer de mettre ton script dans le repertoire "/" ???

par Ryle » 28 sept. 2006, 14:15

enlève le @ devant le move_uploaded_file() il bloque les éventuels messages d'erreur ou d'avertissement..

par nejme.eddinne » 28 sept. 2006, 12:39

if($_FILES["photo"]["name"]!="")
	{
	$ext=explode('.',$_FILES["photo"]["name"]);
	$fichier="prdct_".md5(time())."_".rand(0,100).".".$ext[(sizeof($ext)-1)];
		if(@move_uploaded_file($_FILES["photo"]["tmp_name"],"../pics/$fichier")

		
	
	}else{
	$fichier="no.jpg";
	}
repertoires:
/
<pics>
<admin>
upload.php (upload.php sous <admin>)
<admin><photos>
Si j'upload vers <photos> ça marche sinon je veux uploader vers <pics> ça ne fonctionne pas.

par zigz4g » 28 sept. 2006, 12:32

Peut etre avec un bout de ton code et un listing de tes repertoire, on pourra peut etre trouver la cause.
Pour le listing fait un "ls -lRa /home/sites/.../upload/" pour bien voir les droits.

par nejme.eddinne » 28 sept. 2006, 12:27

j'ais essayé d'utiliser le chemin complet
/home/sites/.......
mais tjrs la mm chose :P

par Ryle » 28 sept. 2006, 12:21

vi mais là c'est normal, je parlais d'un chemin absolu depuis la racine du disque, pas du site :)

le chemin absolu doit être quelque chose comme /home/.../photos ou C:\...\photos (tu peux le trouver dans $_SERVER[DOCUMENT_ROOT])

par nejme.eddinne » 28 sept. 2006, 12:17

Et si tu donnes le chemin absolu à partir de la racine du disque jusqu'à ton dossier "photos" cela fonctionne ?

... c'est pour le moins bizare comme histoire :-k
non çe ne fonctionn pas :?
g fait
move_uploaded_file($_FILES["image"]["tmp_name"],'/photos/$nom_fichier');
et ça ne marche pas :?

et mnt je dois intégrer FCKeditor alors là c la kata :x

par zigz4g » 28 sept. 2006, 12:13

Essaye d'afficher ton chemin en '../admin/' avec la commande string realpath ( string path ).
<?php
echo 'Le chemin est : [', realpath('../admin/'), ']<br />';
?>

par Ryle » 28 sept. 2006, 12:03

Et si tu donnes le chemin absolu à partir de la racine du disque jusqu'à ton dossier "photos" cela fonctionne ?

... c'est pour le moins bizare comme histoire :-k

par nejme.eddinne » 28 sept. 2006, 11:44

Salut.
Que trouve tu dans ta variable $_FILES ???
$_FILES['userfile']['error']
$_FILES['userfile']['error'] =0
aucune erreur d'upload, l'erreur se fait o niveau de l'utilisation de move_uploaded_file()

pour le "error_reporting()" aucune erreur

par Ryle » 28 sept. 2006, 11:29

Tu peux ajouter un appel à "error_reporting(E_ALL);" avant le move pour être sur d'afficher les messages d'erreur s'il y en a :)

Pour le "allow_url_fopen" il me semble qu'il n'est vallable qu'au niveau de l'url et pas au niveau du systeme de fichier